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:
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.
PowerScale is designed to analyze and optimize the energy requirements of embedded systems. In conjunction with the ULINKpro it allows the embedded engineer to identify incorrectly configured peripherals and gives a power profile of the application software.