Power consumption is essential!
Designing embedded systems for low energy consumption is a complex task. The silicon industry offers a wide variety of microcontroller devices and many integrate specific features that increase energy efficiency. Unfortunately, no standards or benchmarks exist today for comparing the energy efficiency of microcontrollers. Even the application requirements have a huge impact and therefore it is hard to select the best matching microcontroller for an energy critical application.
Also the application software itself has a major impact to energy consumption. It is important to choose the system configuration carefully for the requirements of the application and to select the best matching software design pattern. Needless to say, development tools used for creating the application should be specifically designed for embedded programming and configured towards energy efficiency.
While creating the application software the programmer should use these guidelines:
- Run the clocks in the embedded system as slowly as practical.
- Use the best matching power-saving modes.
- Disable peripherals that are not required.
- Optimize the code towards fast execution speed.
- Power consumption, particular current, is not a digital value. Rise and fall times depends on the system. Measurement is required to validate the theory.
Of course these are simplified guidelines, but keeping them in mind during the software development is the key to an energy efficient embedded design. How much energy needs my application? The answer to this question is very important for system designers of low power applications – in fact power profiling is impossible without knowing – and guides immediately to the question: How to measure power consumption?
Simple tools like a multimeter provide only average values and neglect dynamic effects. Unfortunately the effect of those dynamic effects on battery powered systems is influencing the battery duration and is therefore critical for the system. More sophisticated tools like oscilloscopes are complex to use and sometimes difficult in practice (e.g. where to place the shunt resistor, how to setup a galvanic isolation). The setup of such a measurement environment takes time and the complex operation may yield to erroneous results.
The ARM Energy Probe can assist in the optimization of the software. It does not require any additional debug or trace hardware to analyze Linux or Android™ systems.