Level Xlate
A level translator converts logic signals between voltage domains, ensuring a 3.3 V GPIO does not apply unsafe voltage to a 5 V peripheral's input, and that a 5 V output's swing is attenuated to what a 3.3 V logic input can tolerate. Bidirectional translators handle buses like I²C where any side may drive the line.
A simple resistor divider works for unidirectional high-to-low translation. For bidirectional use, the TXS0102/PCA9306 type uses a back-to-back MOSFET: when either side drives the line low, the MOSFET turns on and pulls the other side low too; pull-up resistors restore the line to the respective supply voltage when released.
In plain terms
A bilingual interpreter between two systems that speak the same logical language but at different voltages — one says 'yes' at 5 V and the other only speaks 3.3 V, and the translator makes them understand each other without either getting hurt.
Why designers use it
- Connect a 3.3 V microcontroller's I²C bus to a 5 V sensor module.
- Interface a 1.8 V LPDDR4 memory to a 3.3 V FPGA I/O bank.
- Allow a 5 V RS-485 transceiver to communicate with a 3.3 V UART.
- Protect sensitive LDO-powered RF chips from 5 V SPI signals.
Best for
- I²C bridging
- UART level shift
- SPI cross-domain
Key specifications
- VccA: 1.2 V – 3.6 V
- VccB: 1.65 V – 5.5 V
- Channels: 1 – 32
- Speed: Up to 100 Mbit/s
- Direction: Fixed, controlled, or auto
When not to use it
- When translating very fast signals (> 100 MHz) — MOSFET-based bidirectional translators have limited bandwidth.
- When both domains are the same voltage — no translator is needed; use a buffer if drive strength is insufficient.
Common mistakes
- Using a TXS0108 on an I²C bus without external pull-ups — the IC requires them on both sides.
- Powering the higher-voltage side before the lower-voltage side; if the MOSFET's body diode conducts, it can latch up a 1.8 V device.
Where you will find it
- A Raspberry Pi add-on board uses a PCA9306 bidirectional level translator to connect the Pi's 3.3 V I²C bus to a 5 V OLED display module: without it, the display's SDA line would pull to 5 V through its internal pull-up, potentially damaging the Pi's SoC input.
- A drone's flight computer uses a TXS0108 to bridge its 3.3 V STM32 SPI bus to the 5 V SPI flash that stores the PX4 firmware: the bidirectional IC handles both the STM32's MOSI drive and the flash's MISO return path correctly.
- An industrial PLC's I/O module uses discrete voltage-divider level translators on the inputs from 24 V field sensors: three resistors reduce the 24 V to the 3.3 V the internal microcontroller's ADC requires, with a clamp diode to catch any transient above the divider's design point.
A short history
As digital systems migrated from 5 V TTL logic to 3.3 V, 2.5 V, 1.8 V, and finally 1.0 V supply rails in the 1990s and 2000s, the need arose for bidirectional level-translation ICs that can bridge logic families without back-powering or latch-up. Texas Instruments introduced the 74LVC and 74ALVC families in the early 1990s; their auto-direction-sensing translators (such as the TXB0108 and TXS0108) automatically detect current flow direction and translate bidirectionally without a direction-control pin. Level translators are now standard components in every mixed-voltage embedded system, allowing microcontrollers operating at 3.3 V to interface with 5 V legacy peripherals or 1.8 V radio modules.
Good to know
- When a 3.3 V microcontroller talks to a 1.8 V flash chip, a level translator sits between them — auto-direction parts (TXB0108) detect drive direction and shift transparently.
- Bidirectional N-MOSFET level translators (the BSS138 'one-transistor' trick) are the simplest, cheapest way to translate I²C between 3.3 V and 5 V — every Arduino-to-Pi adapter uses it.
- FPGA bank-voltage management often relies on level translators when the system has a mix of 1.8 V and 3.3 V banks talking to 5 V legacy peripherals.