Voltage level translation - using TXB0101 - 5-V to 3.3-V


After a lot of mucking about to get a Uno to put out a 3.3-volt pulse (going to XBee Series 2), I got this Texas chip (TXB0101) to work very nicely. TXB0101 is one channel, bidirectional, goes all the way up to eight channels depending on variant. Use TXS for I2C, SDI.
Six pins on a SOT-23 chip, VccA, VccB, GND, Output Enable (OE), port A, port B.
Connect VccA to Arduino 3.3-V, VccB to Arduino 5-V, GND to GND, port B to an Arduino digout, OE to another digout.
Time things so that when the 5-V digout goes HIGH, the OE digout goes HIGH; when the 5-V digout goes LOW, the OE digout goes LOW.
Scoped output is clean and sharp, with a little noise on the baseline - a 0.01uF ceramic between GND and port A cleans it up with little or no effect on response time.
TXB pro's - mainly bombproof, goes down to 1.2-V on port A, has OE.
TXB con's - SOT-23 chip, without OE latches onto last voltage level.
Incidentally, tried some of the other solutions, NPN transistor (too reliant on resistor values for clearly defined HIGH and LOW voltages), MOSFETs have threshold problems (admittedly not here, but no good below 2-V).
SOT-23 tips - use a tacky SMD flux to position the chip on an adaptor board (Roth DIP to SOT-23-6), clamp the chip with tweezers, and solder up with a small gauge solder wire.