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.

TXB0108: Trouble between SIMCOM module and ESP32 module (1V8 to 3V3)

Part Number: TXB0108
Other Parts Discussed in Thread: SN74AXC8T245
Hello,
I have some trouble with the TXB0108 level shifter between a SIM7000 module and a ESP32 module in UART communication (1V8 to 3V3). Sometime, the communication is cut off. I have looked few threads in this forum, but I didn't find a solution.
I have some bad experience with bidirectional level shifters and I need your help. In the documentation of the SIM7000, the TXB0108 is shown as reference without special recommendation.
The schematic of the board (with the TXB0108 and SIM7000) can be seen here: https://github.com/Xinyuan-LilyGO/LilyGo-T-PCIE/blob/master/schematic/SIM7000-Modem.pdf
My first question is regarding the direction of communication. Is it possible to force in one-way?
In the datasheet of the TXB0108, it is indicated (in the section 8.3.2) that it is needed to drive at least 2 mA, it is correct?
Someone has an idea why it is working sometimes, but not always? Maybe, it is OK 80-90% of the time. I have the feeling that shutdown the board fix the communication trouble.
PS: Unfortunately, I don't have an oscilloscope to probe signals, but I have a high-speed digital analyser with some capabilities to probe analogue signals (a Saleae Logic Pro 8).
Thanks,
Jonathan
  • Hi Jonathan,

    What kind of capacitive loading is on the TXB0108? Are you connecting long wires to it? Or is it on a PCB?

    What voltages are you working at?

    What's the data rate?

    --

    As for "Can you force the TXB0108 to be one-way?" No, the design of the device is for auto-bidirectional communication. You could design in a different translator, but I really don't know what you're trying to achieve.  My guess is that you have a board (the one you linked) and you are trying to communicate with that over UART from another device over a set of cables. This is usually where people run into trouble with auto-bidirectional translators.  If you can reduce the wire length, or eliminate wires entirely, you may be able to get reliable communication, but the device isn't really made for that application.

  • Hi,

    Thanks for your feedback. Sorry for my poor knowledge in electronics, but what does your mean my capacitive loading?

    The TXB0108 is only used to level shifter between a 4G modem (SIM7000) and a ESP32 (an MCU), as shown in the figure 9-1 in the datasheet of TXB0108. The length of tracks on the PCB is maybe two time 4cm length with one PCIE connector between. So yes, it is on a PCB, but I have added one track with a thin wire to modify it (but at this point, it isn't used). This new connection will be used for a 2nd UART (only in one way : SIM7000 -> ESP32) for transmitting GNSS information (with a NEMA protocol).

    The I/O of SIM7000 is in 1.8V and the ESP32 is in 3.3V. The baudrate of the UART is 115200 bps. The TXB0108 is powered with 1.8V by VCCA (SIMCOM module) and 3.3V by VCCB (ESP32 module). In the SIMCOM module, there is an integrated LDO which provides max. 50mA in 1.8V. The 3.3V is supplied by an external LDO which provide max. 800mA in 3.3V. Is it enough in 1.8V?

    About my interrogation Can you force the TXB0108 to be one-way?, I am the feeling that in one-way (force one output as driver), there isn't this trouble. In fact, I didn't understand why there is some trouble of communication. I have done some capture with the Saleae when it doesn't work and in the direction (ESP32 -> SIM7000) the communication doesn't work.

    If you think that is necessary to understand the boards & application, I can add some pictures and part of the schematics.


    Best regards,

    Jonathan Dreyer
  • Hi Jonathan,

    The TXB0108 is an auto-bidirectional translator, which means that it drives both directions at all times. It does not have a direction select capability because that's not how it was designed.

    There are two main causes of issues with the TXB family of translators:

    (1) Input drive strength -- the device driving the TXB must be able to force the output of the TXB to the desired state -- this requires at least 2mA of drive strength, and sometimes devices operating at lower voltages cannot source/sink enough current at their outputs to support this.

    (2) Load capacitance -- all applications include some parasitic capacitance as well as some load capacitance. For a very short trace (perhaps 10cm) directly into a standard CMOS input, this will typically be around 15pF. For longer traces + bus connections, the loading can increase to very large values. Anything larger than 70pF can cause problems for the TXB family of translators -- resulting in very slow switching times and possibly oscillation.

    If your communication is unidirectional on each wire, then I would recommend switching to a different solution -- for example the SN74AXC8T245. This will eliminate both problems listed above, but it would require a redesign since the parts are not pin to pin compatible.