Skip to main content
2 of 3
edited body
Anindo Ghosh
  • 50.7k
  • 8
  • 107
  • 203

Since the question seems oriented towards an IC that provides bidirectional level shifting, consider the Texas Instruments TXB010x family of parts: TXB0102 has 2 channels, TXB0104 has 4 channels, and TXB0108 has 8 channels.

The stand-out feature of this family of ICs is that signal direction is automatically sensed, so a separate direction setting pin is not needed.

Switching speeds up to 10 MHz work reliably. The theoretical maximum speed may be higher - the datasheets are not explicit about this from what I can determine.

I have a TXB0108 working between a 3.6 Volt MSP430 Launchpad and a 5 Volt Arduino Nano, so the use case of the question is covered.

For the purposes of trying it out, Adafruit offers a prebuilt module incorporating the TXB0108, which saves you the trouble of soldering an SMD part. There may be similar options for the 0102 and 0104 from them or others.

8-channel Bi-directional Logic Level Converter - TXB0108

If the intent is to level-shift an I2C signal, which isn't ideally suited to the TXB series ICs, an option that specifically addresses the pull-up resistor and open collector topology of I2C is a module like this, again sold by Adafruit and other vendors.

I2C level shifter

This module uses BSS138 MOSFETs in the way described in the answer by alexan_e. While it is not a single IC such as the question asks for, it perhaps fulfills the intended purpose. Alternatively, it is simple to build this circuit yourself using MOSFETs.

Anindo Ghosh
  • 50.7k
  • 8
  • 107
  • 203