3V Devices to 5V CMOS
4 connections:
74HCT125 is a good cheap choice (14 pin package, quad 3-state buffer).
Power at 5V. Connect each of the 4 output enable pins to 0V. The min high input voltage is 2V so 3V3 compatible and the output state matches input state (it’s a straight buffer).
74HCT08 (quad AND gate).
Many other 5V CMOS chips with TTL level input buffers may be used
8 Connections
74HCT245 or 74ACT245 also provides the solution. The HCT & ACT provide an input voltage range of 0.8 – 2V @ 5V supply. As its 5V powered its output voltage range is good for the PIC. Note that an HC or AC will not work as the input voltage range is not the same.
5V CMOS to 3V Devices
Using Resistors
1K2 and 2K2 resistors potential divider to GND (5V in to 3.24V out) .
Note that using resistors is not perfect, instead of a nice square wave you will often get significantly rounded edges to the pulses, so don’t use this approach if you need to ensure max speed of say a SPI bus as you may find you need to reduce the speed to ensure the data is clocked in cleanly.
Using an IC
A 74LVT245 powered @ 3V3 has 5V tolerant inputs so will do the job. It will only work in this direction though. A LVT may not be powered @ 5V.
A CD74HC4050 can be powered at 2V to 6V and will accept input voltages up to +16V.
74LVC16373 – 16 bit latch, 3V3 device which accepts 5V inputs
5V CMOS to 3V Devices Bi Directional
A 74LVX4245 will do the job and is available from Farnell. Port A is 5V, port B is 3.3V. T/R and OE can be driven from either side.
A 74ACT245 combined with a 74LVT245 should also do the job and is very slightly cheaper, but obviously takes more space.
Single Wire 1.8V To 5V
SN74LVC1G07 – Open drain buffer. Power at 1.8V (1.65 – 5.5V), Vin high min = 0.7xVDD but will accept +5.5V on its input or output.
(SN74LVC1G06 is inverting buffer version)
Single Wire 5V To 1.8V
SN74LVC1G07 – Open drain buffer. Power at 1V8 or 3V (1.65 – 5.5V) and will accept +5.5V on its input or output.
(SN74LVC1G06 is inverting buffer version)
Single Wire 3V To 5V
SN74LVC1G07 – Open drain buffer. Power at 1V8 or 3V (1.65 – 5.5V) and will accept +5.5V on its input or output. A 2K2 pull up on the output to +5V is good.
(SN74LVC1G06 is inverting buffer version)
SN74AHCT1G126 – Buffer. Power at 5V (4.5 – 5.5V), min high level input voltage 2V. OE high for output active. (NOTE AHCT not LVC to give the lower high level input voltage needed)
Single Wire 5V To 3V
SN74LVC1G07 – Open drain buffer. Power at 1V8 or 3V (1.65 – 5.5V) and will accept +5.5V on its input or output. A 2K2 pull up on the output to +3V3 is good.
(SN74LVC1G06 is inverting buffer version)
SN74LVC1G126 – Buffer. Power at 3V. Max high level input voltage 5.5V. OE high for output active. (SN74LVC1G240 is an alternative inverting version, OE must be low)
SN74AHC1G08 – Power at 3V3 and will accept up to +5.5V on its input.
Bi Directional
74LVC8T245
Power VCCA at 1.65V to 5.5V
Power VCCB at 1.65V to 5.5V
DIR and OE are supplied by VCCA
TXS0108E
8 bits of bi-directional level shifting for open drain and push pull. Directionless voltage-level translator specifically designed for translating logic voltage levels.
A-port accepts I/O voltages ranging from 1.2 V to 3.6 V
The B-port accepts I/O voltages from 1.65 V to 5.5 V
Uses pass gate architecture with edge rate accelerators (one shots) to improve the overall data rate. The pull-up resistors, commonly used in open-drain applications, have been conveniently integrated so
that an external resistor is not needed. While designed for open-drain applications it can also translate push-pull CMOS logic outputs.
I2C Bus
PCA9517A provides I2C bus interfacing if you don’t want to use mosfets to do it:
- Power VCC_A with 0.9V to 5.5V
- Power VCC_B with 2.7 V to 5.5V
- Tie EN to VCC_B to enable
TXS0108E – provides 8 bits of bi-directional level shifting for open drain and push pull so is also good for I2C where you want to interface other lines also