MCUs Series - Part 1 - Low-Power Microcontrollers
Microcontrollers are embedded in a wide variety of consumer and commercial products such as personal wearables, medical devices, sensing and monitoring systems, the smart home, security systems, sensor networks, the Internet of Things (IoT), and more. Microcontrollers provide electronic system designers the following benefits: simplicity, flexibility, and re-programmability, among others. A familiarity with microcontrollers is essential knowledge for today's engineering professional.
Related Components | Test Your Knowledge
2. Objective
The objective of this learning module is to provide you with an overview of Microcontroller Units (MCUs).
Upon completion of this module, you will be able to:
- Define what an MCU is
- Explain the difference between an MCU and a microprocessor
- Describe low-power MCUs
- Discuss some applications of low-power MCUs
- Describe ultra-low-power MCUs
- Explain what the ARM Cortex is
- Discuss the ULPBench benchmarks for low-power MCUs
- Gain a deeper understanding of an ultra-low-power MCU through the use of a case study (TI MSP432)
3. What Are MCUs? Difference Between Microprocessors and MCUs
A microcontroller or microcontroller unit (MCU) is quite literally a tiny computer embedded on a single chip. We are used to the idea of microprocessors being on a single chip and there being several supporting chips on a motherboard (chipset) that altogether with the inclusion of a Main Memory make a basic functional computer. In a microcontroller, most of the key components of the basic computer are embedded on to the same chip in addition to the microprocessor. Thus, a microcontroller will embed a main memory (typically SRAM), a small bit of programmable memory (usually flash memory), and other components such as I/O controllers, A/D converters, on the same chip as the microprocessor.
The reason for having these additional capabilities embedded on the same chip is so that the MCU can be used as a stand alone component capable of driving circuitry in a number of different applications. MCUs are found in applications as far ranging as subsystems in automobiles, to biomedical instrumentation, to a control unit on a washing machine. It is not atypical these days to find MCUs even in toys, especially those capable of communicating via the Internet.
4. Components of A Typical MCU
A typical microcontroller will have all or most of the following components:
- A CPU
- A small amount of Main Memory or RAM
- A small amount of programmable memory (typically Flash memory these days) so that a user can write programs that the MCU will run. Some MCUs have a separate area of ROM that has some initialization code for the MCU, such as a bootloader, or even a tiny operating system. In MCU systems that don't have a separate area for this, the low portion of the programmable memory is dedicated to a bootloader or basic OS. In general, you should think of this component as being the analog of storage in a regular computer.
- A clock
- Other timer circuitry such as a Watchdog timer and Pulse Width Modulation (PWM) generators.
- Analog-to-Digital Converters (ADCs); occasionally Digital-to-Analog Converters (DACs) as well.
- I/O Ports which are often only serial ports or UARTs/USARTs; they are setup as General Purpose I/O Ports (GPIO). Software determines whether they function as an input or output.
- Other serial communication interfaces such as I2C or SPI.
Later in this learning module, we will be examining the Texas Instruments MSP432 to dive deeper into a specific MCU.
5. Low-power MCUs
For a number of different embedded system applications, it is desirable to have an MCU that draws a small amount of power. This is the case with a battery operated system or a subsystem in a larger system where it is desirable to keep the power draw to a minimum in order to improve efficiency (such as an automobile). Additionally, a key aspect that is often overlooked is that the heat dissipation of an MCU is proportional to the amount of power it consumes. Thus, for applications in which compaction is desired, it is desirable to keep the generated heat to as little as possible thereby allowing for a denser arrangement of electronics, as well as to reduce the amount of heat radiating from the system (think of a smart watch as an example).
Thus, the power is proportional to the voltage as well as the current. In the case of low-power MCUs, system designers attempt to reduce both the operating voltage and the current drawn.
- 5.1 Operating Voltage Considerations
If the electronics can be made to function at a lower voltage, then we are on our way to reducing the operating voltage. So why not just keep reducing the operating voltage such that it is as small as say 0.5V? Although there are some examples of operating voltages being that low, typically these are rare since there are several trade offs to be considered. From a simplistic point of view, lower voltage means there is a lower voltage difference between an ON state and an OFF state, which in turn means that the electronics are less noise tolerant. By reducing the voltage difference you have inherently reduced the noise margin. In other words, small voltage spikes or supply variations as well as induced voltages from external sources (EMI) can cause unpredictable behavior. From a slightly more complicated point of view, reducing the difference between ON and OFF voltages means reducing the threshold voltage of the underlying transistors, which, in turn, means that the transistor never fully turns off since the threshold is so low resulting in a large leakage current.
There are also issues related to the combination of threshold voltage and leakage current that result in a severely reduced operating frequency at extremely low voltages (the switching time between ON and OFF states is longer). That said, the fact that at lower voltages the system can only function at lower frequencies is actually used in a technique called Dynamic Voltage and Frequency Scaling (DVFS), which reduces the operating frequency (and thus the operating voltage) for tasks that do not need the CPU to run at its highest possible frequency. In fact, this mechanism is used even in PC and Server grade CPUs, especially when running on battery (laptops), and many current Intel processors even allow the CPU to operate beyond its operating frequency to speed up certain CPU-bound tasks.
For battery operated systems there can be additional constraints such as a typical AA battery being most efficient at roughly 0.9V. System designers for a low-power MCU will often aim for a multiple of 0.9V. 1.8V is a fairly typical value that is common in the low-power MCU market today; it is a good trade off for battery efficiency, operating frequency and relatively low-power consumption.
- 5.2 Reducing Leakage Current
In reducing the current draw, the main idea is to try and reduce leakage current. Leakage Management techniques aim to selectively switch OFF (completely cut power) to sub-systems that are not currently in use. The CPU itself is designed such that much of it can be turned OFF as well. Often this results in a number of different power modes, starting from a STANDBY mode in which the OS and program are left in memory - power is never cutoff to the main memory - so the system maintains STATE and can wakeup quickly and resume operating.
We will be talking more about how an MCU's power consumption is reduced when we look at ultra-low-power MCUs a little bit later in this learning module.
6. Low-power MCU Applications (Battery Operated)
The demand for acceptable performance at low-power is driven largely by battery operated applications. If a device can be line-powered then there are less stringent requirements on the power consumption of the entire device and the MCU in particular (typically the MCU will be one of the components with the largest power consumption, outdone primarily by communication components especially if they are wireless communication components).
In the previous section, we said that in compact electronics, it is desirable to keep power draw to a minimum due to the need for keeping heat to a minimum. But make note of the fact that compact devices are often portable devices, and thus, battery operated devices. The main thing to keep in mind is that there are two classes of battery operated applications: one in which a battery can be recharged periodically (such as a personal wearable) and the other where batteries are for long term use and are replaced when needed (such as a home energy monitor).
The most common applications of low-power MCUs are in the areas of personal wearables, medical, sensing and monitoring, smart home, environmental, security systems, sensor networks, and the Internet of Things (IoT).
7. Ultra-low-power MCUs
The distinction between low-power and ultra-low-power is mainly one of degrees. Most of the same principles that are applied to reduce the power consumption of an MCU, apply to ultra-low-power MCUs. It has become common in the industry to refer to a certain class of MCUs as being ultra-low-power because of their exceptionally low-power consumption. We began exploring techniques that are applied to reduce the power consumption in MCUs. In this section we will continue that discussion and explore this topic further.
- 7.1 Operating Frequency
We have discussed power issues surrounding controlling the operating voltage and the current draw. Now let us take a closer look at the dimension of time. Two things come into play once we begin considering time. The first is that the power consumption is proportional to the operating frequency. Why should this be the case? The reason is that the switching ON and OFF of the transistors results in the charging and discharging of a small amount of capacitance that is embedded in those transistors. The higher the frequency, the more charging/discharging cycles and the higher the energy consumed, which is a result of the operating frequency.
- 7.2 Power Consumption: Sleep Mode vs. Active Mode
The MCU is in active mode when it is performing useful computations and in a low-power or sleep mode the rest of the time. But what amount of time can the MCU be safely put into sleep mode or be in a low-power state? By tweaking the active duty cycle, the overall power consumption can be reduced. In ultra-low-power situations, active duty cycles of 1% or less are not uncommon. In a sensing application, for example, you may record the sensed parameter (say, temperature) periodically (once a minute) and be sleeping the rest of the time, occasionally having to take a special action (i.e., send an alert; change actuation) depending on certain temperature thresholds.
When the MCU is sleeping most of the time an important issue that arises is how quickly the MCU is able to step out of sleep mode and into active mode. Apart from making sure that the MCU is on time (for example, to be able to record the parameter at the right time in a temperature sensing application) and making sure that when interrupted the MCU is able to switch quickly to active mode to respond to that interrupt, it is also important to consider that transitioning from sleep mode to active mode itself can have significant power consumption and this power draw has to be balanced against the cost of the actual task to be performed.
For example, when a certain task follows another task but after a small delay, the cost of performing the task may be small as compared to the cost (power and time) of (i) putting the core and sub-systems to sleep, (ii) interrupting, which could involve performing an Interrupt Service Routine, and (iii) bringing the core and sub-systems back to active mode; it may have been better to have let the MCU stay in active mode and go to sleep only after the second task is completed. A good analogy here is stopping at a traffic light: whether it is beneficial to turn off the engine to save gas is dependent on how long the traffic stop actually is. For a short stop, the higher cost of starting the engine back up outweighs the wasted fuel of keeping the engine running.
8. ARM Cortex-M
ARM stands for Advanced RISC Machine, a family of Reduced Instruction Set Computing (RISC) processor architectures. ARM Holdings is a company that develops and licenses the ARM architecture to third parties. ARM Holdings does not itself produce, manufacture or sell physical chips. They develop and maintain the architecture and license it to third party companies for use in their products. The Intellectual Property (IP) is sold by ARM Holdings in the form of synthesizable RTL (in Verilog HDL). The manufacturer who purchases the IP has the freedom to customize various aspects of the design to fit their needs, such as optimizing for extremely low-power consumption.
ARM cores are found in a wide variety of devices ranging from mobile phones, tablets, cameras, game consoles and much more. ARM cores are used by many of the major chip manufacturers.
The ARM Cortex-M series refers to ARM Cortex processors meant for microcontroller applications (hence, the M). The Cortex-M series is a family of 32-bit architectures that share a core of the ARM instruction set. Cortex-M4 and M7 include DSP extensions with an optional Floating Point Unit extension. The Cortex-M series is optimized for low-power applications and is commonly found in many low-power MCUs. The "M" following the Cortex- stands for Microcontroller.
9. Ultra-low-power Benchmark (ULPBench)
The Embedded Microprocessor Benchmark Consortium (EEMBC) has a number of benchmarks applicable to microprocessors and microcontrollers. EEMBC is composed of many of the leading manufacturers and stakeholders in the field of integrated circuits, including AMD, Analog Devices, ARM, Dell, Intel, Nokia, and Texas Instruments. EEMBC has a number of industry standard benchmarks such as CoreMark, CoreMark-Pro, FPMark, and a series of Internet of Things (IoT) Benchmarks, viz. IoT-Connect, IoT-Secure, and IoT-Gateway. In the low-power MCU space, EEMBC has the Ultra low-power Benchmark (ULPBench).
ULPBench is composed of a set of tests measuring microcontroller efficiency. An optional Energy Monitor, which is a tool for accurately measuring the energy consumption of an MCU is also available. In order to be certified with ULPBench, an MCU has to be tested by EEMBC and both ULPBench and Energy Monitor must be used during this test process.
This page on the EEMBC website lists all ULPBench tested products (http://www.eembc.org/ulpbench/). Items with a tick mark on the EEMBC column indicate an EEMBC certified score, meaning that these products were rigorously tested by the EEMBC team. The ULPMark-CP is the measure of interest here. A higher number is better. As noted on the page the ULPMark-CP is calculated as:
If you check on "show all" at the top of that page you will see that several of the MCUs have a Cortex core, i.e. they use an ARM Cortex. The other major core architecture is TI's MSP430, which is the core used in all the TI MSP430 low-power MCU range. MSP432 carries a Cortex M4 core.
Low-power and ultra-low-power MCU datasheets typically list a range of current values, such as the current draw in inactive modes. Sleep modes are often reported as sleep mode, sleep mode with a Real Time Clock running, sleep mode with STATE. The current draw per MHz is often reported as well. This metric gives a good measure of the tradeoff between low-power consumption and performance.
The ULPBench, like any benchmark, provides a consistent mechanism of comparing different offerings, particularly if the same information is not reported in datasheets from different manufacturers. Your purchasing decision should be based on a combination of the ULPBench along with relevant information from the datasheet.
10. Case Study: TI MSP432
Let us now look at the Texas Instruments MSP432 as a specific example of an ultra-low-power MCU.
We will be using the MSP432P401R as a specific example, but much of what is discussed here applies to the MSP432P401M as well.
The main differences between the "R" and the "M" are in memory capacity. The "R" features 256 KB program memory and 64 KB RAM, while the "M" features half as much of each. The following table details the precise differences in the models of the MSP432P401R, MSP432P401M Mixed-Signal Microcontrollers.
Device | Flash (KB) | SRAM (KB) | ADC14 (Channels) | COMP_E0 (Channels) | COMP_E1 (Channels) | Timer_A(2) |
|
20-mA Drive I/O | Total I/Os | Package | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
MSP432P401RIPZ | 256 | 64 | 24 ext, 2 int | 8 | 8 | 5,5,5,5 | 4 | 4 | 4 | 84 | 100 PZ | ||||
MSP432P401MIPZ | 128 | 32 | 24 ext, 2 int | 8 | 8 | 5,5,5,5 | 4 | 4 | 4 | 84 | 100 PZ | ||||
MSP432P401RIZXH | 256 | 64 | 16 ext, 2 int | 6 | 8 | 5,5,5 | 3 | 4 | 4 | 64 | 80 ZXH | ||||
MSP432P401MIZXH | 128 | 32 | 16 ext, 2 int | 6 | 8 | 5,5,5 | 3 | 4 | 4 | 64 | 80 ZXH | ||||
MSP432P401RIRGC | 256 | 64 | 12 ext, 2 int | 2 | 4 | 5,5,5 | 3 | 3 | 4 | 48 | 64 RGC | ||||
MSP432P401MIRGC | 128 | 32 | 12 ext, 2 int | 2 | 4 | 5,5,5 | 3 | 3 | 4 | 48 | 64 RGC |
Device comparison of the MSP432P401R, MSP432P401M Mixed-Signal Microcontrollers(Source: MSP432P401R, MSP432P401M Datasheet)
- 10.1 Key Features and Specifications:
- Operating Voltage: 1.62-3.7 V
- Processor: 32-bit ARM Cortex-M4F CPU with Floating Point Unit (FPU) and Memory Protection Unit (MPU) plus DSP extensions. Thus, the MCU has integrated Signal Processing.
- Memory: 256KB/128KB (Flash); 64KB/32KB (RAM)
- Several low-power operating modes (more about this below)
- Max Frequency up to 48 MHz (Tunable internal DCO)
- Harvard architecture: Separate Instruction and Data paths for the CPU
- 4 16-bit Timers, 2 32-bit Timers
- Serial Communication: I2C and SPI, UART with Automatic Baud Rate Detection, IrDA (Infrared) Encode and Decode
- Encryption: AES Encryption/Decryption support (128, 192 or 256 bit)
- 128-bit flash buffer pre-fetch: Predictive 8 instruction pre-fetch.
- A built-in Analog Comparator
- 32-bit Hardware CRC Engine
- JTAG and Debug support
- Simultaneous Flash Read/Write (using a dual-bank flash)
- 10.2 System Design
The figure below shows the Functional Block Diagram of the MSP432.
The ARM Cortex-M4F is seen on the lower left. The CPU features an FPU that is an IEEE 754 compliant single precision module. An FPU effectively increases the range of applications that an MCU can be used for. The MPU on Cortex-M4F CPU supports up to 8 protection regions to allow for strong enforcement of isolation between individual processes. The CPU features a specialized 24-bit counter called SysTick which can be handy in a range of applications. The 32-bit CPU has a full 32-bit address space, meaning that it has the capacity to address up to 4GB. This is quite incredible given that not so long ago we had 32-bit CPUs and Operating Systems, the standard in PC grade machines, which similarly had a 4GB address space.
The block diagram clearly shows the Harvard bus architecture, with the separate Address and Data busses wrapping around the whole system. The block diagram also shows that there is an 8-Channel DMA controller, which allows the CPU to offload many memory transactions to improve overall performance.
- 10.3 Power Modes
There are 6 modes on the MSP432 (LPM stands for low-power Mode):
- Active Mode: Full functionality is available.
- LPM0- Sleep mode: CPU off; peripherals ON.
- LPM3- Deep sleep; Standby with RAM and RTC: Standby with RAM retention and Real Time Clock (RTC) active, some peripherals available.
- LPM4- Standby w RAM: No clocks, some peripherals available.
- LPM3.5- Shutdown w RTC: RTC without RAM (one SRAM bank can be retained).
- LPM4.5- Shutdown w/o RTC: System is effectively shutdown or OFF, but can be turned ON through a reset signal.
In addition, there are two low frequency modes which are similar to the same name mode above except that the frequency is now a maximum of 128 KHz: LF Active and LF LPM0.
The table below shows the power consumption for some of the above modes on the MSP432. The ULPBench score for the MSP432 is 192.3.
The operating voltage range on the MSP432 as has been noted before is 1.62-3.7V. The lower end allows for a 1.8V +/- 10% for many common applications. The supply range is extended on the higher end to account for higher voltage batteries such as Lithium ion.
MSP432 MCUs | Active | LPMO | Low Frequency LPMO | LPM3 | LPM3.5 (shut down w/ RTC) | LPM4.5 (shut down w/o RTC) |
---|---|---|---|---|---|---|
Current | 95 µA/MHz (DCDC); 166 µA/MHz (LDO) | 65 µA/MHz (DCDC); 100 µA/MHz (LDO) | 70 µA | 850 nA | less than 670 nA | less than 100 nA |
Low-power modes of the new MSP432 MCU platform (Source: Texas Instruments MSP432 microcontrollers: Bringing high performance to low-power applications)
- 10.4 Other Key Peripherals
- Digital I/O: Up to 10 8-bit ports, with glitch filtering on a subset of them. Any combination of input, output and interrupt conditions is allowed. Programmable pull-up or pull-down is allowed in all of the ports. Wakeup capability (for LPM low-power modes) is available on ports P1-P6. All the I/O ports are optimized for Capacitive Touch Sensing.
- Timer32: It contains two 32-bit timers which can be configured as two 16-bit timers respectively.
- eUSCI: Enhanced Universal Serial Communication Interface.
- ADC14: 14-bit Analog-to-Digital Converter (ADC). Up to 32 channels.
11. Other Examples of Low-power MCUs: TI MSP430
The Texas Instruments MSP430 family of ultra-low-power microcontrollers consist of several devices featuring different sets of peripherals targeted for various applications. The architecture, combined with five low-power modes is optimized to achieve extended battery life in portable measurement applications. The device features a powerful 16-bit RISC CPU, 16-bit registers, and constant generators that attribute to maximum code efficiency. The digitally controlled oscillator (DCO) allows wake-up from low-power modes to active mode down to less than 1 µs.
Typical applications include sensor systems that capture analog signals, convert them to digital values, and process and transmit the data to a host system. The timers make the configurations ideal for industrial control applications such as ripple counters, digital motor control, EE-meters, hand-held meters, etc. The hardware multiplier enhances the performance and offers a broad code and hardware-compatible family solution.
Texas Instruments MSP430F148IPMR is a MSP430F1xx Series, 8MHz, 16 Bit, Mixed Signal Microcontroller with a 48KB program memory and 2KB of RAM in 64-pin LQFP package. | Texas Instruments MSP430F5528IRGCR is a MSP430F5xx Series ultra-low-power microcontroller featuring a 16-bit RISC CPU running at 25MHz 128KB program memory and 10KB RAM in a 64-pin VQFN package | ||
Texas Instruments MSP430FR5735IDAR is a MSP430FR573x Series 24Mhz 16 bit ultra-low-power mixed signal microcontroller featuring embedded FRAM nonvolatile memory and 8KB of program memory 1KB RAM in a 38-pin TSSOP package | Texas Instruments MSP430F449IPZR is a MSP430F4xx Series ultra-low-power microcontroller, featuring a 16-bit RISC MSP430 CPU running at 8MHz, 60KB program memory and 2KB RAM in a 100-pin LQFP package. | ||
Texas Instruments MSP430F6638IPZR is a MSP430F6xx Series ultra-low-power microcontroller featuring a 16-bit RISC CPU running at 20MHz 256KB program memory and 16KB RAM in a 100-pin LQFP package |
*Trademark. Texas Instruments, and TI are trademarks of Texas Instruments, Inc. Other logos, product and/or company names may be trademarks of their respective owners.
Test Your Knowledge
Microcontroller Skills 1
Are you ready to demonstrate your low-power microcontrollers knowledge? Then take a quick 15-question multiple choice quiz to see how much you've learned from this Essentials MCUs 1 module.
To earn the MCUs 1 badge, read through the module to learn all about low-power microcontrollers, attain 100% in the quiz, and leave us some feedback in the comments section.
Top Comments