This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCA9557: About I2C behavior in the case where the lock-up

Part Number: PCA9557

Hi dear supporting team,

The dataseet says If ramp conditions are outside timing allowances , POR condition can be missed, causing the device to lock up.
If the device locks up, is there a possibility that the SDA signal will stay low while leaving the FET on the SDA pin ON?

  • Hello user4030081,

    "If the device locks up, is there a possibility that the SDA signal will stay low while leaving the FET on the SDA pin ON?"
    Yes, this is a possibility. Our suggestion is to send 9 or 18 clock pulses on SCL to try to reset the state machine in this kind of event.

    Thanks,
    -Bobby
  • Thank you for your answer.

    I have an additional question.

    1.You answered that this is a possibility that the SDA signal will stay low while leaving the FET on the SDA pin ON.
       Which of the following does this mean?
      ・The possibility is not 0.
      ・It always occurs under certain conditions.
      ・It occurs merely probabilistically.

    2.Please tell me the reason to reset by pulsing 9 to 18 pulses.

    3.Please tell me in detail how to reset control.
      (for example, timing, logical condition ,etc)

  • Hey User4030081,

    Sorry for the late reply here. I didn't see your response until now when I checked which threads were still 'open.'

    "You answered that this is a possibility that the SDA signal will stay low while leaving the FET on the SDA pin ON.
    Which of the following does this mean?"
    During a bad PoR condition the state machine of the device starts up in an unknown state. In this instance some gates could see logic highs and when they are supposed to see logic lows and vice versa. Because the digital starts up in a unknown state I cannot say with 100% certainty that the device will not start up in a latched state and unlatch itself.

    I can say that there are two ways which should always fix this:
    1) Do a GOOD power cycle
    2) Do a reset on the reset pin

    "Please tell me the reason to reset by pulsing 9 to 18 pulses."
    This is the I2C recommendation on how to fix a stuck bus. The idea here is the device has missed a clock cycle and latches the bus low (example: device ACKs on the 9th clock pulse but never sees the rising edge to release SDA).

    Sending 9 to 18 clock pulses is a way to attempt to fix a stuck bus by trying to reset the device's state machine. In this case, what if our device started up in a state which it thought it was on the 4th clock pulse of a read transaction and the 4th bit was a logic low? The state machine would latch SDA low until it sees a minimum of 5 more clock cycles.

    "Please tell me in detail how to reset control."
    option1: Do a good PoR
    option2: drive reset low and then high again

    Thanks,
    -Bobby
  • Thank you for your answers.

    Just to be sure, let me check.

    We understood that it is the following contents based on your these answers.


    ・If the device locks up, there is a possibility that the SDA signal will stay low while leaving the FET on the SDA pin ON.
    ・Sending 9 to 18 clock pulses on SCL to get rid of lock up and to reset the device's state machine.


    Are we correct in these understandings?

  • Hello user4030081,

    This is correct.

    Thanks,

    -Bobby