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.

TXS0104E: Ground offset and oscillations

Part Number: TXS0104E
Other Parts Discussed in Thread: TXU0304, LSF0204, TXB0108

Hi

I have a design where I use the TXS0104E to translate SPI signals from 3.3V to 5V using the TXS0104E. When I tested it, I noticed multiple different issues that I need help with. Note that I use 2 different SPI busses with this design and they are each showing a different issue.

Issue 1: 

With my one SPI bus that is translated using a TXS0104E I notice that the output follows the input wave form, but when the CS signal goes low, it goes to a non-zero voltage. It seems as if when the TXS0104E is enabled, it shifts the ground voltage up. The MOSI signal also does not go to a stable high, but rather only makes momentary spikes. The pictures below shows the SPI input side signals without connecting it to the TXS0104E and then the same signal, when connected to the TXS0104E.

SPI CS (blue), SPI MOSI (yellow), without TXS0104E connected.

SPI CS (blue), SPI MOSI (yellow), with TXS0104E connected (same settings on scope)

I then tried to test the TXS0104E separately with a simple pulse. and saw that it looks like the ground voltage is raised when the device is enabled somehow.

This is what the pulse looks like when the TXS0104E is disabled. Note that yellow is the input (3.3V) and blue is the output (5V).

This is what it looks like when I enable the TXS0104E. The output follows the input and goes to 5V, but both the input and the output LOW level seems to be raised to 2V rather than 0V.

  

In my mind, the LOW voltage should remain 0V. Am I missing something here?

Issue 2:

With my second SPI line, that is connected to a second TXS0104E, I had a completely different issue. There seems to be wild oscillations when the input is pulled LOW.

Once again, this is how the input for the CS and the MOSI looks without the TXS0104E:

And this is what the inputs of the CS and the MOSI looks like when the TXS0104E is connected:

It's not so easy to see, but as the CS (blue) goes LOW, it oscillates wildly. The MOSI also oscillates when it is LOW and stabilizes briefly when it is pulled HIGH.

I would appreciate any help with either of the issues mentioned.

  • The TXS has internal 10 kΩ pull-up resistors, which could conflict with external pull-down resistors or weak drivers.

    The TXS has edge acceleratorsm which could conflict with capacitive/inductive loads, such as long traces, connectors, or cables.

    For SPI, you should use a buffered fixed-direction translator like the TXU0304.

  • Thanks for your reply. I don't have any external pull-down resistor, but n guess it may have something to do with my driver, though I don't know how. I did another test where I simply use a wire to pull the input down to ground. that seems to work, but when I use the outputs of my driver, I get that offset ground. My driver is a Jetson Nano. Don't know if it's IO's have some limitation that I am missing..

    I will consider your advice to rather use the TXU0304, though I guess would need an additional one for the MISO line as it works in the opposite direction.

    In the past I have always just used the circuit below for logic level translation (I2C mostly) do you think it would work for SPI in this case?


  • The TXU0304 has one channel in the opposite direction.

    The MOSFET-based translator is mostly identical with the LSF0204. It needs strong pull-ups for speeds higher than I²C.

  • Thanks for the info.

    For interest's sake, I did some more testing and digging and noticed some things. Firstly I noticed that the I2C on my Nvidia Jetson that also goes through the same translators work fine. This baffled me so I took a deep dive in the documentation of the jetson nano.

    I found that the I2C lines are dedicated open-drain IOs that tolerate 3.3V, but the SPI lines are different. They are 1.8V general purpose IOs that go through their own translator to get to 3.3V. I don't understand all the details but I suspect that chaining these two translators are causing my problem. below is the schematic of the translator in question:

    I looked at the datasheet of this translator and spotted the following line: "The output drivers of the TXB0108 have low dc drive strength. If pullup or pulldown resistors are connected externally to the data I/Os, their values must be kept higher than 50 kΩ to ensure that they do not contend with the output drivers of the TXB0108."

    Since my translator includes10K pullups, I assume that is causing the offset that I am seeing. Does this make sense? 

  • Yes; the TXB is incompatible with other bidirectional translators, including another TXB.

    Use the TXU.