Because the Arduino (and Basic Stamp) are 5V devices, and most modern sensors, displays, flashcards, and modes are 3.3V-only, many makers find that they need to perform level shifting/conversion to protect the 3.3V device from 5V.
Although one can use resistors to make a divider, for high-speed transfers, the resistors can add a lot of slew and cause havoc that is tough to debug. For that reason, we like using 4050/74LVC245 series and similar logic to perform proper level shifting. Only problem is that they are only good in one direction which can be a problem for some specialty bi-directional interfaces and also makes wiring a little hairy.
That's where this lovely chip, the TXB0108 bi-directional level converter comes in! This chip performs bidirectional level shifting from pretty much any voltage to any voltage and will auto-detect the direction. The only thing that doesn't work well with this chip is i2c (because it uses strong pullups which confuse the auto-direction sensor). If you need to use pullups, you can but they should be at least 50K ohm - the ones internal to AVRs/Arduino are about 100K ohm so those are OK! It's a little more luxurious than a 74LVC245 but if you just don't want to worry about directional pins this is a lifesaver!
Since this chip is a special bi-directional level shifter it does not have strong output pins that can drive LEDs or long cables, it's meant to sit on a breadboard between two logic chips! If you do not need instant bi-directional support, we suggest the 74LVC245 as below which has a strong output drive.
This breakout saves you from having to solder the very fine pitch packages that this chip comes with. We also add 0.1uF caps onto both sides and a 10K pull-up resistor on the output enable pin so you can use it right out of the box!
You may also like