Using hardware to save energy in MCU-based sensing applications
Low-power design is an exercise that demands a combination of software, hardware and application understanding to minimize the energy consumed by the embedded system. It is easy to waste energy by failing to balance the trade-offs of flexible software-based processing against more restricted but often more energy-efficient hardware. But subtle changes to hardware implementation can make large differences to overall energy consumption.
The goal of low-energy MCU design generally is to maintain a low duty cycle such that the processor within the system spends almost all of its time asleep. This has proved highly effective in the design of utility meters where the processor core may sleep for 99% of its overall life cycle. It wakes only to collect data from sensor inputs, normally at a scheduled time or to respond to rare, unscheduled interrupts.
The importance of duty cycle can be seen from an analysis of the dynamic energy consumption of an MCU versus its energy demand during sleep. Time is the enemy in any battery-powered application where long periods of autonomy are needed as even apparently small power consumption values become significant over long periods of activity.
During periods of activity, the power consumption of any logic is given by the formula CV²f where C is the total capacitance of the circuit paths within the device, V is the supply voltage and f is the operating frequency. This formula is slightly complicated by the widespread use of clock gating in most modern processor cores, which limits switching activity in unused logic by temporarily disabling the clock signal to those circuits. However, the approximation provides a good guide to active power consumption.
Low-power MCUs are generally implemented on low-leakage processes but there remains a leakage component to energy consumption that becomes significant for any logic block that is active over a long period of time. The leakage power is a constant value, although it tends to rise with operating temperature because of the increase of thermally generated carriers in the transistors. The only way to reduce leakage power beyond careful process design is to withdraw power from the logic block.
To provide designers with a number of ways to combat power consumption, low-energy MCUs provide a number of sleep modes that progressively withdraw power from the various component cores, storing their state in non-volatile memory or dedicated low-leakage registers, until almost all of the device has been powered down.
To provide an example of the difference, an Energy Micro EFM32 Gecko consumes 5mW while running fully active at a clock frequency of 10MHz and a supply voltage of 3V. In its lowest-power mode, the same device consumes 60nW – almost six orders of magnitude lower.
A further consideration in determining overall power consumption is the energy cost of wake-up time (Figure 1 below). It can take time for the phase-locked loops (PLLs) that supply a stable clock signal to the core to stabilize and for state information to be fully restored. During this period, the power demand will ramp up but the waking parts of the device will not be able to perform useful work until they have had their power and state fully restored. Therefore, an important consideration in selecting a low-energy MCU is how long this period is.
Figure 1: The inefficient wake-up period from deep sleep mode to active mode simply cannot be neglected. By reducing wake-up period, as little energy as possible is consumed before the CPU starts performing its tasks.
At a duty cycle of 1 per cent, where the device designed to run at 10MHz wakes every second for a period of 10ms with a wakeup time of 2ms, an MCU rated at 200µA/MHz with a deep-sleep mode running at 2µA may operate for 12.7 years from a pair of AA cells. If this active cycle increases to 2 per cent then the lifetime will be cut to seven years.
However, it is important to consider how the duty cycle operates. If the aim is to improve responsiveness to events by waking the MCU core twice a second, the wakeup time component will double, reducing the system’s battery autonomy by at least six months. Cutting the wakeup time to 2µs can improve the lifetime, assuming the system wakes up twice a second, by more than a year.
Clearly, it is important to maintain a low duty cycle with a low wakeup time overhead. However, it is not always possible to predict when sensors will register an important event. Take, for example, the capacitive sensing, which is a technology now widespread across different industries.
High-performance capacitive sensors are capable of high-resolution measurements of proximity, position or displacement, humidity, fluid level and acceleration of any conductive target.