Level Shifter - 8 Channel (TXS0108E) Hookup Guide
Introduction
The SparkFun Level Shifter - 8 Channel (TXS0108E) features the TXS0108E™ 8-bit, bi-directional logic level translator from Texas Instruments to shift between devices running at different common microcontroller voltages such as 1.8V, 3.3V and 5V. The TXS0108E can transmit data between ports at max speeds of 110Mbps (push/pull) or 1.2Mbps (open drain) so you can use a 3.3V SPI device with a 5V microcontroller like the SparkFun RedBoard Plus without sacrificing data transmission speeds.
In this guide we'll go over the specifications of the TXS0108E and how to wire it into a level shifting circuit.
Required Materials
In order to follow along with this guide you'll need the devices you want to level shift between along with the TXS0108E Breakout. The example circuit in the Hardware Assembly section uses the following items to demonstrate shifting from a 5V microcontroller to a 3.3V SPI device:
Required Tools
Using this breakout requires through-hole soldering so you may need some of the following tools and soldering accessories:
Recommended Reading
This tutorial assumes readers have some know-how about the topics in the tutorials below. If you are not familiar with the concepts covered in them or need a refresher, we recommend reading through them before continuing with this guide:
How to Solder: Through-Hole Soldering
How to Use a Breadboard
What is an Arduino?
Hardware Overview
Let's take a closer look at the TXS0108E level shifting IC and other components on this breakout.
TXS0108E Level Shifter
The TXS0108E is an 8-channel, bi-directional, level shifting voltage translator that works in both open drain and push/pull operations. It accepts a supply voltage range of 1.4V to 3.6V on the A Port and 1.65V to 5.5V on the B Port (VCC_A ≤ VCC_B).
The TXS0108E uses pass gate circuit architecture with integrated edge rate (one shot) accelerators to support data transmission speeds up to 1.2Mbps in open drain operation and up to 110Mbps in push/pull operation. It also has built in pull-up resistors for open drain applications so external resistors are not necessary. For complete information on the TXS0108E, refer to the datasheet.
PTH Headers
The board breaks out out all the TXS0108E's pins to a pair of 0.1"-spaced PTH headers; one for each port. The OE input pin is also broken out on the Port A "side" as it is referenced to VCCA. The board pulls OE LOW
through a 110kΩ resistor to disable the I/O pins by default. Make sure to tie the OE pin to VCCA to enable the device.
Board Dimensions
The SparkFun Level Shifter - 8 Channel (TXS0108E) measures 1.10" x 0.50" (27.94mm x 12.70mm).
Hardware Assembly
In this section we'll demonstrate how to assemble this breakout into a level-shifting circuit between a 5V development board, the RedBoard Plus, and a 3.3V SPI device, the SparkFun Triple Axis Accelerometer Breakout - KX134 (Qwiic). We'll use a breadboard here to make building the level shifting circuit easier and to keep the connections as short as possible.
Soldering Assembly
This breakout requires some through-hole soldering to integrate the board into a level-shifting circuit. Since the demo circuit uses a breadboard we'll solder a set of breakaway male headers to the board so we can easily plug it into the breadboard.
Arduino Assembly
Plug the Level Shifter Breakout into the breadboard and then make connections to the board with wires. Leave the circuit unpowered while building the circuit to avoid damaging anything with a short or improper connection.
Reminder, VCC_A must be less than or equal to VCC_B and OE needs to connect to VCC_A. Our SPI device runs at 3.3V so we connect the peripheral pins to channels on Port A and connect matching microcontroller signals to Port B.
Troubleshooting
Signal Oscillations
Some users may experience oscillations or "ringing" on communication lines (eg. SPI/I2C) that can inhibit communication between devices. Capacitance or inductance on the signal lines can cause the TXS0108E's edge rate accelerators to detect false rising/falling edges.
When using the TXS0108E, we recommend keeping your wires between devices as short as possible as during testing we found even a 6" wire like our standard jumper wires can cause this oscillation problem. Also make sure to disable any pull-up resistors on connected devices. When level shifting between I/O devices, this shifter works just fine over longer wires.
The TXS0108E is designed for short distance, high-speed applications so if you need a level shifter for a communication bus over a longer distance, we recommend one of our other level shifters.
Voltage Requirements and OE
Reminder, voltage supplied to VCC_A must be less than or equal to VCC_B. Also, the breakout pulls OE LOW so make sure to tie the OE pin to VCC_A to enable the TXS0108E.
General Troubleshooting
If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the SparkFun Technical Assistance page for some initial troubleshooting.
If you don't find what you need there, the SparkFun Forums are a great place to find and ask for help. If this is your first visit, you'll need to create a Forum Account to search product forums and post questions.
Resources and Going Further
For more information about this breakout, check out the following resources: