Voltage-Level Translator – TXB0104 Breakout – SparkFun BOB-11771
This breakout board for the Texas Instruments TXB0104 module 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.
Voltage Level Translator 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
The TXB0104 breakout board is pretty simple. There are two rows of pin headers, one down each side of the board; one side for the high voltage signals and one for the low voltage signals.
- The output enable jumper (1) is closed by default, causing the signals on both sides to be driven at all times. It’s up to the user to ensure (as is usually the case) that the system avoids bus contention states where the high side and low side of the same signal are being driven to opposite levels.
- B-side signals (2) are the high voltage signals. VccB must be at a higher voltage than VccA to avoid total protonic reversal (or at least, to avoid possible damage to the chip). The voltage range for VccB is 1.65 to 5.5V. If driving the OE pin from the high-voltage device, please insert a 1k resistor in series with the drive signal.
- A-side signals (3) are the low voltage signals. VccA must be at a lower voltage than VccB. The voltage range for VccA is 1.2V to 3.6V.
Connecting to an Arduino:
The image above shows how to use the TXB01014 BOB to connect an Arduino Uno to SparkFun’s ADXL345 breakout board. The ADXL345 board is a 3.3V system, and the Arduino Uno is a 5V system, so some level shifting is required.
In this case, we’re leaving the OE pin tied high as it defaults; there’s no real need to make the pins high impedance for this application.
There is no need for changes in software to support the TXB0104; the chip will automatically detect the signal direction and pass the data through accordingly.