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.

TCA4311A - Hot removal

Other Parts Discussed in Thread: TCA4311A

Hi,

in our products we are using many I2C slaves that are hot-pluggable. All these slaves are connected to the CPU through TCA9548 MUXes, since they don't have their own slave address.

We often experience weird problems with the I2C bus and we have the suspicion that either when inserting or when removing a slave the bus is distorted. Although with the MUX I would say that we can exclude the case when the slave is inserted.

We are now considering using the TCA4311A. From the datasheet it is clear what happens when we insert a slave in a live bus.

The question is what happens when removing a slave from a live bus, e.g. while the CPU is communicating with the slave? I read in the datasheet of the part, among the features, that "1-V Precharge on all SDA and SCL Lines Prevents Corruption During Live Board Insertion and Removal From Backplane".

Could you explain why is this the case? Why the TCA4311A can prevent corruption during live board removal from backplane?

  • Hi Nikolaos ,

    The apps engineer will get in touch with you soon.
  • Hello Nikolaos,

    The TCA4311A mainly helps prevent corruption during hot-plugging. It does this by not connecting the two sides of the bus until it detects that both sides are idle.

    With the disconnection, this does not need any additional protection for the following reasons:
    1) The main corruption during a hot plug even comes from the current surge into a device that is plugged into the bus, causing a momentary "brown out" of the bus, which causes corruption.
    2) In the opposite case, where a slave is already connected to the bus, and is removed, the net result should be negligible because the slave has no current flowing through it, and is essentially acting as a high-impedance device on the bus.

    In the case where a slave is connecting with a master and is removed from the bus during mid communication (let's assume in the middle of transmitting a 0), there will be a relatively low amount of current flowing through the slave to ground (typically < 2 mA). Once the slave is removed, this current path will be removed, causing the parasitic inductance in the line to try to undershoot the voltage on the line. Normally, this is offset by the parasitic capacitance of the bus, and there is virtually no glitch on the bus, other than the signal suddenly going high. Depending on when this happens in the actual databyte, such a signal could be interpreted as a STOP condition, causing the bus to 'reset', or it could result in data being corrupted or incorrectly received, but typically, an error is generated by the lack of an ACK from a slave, and the data is disregarded.

    The short answer: I2C bus does need protection during hot-plug events, mainly to prevent slaves from pulling the bus low during a potential transaction. In the reverse case, the slave itself does not have the ability to affect other communications during a removal event, simply because slaves will be in high impedance mode during another module's communication. In the event the slave is communicating while removed, then an error will likely be generated due to the lack of an ACK or a time, or data will be corrupted.
  • Many thanks for your very detailed post!

    It has answered all my questions.