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: Output low on B side is 1.2V

Part Number: TXS0108E

Hi,

I'm using a TXS0108E to level shift I2C between 2V8 (on A side) and 3V3 (on B side). When an I2C slave on the A side pulls low to 0V, the B side drops as far as 1.2V but no further. There are no external pull-ups and the I2C clock is 400KHz. It looks to me like the Npass transistor is off. I can't find any documentation showing where the Npass bias voltage comes from but I guess it's from Vccb and so the transistor should be on. The OE pin is connected direct to Vcca at 2V8.

The traces below show SDA on the A side in blue and SDA on the B side in purple. At the point marked by the white circle, the slave is pulling 0V (I2C ACK) on the A side but the B side is stuck at 1.2V when it should be 0V. This is a low-to-low transition but the same is true for a high-to-low transition i.e. the B side low gets no further down than 1.2V.

Would be interested to know if anyone else has seen something similar and what can be done about it.

Thanks,

Paul

  • Hello Paul,

    I have not seen that happen before. What kind of load are you driving at the output? If you isolate the load and leave the outputs open, do you see the same result?
  • Hi aozer,

    The load is basically 4 other I2C slaves + 2 I2C masters. I'm trying to disconnect as many of them as possible however there is some interdependency (i.e. one slave is used to setup another) and of course I need at least 1 master on the bus for the comms to work - so unfortunately it's not that straightforward. I'll post an update when I have more information.

    Cheers,
    Paul
  • Hello Paul,

    Ok, sounds good. From the scope shot you posted it looks like the line only fails to pull low intermittently. Does there seem to be any pattern to when it occurs or does it happen at random intervals?
  • Hi aozer,

    In the scope trace, the other lows at 0V are due to the master on side B driving low. The low at 1.2V however is the 2us period during which the slave on side A is pulling low. So it is not actually intermittent because it happens every time the slave pulls low.

    Cheers,
    Paul
  • Ok, sorry, I must have missed that. That actually makes a lot more sense. I think what the issue may be is that your slave cannot sink enough current to pull the line all the way to 0V. Do you know what the driving capabilities of the slave are?
  • The I2C slave can sink 4mA and still guarantee a low of < 0.4V. The only pull up on this line is the 4k within the TXS0108E itself hence the max current will only be 2.8V/4k = 0.7mA - so I don't believe it's the driving capability of the slave. It looks to me like the Npass transistor within the TXS0108E is off when it should be on. I'll perhaps know more after having disconnected as many of the other slaves as possible.

    Cheers,
    Paul
  • I've now stripped it back to just one I2C master and one I2C slave and the 1.2V ACK on the B side has come down to 0.7V which is a big improvement. I'd still like it to be closer to 0V but at least it's less marginal now. Would be interested to know how the 'bias' for the Npass transistor (which separates the 2 sides) is derived.
  • Hello Paul,

    I believe the bias is referenced to VCCA, but I would have to test it in the lab to verify whether that is true or not.

    It is good to hear that the Vol has improved but 0.7V still seems excessively high, considering you have no external pull-ups and your slave can sink 4mA. Generally, we only see about 20mV to 50mV at difference between Vil and Vol at 100uA when the pass transistor is active. Is there any way you could measure the current on the line when driving low? The only other way I could see such a large difference between the Vol and Vil is if there is some sort of short or something on the line that is causing a large amount of current to flow through the pass transistor.

  • Hi aozer,

    Measuring the current flow is not going to be easy. The 'on' resistance of the pass transistor is about 400 ohms (from datasheet) and so the sink current should be 0.7/400 = 1.75mA. Assuming this current is flowing through the internal 4k pullup then this would develop 1.75mA x 4k = 7V (!) which is why I suspect the pass transistor is off. It's not ideal but I can live with a 0.7V ACK although it would have been good to understand why it's so high.

    Cheers,

    Paul

  • Hi aozer,

    I've just discovered that we in fact do have external pullups hard-wired on our board! The pullups are 1k5 and this explains perfectly why the B side doesn't pull to ground. The voltage drop across the pass transistor is basically 3v3 * 0.4/(1.5 + 0.4) = 0.7v. So I must apologise for my ignorance. Thanks anyway for helping me think through this.

    Cheers,
    Paul
  • Hey Paul,

    Good to hear, that would definitely explain it. I will be closing this thread now.