This tiny Pololu logic level shifter features four bi-directional channels, allowing for safe and easy communication between devices operating at different logic levels. It can convert signals as low as 1.5V to as high as 18V and vice versa, and its four channels are enough to support the most common bidirectional and unidirectional digital interfaces, including I²C, SPI, and asynchronous TTL serial.
As digital devices get smaller and faster, once ubiquitous 5V logic has given way to ever lower-voltage standards like 3.3V, 2.5V, and even 1.8V, leading to an ecosystem of components that need a little help talking to each other. For example, a 5V part might fail to read a 3.3V signal as high, and a 3.3V part might be damaged by a 5V signal.
This level shifter solves these problems by offering bidirectional voltage translation of up to four independent signals, converting between logic levels as low as 1.5V on the lower-voltage side and as high as 18V on the higher-voltage side, and its compact size and breadboard-compatible pin spacing make it easy to integrate into projects.
The logic high levels on each side of the shifter are achieved by 10 kΩ pull-up resistors to their respective supplies; these provide quick enough rise times to allow decent conversion of fast mode (400 kHz) I²C signals or other similarly fast digital interfaces (e.g. SPI or asynchronous TTL serial). External pull-ups can be added to speed up the rise time further at the expense of higher current draw.
- Dual-supply bus translation:
- Lower-voltage (LV) supply can be 1.5V to 7V
- Higher-voltage (HV) supply can be LV to 18V
- Four bidirectional channels
- Small size: 13 mm × 10 mm × 2 mm
- Breadboard-compatible pin spacing
This logic level converter requires two supply voltages: the lower-voltage logic supply (1.5V to 7V) connects to the LV pin and the higher-voltage supply (LV to 18V) connects to the HV pin. The HV supply must be higher than the LV supply for proper operation. Logic low voltages will pass directly from Hx to the corresponding Lx (and vice versa), while logic high voltages will be converted between the HV level to the LV level as the signal passes from Hx to Lx or Lx to Hx.
The level shifter circuit does not require a ground connection to either device, so there are no ground pins on the board. (Some competing level shifter modules provide ground connections that simply act as a pass-through; we have opted to leave these off and make the board smaller.) The two devices being connected through the level shifter must still share a common ground.
A 0.1″-pitch male header strip is included for use with this board. The strip can be broken into smaller pieces and soldered in so the board can be used with perfboards, breadboards, or 0.1″ female connectors.
Alternatively, wires can be soldered directly to the board for more compact installations. The connections are labelled on the backside of the PCB, so you might find it more convenient to solder the pins in a way that allows the labelled side to be facing up.
- Logic Level Shifter schematic diagram
- Logic Level Shifter dimension drawing
- 3D model of the Logic Level Shifter
- Level shifting techniques in I2C-bus design
The logic level conversion is accomplished with a simple circuit consisting of a single n-channel MOSFET and a pair of 10 kΩ pull-up resistors for each channel.
When Lx is driven low, the MOSFET turns on and the zero passes through to Hx. When Hx is driven low, Lx is also driven low through the MOSFET’s body diode, at which point the MOSFET turns on. In all other cases, both Lx and Hx are pulled high to their respective logic supply voltages.
External pull-ups can be added to speed up the rise time. This same circuit is detailed in NXP’s application note on I²C bus level-shifting techniques, and we have used it before on carrier boards for 3.3V sensors with I²C interfaces to enable them to work directly with both 3.3V and 5V systems.