Blog

8-Channel Bi-Directional Logic Level Converter TXS0108E for Arduino

8-Channel Bi-Directional Logic Level Converter (TXS0108E)

Automatic Voltage Translation Between 1.2V-3.6V and 1.65V-5.5V for Arduino Projects

Introduction

The TXS0108E is an 8-bit bidirectional voltage-level translator that automatically detects direction and translates between different logic levels without requiring a direction control signal. Perfect for interfacing 3.3V and 5V Arduino devices with various sensors and peripherals.

TXS0108E Logic Level Converter

Key Features

🔄 Bidirectional

Automatic direction sensing

🔌 8 Channels

Simultaneous translation for multiple signals

Wide Voltage Range

1.2V-3.6V to 1.65V-5.5V

🚀 High Speed

Up to 60Mbps data rate

Technical Specifications

Channels 8 independent bidirectional channels
Voltage Range (A Side) 1.2V to 3.6V
Voltage Range (B Side) 1.65V to 5.5V
Data Rate Up to 60Mbps
Operation Mode Automatic direction sensing
Input/Output Current ±50mA per channel
Package 20-pin TSSOP or module
Operating Temperature -40°C to +85°C

Pin Configuration

TXS0108E Pinout

Pin Function Description
VCCA Power A 1.2V-3.6V supply
VCCB Power B 1.65V-5.5V supply
GND Ground Common ground
A1-A8 Channel A Low-voltage side I/O
B1-B8 Channel B High-voltage side I/O
OE Output Enable Active high (connect to VCCA if unused)
Note: Most breakout boards label sides as LV (A) and HV (B)

Typical Wiring (3.3V ↔ 5V)

Logic Level Converter Wiring

// Basic Connection:
// VCCA → 3.3V (Arduino 3.3V)
// VCCB → 5V (Arduino 5V)
// GND → Common ground
// A1 → 3.3V device signal
// B1 → 5V device signal
// OE → VCCA (always enable)

Arduino I2C Level Shifting

// I2C Connection:
// Arduino SDA (5V) → B1
// Arduino SCL (5V) → B2
// 3.3V Device SDA → A1
// 3.3V Device SCL → A2
// VCCA → 3.3V
// VCCB → 5V
// GND → GND
// OE → VCCA

#include <Wire.h>

void setup() {
  Wire.begin(); // 5V I2C
  // 3.3V device will now safely communicate
}

SPI Level Shifting Example

// SPI Connection:
// Arduino MOSI (5V) → B3
// Arduino MISO (5V) → B4
// Arduino SCK (5V) → B5
// Arduino SS (5V) → B6
// 3.3V Device MOSI → A3
// 3.3V Device MISO → A4
// 3.3V Device SCK → A5
// 3.3V Device SS → A6

#include <SPI.h>

void setup() {
  SPI.begin(); // 5V SPI
  // 3.3V SPI device now safely connected
}

Application Notes

I2C Bus Translation

Use any two channels for SDA/SCL. The TXS0108E automatically handles bidirectional I2C signals without direction control.

SPI Interface

Translate MOSI, MISO, SCK, and SS signals between different voltage devices. Works with standard SPI peripherals.

GPIO Translation

// Digital Read Example:
int val = digitalRead(A1); // Reads 3.3V signal safely

Convert individual digital signals between voltage domains.

Troubleshooting

No Signal Passing

  • Verify power to both VCCA and VCCB
  • Check OE pin is connected to VCCA
  • Ensure proper ground connection

Signal Distortion

  • Check for excessive capacitive load
  • Reduce wire length for high-speed signals
  • Verify voltage levels are within spec

Overheating

  • Check for short circuits
  • Verify current draw within limits
  • Ensure proper voltage levels