Editor’s note: This three-part series looks at building more-effective smart devices. Part 1 (here) discusses low-power design techniques for balancing power and performance. Part 2 addresses meeting the challenges of user transparent security. Part 3 reviews the MCU specifications required to meet the design objectives.
Wireless IoT and wearable electronic products rely on low-power designs able to deliver extended battery life. Yet, tight power budgets bump up against the demand for more functionality that can force developers to turn to large batteries and recharging requirements that can be cumbersome to users. Solutions that provide a more thoughtful approach to both processing and power management are required.
These solutions must help designers meet increasingly demanding user expectations. For example, users expect that a smart product will be as reliable and dependable as its conventional version. Few users will expect that their smart lock will run out of power and leave the door unlocked. They also expect that the appearance of the smart product will be similar to their predecessors. For example, users are likely to turn away from a smart watch that is significantly larger or bulkier than existing wrist wearables.
Importantly, users expect that their smart device will return a level of value that warrants its purchase, installation, and use. Ultimately, users expect that a smart product would provide a sort of invisible intelligence that delivers some valuable service to the user, while maintaining the same sort of interaction and appearance found in the conventional product it replaces.
All of these expectations put pressure on product functionality, form factor, and power consumption. Due to the functionality requirements, it’s often the case that the worst power budget offender is the MCU and supporting power management features.
However, using advanced MCUs and PMICs, developers can meet more demanding requirements for power and performance without compromising design size and usability.
For engineers, creating smart designs with invisible intelligence highlights a conflict between power requirements and power availability. To deliver competitive products, engineers find themselves building more feature-rich embedded systems, integrating more sensors, and executing more complex algorithms. At the same time, these systems need to rely on battery power while maintaining the smallest possible footprint. Available coin cell batteries typically used in IoT devices and wearables feature capacities limited to tens or a few hundred milliamp-hours without physically overwhelming the IoT device or wearable itself. Even so, users expect days-long performance between charges in a design consistent with conventional alternatives.
Meeting these diverse requirements dictates use of devices that minimize power consumption without compromising functional capabilities. In fact, the power/performance characteristics of smart product designs closely reflect the capabilities of the MCUs at the heart of these designs. Yet, the suitability of a particular MCU can rarely be measured by a few datasheet specifications. Although the industry has for years focused on current consumption, an MCU's current specification presented as μA/MHz can reveal only part of the story. Its actual power consumption is the most telling parameter, so the combination of low μA/MHz and supply voltage become the critical measures for real-world applications.
Ultimately, even the closest examination of MCU specifications must yield to the specific demands of each application. For example, an application that requires only intermittent updates of sensor measurements reduces MCU duty cycle, so active power might not even be the most important specification. Rather than running continuously in full active mode, the reduced duty cycle means that the MCU can spend more time in lower power sleep states. Consequently, sleep-state power consumption, wakeup time, and SRAM power retention rise as critical parameters. MCU features such as large memory arrays and multiple peripherals integrated in these MCUs factor in as well.
Besides supporting increasingly large software bases, larger integrated memory actually helps reduce power consumption and performance delays associated with off-chip access to external devices. At the same time, developers can take advantage of the MCU's power management features and data retention capabilities to optimize power and retain state while the processor core itself is asleep.
Power management features in advanced MCUs provide a significant advantage in reducing power for peripheral options. Sophisticated power managers built into these MCUs can selectively enable or disable peripherals, and even allow continued peripheral operations in MCUs able to "sleepwalk." Here, operations involving the peripherals can proceed even while the MCU is in a power conserving sleep state.
In the past, developers have often found themselves forced into a tradeoff between the various factors that contribute to power consumption and functionality. In contrast, the Maxim Integrated Darwin MCU family provides the capabilities needed to meet growing challenges for wearables and other low-power designs.
Balancing power and performance
Designed specifically to meet IoT design requirements, the Darwin MCU family comprises a range of devices including the Maxim MAX32620, MAX32625, and MAX32630. Built around an Arm® Cortex®-M4 with floating-point unit, Darwin MCUs share a hardware foundation that combines diverse peripherals, clocks, real-time clocks (RTC), watchdog timers, and much more.
Among their differences, Darwin MCUs offer different options for on-chip flash and SRAM. The MAX32620 and MAX32630 integrate 2 Mbytes of flash, while the MAX32625 offers 512 Kbytes flash. Developers can also find a range of supported on-chip SRAM with 512 Kbytes in the MAX32630, 256 Kbytes in the MAX32620, and 160 Kbytes in the MAX32625.
The devices also share the ability to draw minimal current in full active mode: 102 microamps (µA)/MHz (MAX32620), 106 µA/MHz (MAX32625), and 106 µA/MHz (MAX32630). As noted earlier, power is the critical specification, so these devices have low voltage operation of 1.2 volts for the core, and 1.8 to 3.3 volts for I/O. As a result, power consumption remains very low in full active mode. Low voltage operation is supported by a number of mechanisms that allow developers to optimize for lower power consumption in their applications.
The ability to minimize power consumption is of course critical to long-term operation of battery-powered devices. For most applications, this means minimizing duty cycle without sacrificing response time. For the developer, these conflicting requirements find a solution in the Darwin MCU low-power modes.
The MCU's lowest power state, LP0, puts the device in a static state that disables all device circuitry except for the circuits associated with the power sequencer, power-on reset, voltage supply monitor, RTC if enabled, and data retention registers. LP1 delivers a very low power standby mode that keeps the CPU in a sleep mode while maintaining power to SRAM and registers. In both LP0 and LP1, the CPU core itself rests in a static state until an interrupt causes it to power up.
The third power mode, LP2, keeps the core in a sleep state but, as described below, provides an important mechanism to operate MCU peripherals. Finally, LP3 is the normal run state where the processor and peripherals are powered and operating at the selected clock rate.
Compared to LP3, LP2 can provide substantial power savings (Figure 1). By reducing the clock from the nominal 96 MHz rate to 4 MHz, designers can achieve even greater savings (see Figure 1, right). Best of all, this reduction in power can occur without loss of key peripheral functions as described in detail below.
Figure 1: The Darwin MCU power ecosystem allows developers to reduce power significantly when moving from the fully active LP3 mode to LP2 mode, with even further savings to be had by reducing the clock rate from its nominal 96 MHz (left) to 4 MHz (right). (Image source: Maxim Integrated)
Internally, the different power modes of Darwin MCUs rely on a complex set of functional elements. For example, during LP0 and LP1, the power sequencer effectively controls the MCU. At the same time, interrupts from on-chip timers, device peripherals, GPIO pins, or even the device's built-in supply voltage monitors can trigger system restart (or device reset in the event of supply voltage failures). Despite this underlying complexity, however, the developer sees a simple power mode operating model.
In a typical application, developers can programmatically place the MCU into a lower power mode until an RTC timeout or interrupt occurs (Figure 2).
Figure 2: LP2’s peripheral management unit (PMU) saves power by letting the MCU sleep while it moves data between peripherals and memory, among other functions. (Image source: Maxim Integrated)
Although developers can use LP0 and LP1 modes to achieve the lowest power states, LP2 offers great flexibility in supporting peripheral functionality while the CPU core remains in sleep mode. The key to this capability lies in the device's peripheral management unit (PMU).
The Darwin MCU PMU is an intelligent control subsystem in its own right. This direct memory access (DMA)-based unit provides round-robin scheduling across six independent channels, permitting multiple peripheral operations independent of the CPU. Using its DMA capabilities, the PMU can move data between peripherals and memory, and even synchronize pulse train signals, analog measurements, and other events. In LP2, also called PMU mode, the PMU effectively controls the device using its state machine to support peripheral operations while the core remains asleep.
By setting the appropriate registers, developers can achieve even finer control of the balance between functionality and power consumption. In fact, developers can exercise the same control over peripheral operation in LP3. While the PMU enables low-power operations when used in LP2, its use in LP3 reduces processor load by enabling peripherals to handle operations that would otherwise add to the processor's burden. In both cases, developers can programmatically enable or disable individual blocks on the device (Figure 3).
Figure 3: The PMU can be used to enable or disable individual blocks on the device to save power while in operation. (Image source: Maxim Integrated)
Developers can program block activation using three 32-bit registers, CLKMAN_CLK_GATE_CTRLn (n=0, 1, 2), that provide fine-grain control over individual functional blocks, and thus, over overall power consumption. In fact, developers can elect to implement this control themselves, or rely on the MCU's dynamic clock gating circuitry to enable or disable the peripheral automatically.
For example, the Darwin MCU architecture dedicates an SPI master specifically to serve as the interface between external flash and the CPU during execute in place (XIP) operations. Whenever SPI XIP (SPIX) operations are inactive, the MCU’s dynamic clock gating mechanism automatically disables the SPIX peripheral. Developers can use bits 21:20 in the CLKMAN_CLK_GATE_CTRL0 register to control this behavior, setting bit 21 to “1” to force the SPIX clock to remain active at all times, setting bit 20 to “1” to enable dynamic clock gating, or setting both to “0” to forcibly disable the SPIX clock entirely.
For a module such as the on-chip analog-to-digital converter (ADC), developers can also explicitly control power to the peripheral. For example, to use the ADC, developers first enable clock gating to the ADC by setting bit 12 in CLKMAN_CLK_GATE_CTRL2 to “1”, set bits to enable the interface, and then power on the ADC by setting bit 1 in the ADC_CTRL register. This ability to operate the ADC independently is particularly effective in LP2 (PMU mode). Because the processor core is in sleep mode in LP2, the noise floor is at its lowest level, enabling developers to perform sensitive analog signal acquisition.
Another ADC feature enables developers to reduce the CPU duty cycle to a minimum. Developers can programmatically set upper and lower limits for ADC samples, generating interrupts that wake the CPU only when samples fall out of the desired window values. Rather than periodically waking the CPU to poll sensors for significant changes in measured samples, developers can use this feature to keep the CPU in power saving sleep mode until significant changes occur in sampled sensor data.
For data acquisition, the ADC supports four external analog inputs multiplexed to its internal 10-bit sigma-delta converter. For two of the input channels, a voltage divider allows developers to scale down the input signal by a factor of five.
Nevertheless, developers often need external signal conditioning to amplify or simply buffer the analog signal. In this case, designers can maintain low-power operation by drawing on members of Maxim Integrated's nanoPower family of low-power analog devices. For example, the Maxim MAX40007 nanoPower op amp consumes only 700 nanoamps (nA) (TYP) while featuring a 110 dB large signal voltage gain (3 volts VDD). The op amp is capable of driving capacitive loads up to 20 picofarads (pF). For comparison, the Darwin ADC’s capacitance to ground is only 1 pF, and its dynamic switched capacitance is 250 nanofarads (nF).
NanoPower devices such as the MAX40007 are particularly effective in designs based on Darwin MCUs. Developers can supply them with the same 1.8 volt or 3.3 volt supply rails used to power the MCU. In the past, however, supporting those multiple supply rails hampered their ability to meet requirements for low power consumption and minimal design footprint. With the availability of multi-output PMICs, designers can easily support multi-rail devices without compromising overall requirements.
For battery-powered designs, conventional techniques for delivering supply voltages can be inadequate. For example, linear regulators often used to provide different voltage rails waste a significant amount of power in converting a single cell lithium-ion battery's nominal 3.6 volt output to the lower levels required for current low-voltage MCUs. The need to support multiple separate supply levels only exacerbates the impact on power consumption, parts count, and complexity. In contrast, Maxim Integrated’s MAX77650 provides a complete power management solution for multi-rail, battery-powered designs.
The MAX77650’s power management architecture combines a single inductor, multiple output (SIMO) buck-boost regulator with a low dropout (LDO) regulator (Figure 4). Maxim Integrated has options to extend this architecture with multiple GPIOs, as well as a current sink driver that is programmable from 250 to 425 milliamps (mA) to support devices such as infrared LEDs used in specialized portable designs.
Figure 4: The single inductor multiple output (SIMO) buck-boost regulator used in the MAX77650 requires only a single inductor, gating output to individual output pins (top), and ramping up inductor charge for the next output in sequence (bottom). (Image source: Maxim Integrated)
At the heart of this PMIC architecture, the SIMO regulator implements a gating mechanism that requires only one external inductor to deliver the multiple supply rails needed by the Darwin MCUs and other devices. In a SIMO regulator, control circuitry discharges the single inductor through the separately gated outputs (Figure 4, top). In operation, the SIMO regulator ramps up charge on the inductor in sequence for each output (Figure 4, bottom), enabling programmable control of each output.
Estimating battery charge
The final piece of the design puzzle for building invisible intelligence into battery-powered products concerns the battery itself. In these designs, accurate estimates of remaining battery capacity are critical for avoiding unexpected power down that can directly lead to user disappointment with the entire product despite its other advantages.
Although PMICs such as the MAX77650 take care of the charging process, smart products need reliable estimates to notify their users when the battery needs recharging or replacement. Conventional fuel gauge devices have long served this role, but their low accuracy and high power consumption often failed to meet expectations.
More advanced fuel gauge ICs such as the Maxim Integrated MAX17048 and MAX17055, provide developers with great flexibility in meeting design targets for power and complexity without compromising accurate prediction of battery state of charge (SOC).
In the past, the predominant methods for measuring SOC relied on open-circuit voltage (OCV) measurement or coulomb counting. Used separately, each method brings its own substantial tradeoffs. OCV measurements are significantly affected by battery current; coulomb counting offers good accuracy in the short term but its accuracy degrades over time. Each approach also presents different compromises at the design level. OCV measurements require some amount of battery characterization to build compensation tables; coulomb counting requires an additional resistor to measure current flow to and from the battery.
Maxim's fuel gauge ICs improve on both of these approaches. The MAX17048 implements Maxim's ModelGauge algorithm, which extends OCV techniques with estimation methods. As with other methods based on OCV, the MAX17048 eliminates the need for an additional current sense resistor. Although the device includes preloaded battery models, developers may need to perform battery characterization for optimal accuracy. Nevertheless, the device is particularly well suited to designs with very tight power budgets. During normal operation, the device consumes only 3 μA in a low-power "hibernate" mode. In this mode, the device continues to provide accurate SOC estimation, but slows the update rate to every 45 seconds (s) compared to every 250 milliseconds (ms) in active mode.
As with any OCV-based method, estimation of SOC remains subject to load transients and other factors. With the MAX17055, Maxim Integrated offers its ModelGauge m5 algorithm, which uses OCV methods to correct the long-term drift in coulomb counting (Figure 5).
Figure 5: Advanced fuel gauge ICs such as the Maxim MAX17055 combine both open-circuit voltage (OCV) and coulomb counting methods to deliver very accurate results across the full lifecycle of the battery. (Image source: Maxim Integrated)
The MAX17055 uses this method to provide a very accurate fuel gauge with an external Rsense resistor and a few capacitors (Figure 6). As with the MAX17048, this device provides a hibernate mode that reduces power consumption to 7 μA without loss of function. In this case, hibernate mode performs updates every 5.625 s instead of every 175.8 ms in fully active mode.
Figure 6: Developers can implement a very accurate battery fuel gauge feature using the Maxim MAX17055, an external sense resistor, and a few capacitors. (Image source: Maxim Integrated)
Another ModelGauge m5 fuel gauge option integrates the Rsense resistor with little impact on footprint – 2.132 mm2 compared to 2.115 mm2 for the MAX17055 in a similar 9-pin wafer level package (WLP). The Rsense integrated option brings current consumption in the hibernate operating mode down to only 5.2 μA while providing the same 5.6 s update rate.
Despite the need for an external Rsense component, using the MAX17055 fuel gauge IC in combination with the MAX77650 PMIC and its single inductor provides a space-efficient design (Figure 7). Maxim Integrated uses this combination as the power subsystem design in its MAX32620-based MAX32620FTHR development board.
Figure 7: Used in combination, the Maxim MAX77650 PMIC and MAX17055 fuel gauge IC provide a sophisticated power subsystem in a simple design that needs only the PMIC's single inductor (L1), a fuel gauge Rsense resistor (R14), a Murata Electronics NCP15XH103F03RC NTC thermistor, resistors, and capacitors. (Image source: Maxim Integrated)
Along with the MCU, PMIC, and fuel gauge devices, the board needs only the PMIC's single inductor (L1), a fuel gauge Rsense resistor (R14), a Murata Electronics NCP15XH103F03RC NTC thermistor, resistors, and capacitors. It provides two 12-pin socket connectors, two RGB LEDs, and two pushbuttons in a footprint that measures only 0.9 inches x 2.0 inches. Developers can power the board through its micro USB connector, or attaching a battery through its 2 mm connector.
To meet user expectations for smart products, battery-powered devices need to closely match more conventional products in appearance and usability. For designers, meeting these constraints means minimizing power consumption and design footprint without sacrificing the performance needed to create more intelligent products.
Using Maxim Integrated Darwin MCUs, SIMO PMICs, and advanced fuel gauge ICs, developers can meet these often conflicting requirements with designs that deliver sophisticated capabilities in a form and function familiar to users.