Creative Commons images are CC BY-NC-SA 3.0

Description: This is a breakout board for the Texas Instruments TXB0104 module. The TXB0104 is a 4-bit bidirectional voltage-level translator with automatic direction sensing.

This 4-bit noninverting translator uses two separate configurable power-supply rails. The A port is designed to track VCCA. VCCA accepts any supply voltage from 1.2V to 3.6V. The B port is designed to track VCCB. VCCB accepts any supply voltage from 1.65V to 5.5V. This allows for universal low-voltage bidirectional translation between any of the 1.2-V, 1.5-V, 1.8-V, 2.5-V, 3.3-V, and 5-V voltage nodes. VCCA should not exceed VCCB. We have broken out each pin on this module for you to easily access both the A and B ports.

Features:

  • 1.2V to 3.6V on A Port and 1.65V to 5.5V on B Port (VCCA ≤ VCCB)
  • VCC Isolation Feature – If Either VCC Input Is at GND, All Outputs Are in the High-Impedance State
  • OE Input Circuit Referenced to VCC
  • Low Power Consumption, 5-μA Max ICC

Documents:

Recommended Products

Customer Comments

  • A word of caution: read the data sheet carefully. I got bit by this IC before because I was using it to level-shift JTAG signals, which are pulled up by resistors on the target device. The value of the pull-up resistors was too low, which caused the IC to be confused about the direction of the signals.

    The datasheet recommends using 50k pull-up resistors if you need them. It is also incompatible with I2C, 1-Wire, and similar buses.

    • For I2C, I’d recommend the PCA9306 as a better solution.

      https://www.sparkfun.com/products/10403

      Not sure how that would work with the JTAG stuff, however.

  • Perhaps I am doing something wrong, but I need to connect OE to the VCCa in order to get proper logic levels. I didn’t remove the jumper. The hookup guide shows the OE unconnected. Please advise.

    • OE should be unconnected.

      There may be a bad solder joint on the board. You can contact tech support and they’ll help you figure it out and get a replacement if that’s the case.

  • Hi. For 3.3 <> 5 V UART conversion do I want this or 12009? Thanks a lot.

    • Either will work; this part is better for higher speed applications so you could save a little money if you don’t need the speed capability.

  • Would this still work from A1 to B1 if VccA was left disconnected? Assuming eveything else is hooked up fine .

  • I needed to convert from a 1.8V device to a 3.3V device. When the 1.8V was connected connected via unpaired 6" jumper wires, the result was unworkable. Shorter wires (under 1") might have helped, but I went whole hog and ended up doing a custom board with the TXB so that there was only a half inch of PCB trace (with nice ground plane) instead of wires. That seems to work like a champ.

  • Can this device be used for UART?

    • Yes, but only for low-voltage UARTs (say, 3.3V signals to 5V signals). For changing between a true RS-232 signal level UART and a low-voltage UART, check out our MAX3232 breakout board.

      • I tried to put this device in between an AVR mega(@5v) and an XBee module(@3.3v) with no luck. The 3.3v side that was connected to the DIN pin on the XBee was outputting garbage even though the corresponding pin on the 5v side was silent.

        • That should absolutely not be the case; if you’re certain that you’ve got it hooked up right (especially with respect to the rails; VccB must be the higher voltage), you may want to contact tech support and see about getting a replacement. I’ve used this board to go from 3.3V to 5V regularly.

  • Hi Is any body know Voltage-Level Translator with very low level voltage like 0.5 v to 5 and vice versa? Thank you Iman

  • Can someone tell me the difference between this and the Logic Level Converter?

    • The Logic Level converter you’ve mentioned has two bidirectional, open-drain channels by FETs, and two one-way level shift channels (HIGH-In and LOW-out) by resisters doing voltage divider. Bidirectional open-drain level shifters are (by choosing appropriate FETs) compatible with I2C bus, but it has fixed High- and Low-voltage sides. Buffer-gate type bidirectional level shifters like TX010x based ones have two sides and any side of it can be assigned to High (or Low) voltage side, though lines pulled-up may confuse the chip as supersat mentioned above and not compatible with I2C.

  • This is a great chip - easy to hookup and it just works. No slew. No hassle. I’m really glad to see that you guys made this a breakout board. One word of caution, though. The VCC Isolation feature (which places the pins in a HighZ state) works during startup only if you tie OE to ground via a pulldown. It doesn’t matter which rail powers up first, but until the VCCa rail is energized OE will continue to be held low, keeping the pins HighZ. SO - remember to connect OE to GND with a weak pulldown (10-50k), and leave the solder jumper connected.

  • One of these that can do 12V to 5v would be fantastic. Anyone know of such a chip?

    • No promises, but from quick glance it looks like Texas Instruments CD4504 might fit the bill. It really depends on what you’re trying to do with it. I2C? SPI? Supply from 5-20V. Tie SELECT to GND and you’ll have yourself a A-B CMOS translator. http://www.ti.com/lit/ds/symlink/cd4504b.pdf

    • If you don’t need bidirectional, a MAX232 might work. Made for RS232.

Customer Reviews

3.7 out of 5

Based on 3 ratings:

5 star
1
4 star
1
3 star
0
2 star
1
1 star
0

0 of 1 found this helpful:

It didn't worked

I tested but it didn’t worked well, then I bought two 74AHCT125 to create an 8 bit level shifter and worked perfectly shifting levels from 3.3 v logic to 5 v .

So sorry to hear that you had some issues with your item.


level shifter

while it might be good, I got confused with level shifter that probably will work for I2C bus. The data sheet of the TI device indicates that this board can not be used for I2C bus level shifting.


Good for SPI

I tried level shifting an ADXL362 breakout board with resistors and only got garbage out of the board. Then I bought the TXB0104 slapped some header pins on it and installed onto my breadboard and was up and running in minutes. I was able to run my SPI_CLOCK_DIV all the way up to 2 on a 16MHz Arduino and get data from the ADXL362. Since I am going to incorporate the actual TXB0104 chip into a custom board I like the idea of having the four lines taken care of with a minimal foot print and parts compared to using separate BSS138s.