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: Problems with I2C

Part Number: TXS0108E
Other Parts Discussed in Thread: PCA9306, TCA9517,

Hi everyone,

I'm getting problems with I2C using TXS0108. I have the following circuit:

When I remove the TXS0108 from the board the communication works fine, but when I insert the driver back, the I2C doesn't work anymore and I get this:

Could anyone help me in this issue?

Thank you!

  • Hi Rafael,

    I see two primary issues here:

    1. This device has internal 10kohm resistors already, so the external resistors are reduntant and are causing extra current to be sunk into your I2C devices.

    2. It looks like you have a lot of capacitance on the B side of the TXS0108.  This device requires a light capacitive load on the 'high' side (5V in this case) to operate properly (as do all passive-style voltage translators).

    Also, just curious here, but it looks like both waveforms in the shot are 5V logic - why is there a translator being used at all?

    You might find this application report useful/interesting:

  • Hi Emrys,

    For pull up resistor, I was already getting the same problem without the external 10kohm resistors. I have placed them since this device has internal smart pull ups and I didn't know for sure if was it the problem.

    For the capacitance, this problem occurs even without the Slaves, just the Master and the Translator. With one or more Slaves, the problem just get worse.

    I have the 3V3 side because this is a development board project for I2C, SPI and 1Wire communications, so I have one Master on 'high' side and another on 'low' side. These two masters cannot work on the same time, though.

    Also, I have changed the TXS0108 for MOSFETs translators and the bus worked fine, but is not my goal working with MOSFETs.
  • Can you provide a snapshot of your layout? I would guess that the capacitance is from long traces and other factors, and not just the slave devices. Typically, a long trace will add 10-50pF, and each slave will only add 3~5pF.

    With a passive translator, you will want to keep the traces as short as possible on the 'high' side.

    Also, would it be possible for you to get a closer view of the waveforms? it's hard to tell what's happening on each pulse.
  • Layout:

    Waveforms:

  • Hi Rafael,

    I have moved this thread to our I2C forum to let our experts take a look at the circuit. I know our TXS0108 won't be able to handle this capacitive load alone, but they might have a good suggestion to fix the issues you're having.
  • Hello Rafael,

    Can you show me all four waveforms showing what is going into and out of the device?  Though it might be possible to use the TXS0108 for I2C translation we have found that the Rise Time Accelerators (RTA) can be problematic depending on the capacitive loading of the bus. 

    Also, the waveforms look a bit poor.  Try reducing the ground probe loop area and increase your resolution and memory for the waveforms.  It almost looks like noise is being coupled onto the SCL line from something else. Have you looked at the layout?  This could also be an artifact of your ground lead loop area picking up noise.

    I am assuming you were trying to same size and cost by using the 8 channel TXS part.  You may want to look at using the PCA9306 for translation.  It is available in all sorts of packages and it cheap.  The only caveat is that it doesn't isolate the I2C bus capacitance so depending on your capacitive load on the I2C bus, you may want to consider using a buffered translator like the TCA9517 too.  These parts were specifically designed for I2C. 

    If you are using Altium, you can send me the project package and I can review your layout. 

    -Francis Houde

  • Could it be a signal integrity issue due to too fast edges made by TXS0108E edge accelerators?
  • Hi,
    I connected the TXS0108 to level translate the IO of a Cyclone V FPGA and I can find the same problem (intermittent for me).
    The PCB is 8 layer, FR4 and a lot of nets of the Cyclone V was affected by this problem. After removing the TXS0108 the problem disappears.
    A possible cause should be the input capacitance? What's the maximum permitted capacitance at the input.
    One particular net is about 65mm. Is this length critical?
    If you want I can send you the Altium project.
    Thank you for your support.
  • Hello Artisiom and Serafino,
    Yes, it could very well be a signal integrity issue. This is made worse by the RTA on the TXS parts. I look at the waveforms and see a lot cross coupling between SCL and SDA. I also see a lot of high frequency noise, have you determined where that is coming from? Make sure to capture waveforms with short ground leads because that collect a lot of the high frequency noise and it may just be an artifact of how you are measuring the waveforms. I had also asked about the input waveforms. It would be good to take a look at that. I don't think you have a capacitive loading issue, but won't know for sure until I see the input signals. I2C states 400pF is the most capacitive loading allowed on a either SDA or SCL. Have you tried using a I2C specific buffer/translator? I would try that out.
    -Francis Houde