With the ascendency of mobile consumer electronics and the anticipated growth of the Internet of Things, power optimization techniques are increasing in their importance to microcontroller-based design. Armed with the right knowledge and analytical tools, developers can implement solutions for low-power applications that balance among constraints on energy usage, performance, responsiveness, and life-cycle costs.
Low-power design touches on multidisciplinary specializations that include computer architecture, semiconductor physics, integrated circuit layout, digital design, and software engineering. Here, I will focus on how to use low-power MCU technology. If you need some refreshers on the background fundamentals, here are some useful references:
Fundamentals of Low-Power Microcontroller Design (Clive Maxfield), and
Fundamentals of Low-Power IC Design (Note: IEEE 1801 is the Unified Power Format for ChipHeads).
With this background in mind, here are some specific bullet points that can help you in developing low-power applications.
Understand the target application
As with any engineering-oriented discipline, domain expertise stands as an essential prerequisite for leveraging low-power technology. Application domains for low-power microcontrollers include battery powered electronics like computer/communications devices and their peripherals, mobile entertainment, portable medical electronics, sensor based remote environmental measuring devices, and the like. Knowing your application domain is a key to knowing which power-reduction techniques will be effective.
Review the integrated circuit(IC) low-power techniques of interest
Several techniques comprise the common IC lower power design constructs, with two or three typically visible to developers of microcontroller power management drivers and applications. Multi-voltage threshold transistors, substrate body biasing, often operate "behind the scenes" to offer power savings with minimal direct software interaction. Power gating/power shut off (PSO), low voltage standby, dynamic voltage and frequency scaling (DVFS), and clock gating techniques regularly emerge through direct programming or APIs like the NXP Power Profile.
Research efforts have produced Asynchronous Circuits building up to microprocessors and asynchronous microcontrollers. Asynchronous design has motivated computer design pioneers including Mark Dean and Ivan Sutherland in his Turing Award Lecture "Micropipelines." (Exotic sounding techniques like Adiabatic Computing and Reversible Logic also entertained research projects, and today materials like graphene promise alternatives).
Select an appropriate MCU
With your domain knowledge for the application and having reviewed VLSI techniques, you can now move to the stage of selecting a suitable microcontroller. If you can get past your philosophical biases and legacy applications, you can leverage evaluation methodologies built on benchmarks specifically oriented to the low-power domain in making a selection. Criteria for CPU selection abound, but some of those impact low-power design include CPU Architecture size, Benchmarks and Metrics, Power Modes, Memory Array usage, Peripheral and I/O Power Modes, and Clock Source Selection.
CPU architecture size -- In the reference links both Wright and Maxfield discuss the tradeoffs among 8-, 16-, and 32-bit architectures. Maxfield focuses on applications suited to low-cost 32-bit architectures like the Cortex M0, where the pervasive ARM ecosystem promises life cycle support, low-cost development tools, and migration to higher performance implementations (even DSP and multicore) as necessary. Wright balances the traction behind 16 bit architectures from giants like Freescale and Texas Instruments as equally compelling since those organizations offer depth and breadth of 8- and 16-bit low-power offerings alongside comparable 32-bit families. As with earlier CPU Wars, microcontroller selection for low power can also reflect legacy support requirements, extreme hardware cost sensitivity, and on occasion anecdotal, subjective bias without quantitative evidence. Some of the more useful measures, though, include:
Size integer size, bus size, address space, code density
Power modes -- complexity, tools support
Life cycle support: legacy code, future code migration (watch for potential of virtualization support)
Benchmarks and metrics -- Benchmark application suites can help objectively quantify various microcontrollers. Individual MCU vendors can provide some benchmarks, while organizations like the Embedded Benchmarking Consortium (EEMBC) and BDTI offer another means to evaluate different architectures. In the absence of existing benchmarks, low-power design interests ought to include a plan to develop benchmark code suites inspired by the target application. Useful metrics for low-power microcontroller applications include Current per MHz (ma / MHz), standby current, sleep current, MIPS/Watt, and the very real-world Hours of AAA Battery Use.
(Continued on Page 2)