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.

TXS0108E does not work with I2C on long lines

Other Parts Discussed in Thread: TXS0108E, PCA9515, PCA9517

Hi!

I have a board with a 3.3V IO FPGA. It implements I2C master, and I have another board with 5V PICs, that implement I2C slave. I replaced the quite old 5V tolerant FPGA to a more modern one, that has no 5V tolerant inputs. So I had to use a voltage level translator. I choose the TXS0108E. In the proto phase it worked fine. But when I tried with longer cable (about 80 cm) between the 2 boards (in the equipment we have to use that long cable), both the I2C SDA and SCL lines are oscillating. Previously I had some capacitors on the I2C slave board on the SDA and SCL lines. I understand that TXS0108E does not like capacitive load, so I removed them, oscillation remained. Then I tried different values of pull-up resistors, and no pull-up too, without any result. Of course the too low resistor value increased the Vol value.

Is there any possibility that I can use this voltage level translator with this long cable. Or should I look for another type of I2C voltage level translator.

Best regards,

Laszlo Laczo

  • Hi,

    I am experiencing the same problem with this chip and bringing I2C off the board. Adding 10k pullups at the termination point of the line helped some, but it is still possible to get the chip to go into what looks like the above reported self-oscillation state with any extra noise.

    The chip only seems to recover from this by powering it off (we have OE tied high in the board layout.)

    Would love to hear any possible solutions to this... we will probably be looking for a replacement chip as this is a pretty serious issue.

    Kevin

  • Using shielded cable for the I2C data lines and routing the cable separately seems to make the problem go away, with no extra pullups on the other end required. Maybe it was picking up too much noise from the other cable bundle? Our cables are long as well, 48in / 122 cm.

    *crosses fingers*

    Kevin

  • Kevin,

    Long cables can introduce multiple problems from added noise to increased capacitance and increased inductance. In the case of data transmission, the increased capacitance and possible noise addition are the main source of issues.

    If you believe the shielded cable has solved the problem, then that is great.

    If you are not sure if this has solved the problem, please send us some scope shots so that we can determine try to determine the root of the problem, whether it is white noise or some sort of periodic AC coupling.

    Thanks,

    Brian

  • Here is what it looked like when the buffer went into the unstable state. This is from the perspective at the end of the long cable.

    1 = I2C clock, 2 = I2C data, 3 = 3.3V power.

    There is a lot of ringing present, as we are using long lines and there is nothing in the way of termination on the line on the far end.

    Also, the ground connection is ~20cm (as I was troubleshooting this inside our hardware enclosure) so I believe that is contributing to the oscillation seen on the power trace line through the scope. I am pretty sure the power line is stable throughout.

    Here is a shot of the normal I2C traffic over the (still long) shielded cable:

    I believe the problem is fixed with the other cable, but I'm not 100% sure until we build up a few more... We've been running more tests on this same device and haven't experienced this behavior again.

    Thanks,

    Kevin

  • OK, even using the other cable didn't solve the problem, so the capacitance must still be causing problems. We are now just going to hack an i2c buffer into the cable instead (PCA9515) which is working, and just use this on the board on the next rev.

    Thanks, Kevin

  • Hi,

    I'm seeing a similar symptom, also with TXS0108E and also with I2C.
    We drive I2C from the TXS0108E over a 1m cable to device A, with a possiblity to daisy chain another device with another 1m cable.
    VccA rail is 2.5v and VccB rail is 3.3v (this is the device side).

    If only device A is connected then the signal is clean (apart from acceptable reflections), as soon as I add device B or even the daisy chain cable, the oscillations start. They might stop for a while and then start again. There are a couple of examples below:

    Blue - SCL
    Red - SDA


    I believe only one line oscillates and the oscillations couple through the common return to the other line, however, I still need to verify that.
    Can TI please comment on that?

    Also, as a side note, for an open drain circuity with the TXS0108E, should the pull-ups be on VccA side or VccB side?


    Thanks in advance,
    Eyal

  • Hi,

    As I started this post almost exactly 3 years ago, I try to answer, or at least write my experiences.

    I met the oscillation problem with a 80 cm cable, and though I tried different solutions, I could not solve it. So I simple omitted the TXS0108E from the next version of my board, and replaced it with a real I2C bus driver - PCA9517. I still use the TXS0108E as a voltage level translator, but only for short distances.

    Best regards,

    Laszlo

  • Thanks for posting Laszlo,

    I'm planning to do something very similar.