How Does Sleep Save Energy?
For this post, we will look specifically at Embedded Software techniques to save power and energy. This is a well known Power Saving Strategy which doesn’t always get the recognition it deserves. It is also something you have to design into the Power Management Plan from the beginning.
For this example, we will use the MSP430 from TI which has some of the best Power Saving and Power Consumption figures in the industry. We have used them to create devices that run from a pair of AAA batteries for 2 years and which have time based control algorithms so that they can’t be used in a purely event driven mode. Here is how it works:
This shows the power consumption versus time. In Low Power Sleep Mode the consumption is close to zero. Almost no power consumed. Then depending on what is happening it wakes up to varying degrees.
Get the best Electronic Sleep
So this is how you take advantage of this:
- make the time between wake ups as long as possible
- make the time awake as short as possible
- only turn on the peripherals needs for a particular wake period
Now if you system only has to wake once every minute then you can get low power operation from a lot of different processors. If it wakes many times a second then you need a processor that gives you lots of ways to reduce power during wake, reduce the time awake, and increase the interval between wakes.
So back to the MSP430. It has Power Conservation features that allow it to do all three better than most. Here is the list:
- Digitally Controlled Oscillator DCO allows it to wake and run quickly
- Can run a Timer from a 32KHz crystal making interval timing very low power
- Can use the DCO to set the run speed and so shorten the wake time
- Lot’s of Power Down Modes so you can always find one that suits your application
- Peripherals can be Shut Down when not in use
- Can run down to 1.8V – more on that later but it can also help here
Low Power System Architecture
To take advantage of all this, you have to develop the System Architecture so that takes advantage of this. An example from a very long life application we did runs like this:
- 32Hz Oscillator runs a timer that generates a 1 second wake
- User input keys set up to wake on change of state from high to low
- Use DCO at 1MHz to quickly wake, execute & sleep again
- Use State Machines to allow modules to execute predictably with eratic timing
- Have early exit tests to prevent unnecessary Code Execution
The result is an application that runs a process with User Interaction, LED Indicators, and a 2 week cycle where the average Power Consumption is 20uA at 2.7V or 54uW. Of this, less than half is the processor executing the software and the single biggest energy use is the intermittently flashed LED Indicators.
Ray Keefe has been developing high quality and market leading electronics products in Australia for nearly 30 years. For more information go to his LinkedIn profile. This post is Copyright © Successful Endeavours Pty Ltd.