I had a couple of options to consider when creating a power supply for my BeagleBoard based robot: a simple linear voltage regulator (eg the LM7805) or a fancy switched mode power supply.
Normally I’d go straight for the linear voltage regulator (I’m lazy), however this wasn’t necessarily the right choice for a couple of reasons:
- The power consumption of my robot is relatively high (around 1 amp – see below), which can cause difficulties for a linear power regulator, and
- I’m operating on batteries so making efficient use of the limited power I have is important.
Some requirements: the robot is powered by two LiPo cells in series which output 8.4V fully charged, and this needs to be stepped down to 5V. The power supply will need to supply at least 1 Amp, preferably more. This breaks down as:
- 350mA for the BeagleBoard,
- 200mA for a webcam,
- 200mA for an ASUS N10 802.11n wireless dongle,
- 50mA for a couple of quadrature encoders,
- 200mA for some other sensors and microcontrollers.
Motors and servos run on a seperate power supply.
The Linear Voltage Regulator Option
Linear voltage regulators are extremely easy to use but can be quite inefficient, particularly at high currents, as they work by converting the excess voltage into heat.
The amount of heat produced is equal to (VOUT – VIN) * I. With the requirements above, the heat output is (8.4V – 5.0V) * 1.0A = 3.4 Watts. According to the LM7805’s data sheet, the device’s operating temperature will increase by 65°C per Watt, which gives us an operating temperature of 3.4W * 64°C/W + 20°C = 241°C (assuming 20°C room temperature) which puts us way over the maximum operating temperature of 125°C.
This could be overcome with a suitable heatsink, however all of that heat is chewing up a lot of battery power. The efficiency of the regulator is approximately VOUT/VIN * 100 = (5V / 8.4V) * 100 = 60%. Since the battery life of the robot is already quite limited (I’m using 2000mAH cells), 60% efficiency isn’t exactly ideal.
The Switched Mode Regulator Option
Switched Mode Regulators have an efficiency in the range of 85% to 95%, potentially increasing the battery life of the robot by (95-60) / 60 = 58%. They work by generating a high frequency Pulse Width Modulation signal (between 100kHz and 1.2MHz, depending on the device) and running it through a filter to generate a constant DC output voltage. The regulator IC monitors the output voltage and modifies the duty cycle of the PWM signal to achieve the desired output voltage. All this comes at a price:
- They require quite a few external components compared to a linear voltage regulator.
- The circuit takes up quite a bit of PCB real estate.
- Some of the external components mentioned in the datasheets can be quite hard to get hold of (in Australia, anyway). The output filter requires a high current inductor, and a high capacity, low ESR capacitor.
- Because of the high currents and frequencies generated, you have to be quite careful with your PCB layout, minimizing some of the trace lengths.
Still, it’s hard to argue with a 58% improvement in battery life. Luckily you can cheat – Dimension Engineering offer a switched mode regulator which is a drop in replacement for an LM7805. I’ve tried one of these and they work well, however I wanted to see if I could make one myself. Here’s a photo of my prototype:
I’ve used a TPS5430 which will support up to 3 amps. It’s surface mount, but has a 0.1″ pin pitch which is very easy to solder. Texas Instruments have an online tool, SwitcherPro (free registration required) which will generate a circuit for you given a desired input and output voltage range and maximum current. Here’s the circuit generated by SwitcherPro corresponding to the prototype above:
The circuit will step down 6.5V – 20V down to 5V with 92% efficiency at 1 amp, and support up to 3 amps.