I want to use an RF12B to communicate over radio with an Arduino, but the transceiver is rated at 3.3 V. I hear I need to use a voltage level shifter, but what do these look like and where can I find a schematic to help me hook it up?
Asked
Active
Viewed 1.2k times
3
-
http://electronics.stackexchange.com/questions/708/i2c-3-3-to-5-0-v-conversion http://electronics.stackexchange.com/questions/622/bi-directional-step-up-and-step-down-3-3v-5-etc – Toby Jaffey Jan 08 '11 at 14:24
3 Answers
9
Microchip has this document with 19 tips about mixing 3V and 5V parts in a circuit (not just level shifting).
The tips:
- Powering 3.3V Systems From 5V Using an LDO Regulator
- Low-Cost Alternative Power System Using a Zener Diode
- Lower Cost Alternative Power System Using 3 Rectifier Diodes
- Powering 3.3V Systems From 5V Using Switching Regulators
- 3.3V → 5V Direct Connect
- 3.3V → 5V Using a MOSFET Translator
- 3.3V → 5V Using A Diode Offset
- 3.3V → 5V Using A Voltage Comparator
- 5V → 3.3V Direct Connect
- 5V → 3.3V With Diode Clamp
- 5V → 3.3V Active Clamp
- 5V → 3.3V Resistor Divider
- 3.3V → 5V Level Translators
- 3.3V → 5V Analog Gain Block
- 3.3V → 5V Analog Offset Block
- 5V → 3.3V Active Analog Attenuator
- 5V → 3V Analog Limiter
- Driving Bipolar Transistors
- Driving N-Channel MOSFET Transistors

stevenvh
- 145,145
- 21
- 455
- 667
3
There's a couple of ways to to voltage level shifting, depending on how fancy you want to get. Just to name a single manufacturer, Texas Instruments has a whole section devoted to mixed-voltage interfacing between different protocols. You can almost guarantee that there's a chip that will fill your needs.
Alternatively, as pointed out in this answer, SparkFun makes a small board that will probably be the easiest solution to implement. Your radio appears to use SPI, which should be workable with that board.
3
It depends what direction the signals are going to.
- If the 5 V device is going to drive a signal on the 3.3 V device, use a simple resistor division.
- If the 3.3 V device is going to drive a signal on the 5 V device, you could use two inverters with the last stage tied to 5 V. However, this requires four resistors and two transistors, which is quite an expense. You could also try out the implementation as shown in Sparkfun's breakbout board.
- If the signal is bidirectional (I²C), maybe something in this appnote on page 10 will work (seems similar to what Sparkfun is using).

Peter Mortensen
- 1,676
- 3
- 17
- 23

Hans
- 7,238
- 1
- 25
- 37