Hi All,
We have an urgent problem using the TCA4311 I2C buffer.
In our system we have the card side powered by 3.3V and 2k2 pull-ups on SDA and SCL, and the TCA4311 itself is powered by this supply. The bus loading on that side is low, maybe 40pF. The bus side is powered by its own 3.3V regulator with 10k pull-ups on SDA and SCL and that loading is a little higher but still low, around 60pF.
We are seeing very strange behaviour during mid I2C read transfers, it seem the buffer sometimes disconnects the SDA line, the result is the card side (master) sends a low ACK, but the bus side (slave) sees a high NACK. According to the datasheet this can't occur, but it seems it does. The slave sees a NACK and assumes the cycle is terminated, but the master carries on reading because it has driven an ACK.
We found replacing the 10k pull-ups on the bus side with 2k2 pull-ups seems to fix it, in that we can no longer get it to fail. I note that the TCA4311 is no longer recommended for new designs and has been replaced with TCA4311A, the only difference I can see in the datasheet is the latter has 'improved noise immunity'.
Does anyone know what type of noise this is susceptible to, and what are the results of that noise in the TCA4311 behaviour? Has the TCA4311A fixed these issues? Also, does reducing the resistor values on the bus side in our system somehow decrease this noise or susceptibility so that the TCA4311 then works again? We'd rather not replace 1000 master boards with the TCA4311A if this resistor change on the slave has fixed the problem, but I'm worried there's an underlying instability with the TCA4311 that means we've just reduced the likelihood of failure rather than eliminated it.
Thanks!
Mark.