Minimizing IoT Sensor Node Power Consumption
投稿人:DigiKey 北美编辑
2017-02-08
As there are billions of IoT sensor nodes yet to be deployed, a critical issue facing many sensor node developers is power. Running a powerline to these sensors is either impractical due to their location, and even if doable, time consuming and expensive.
Also, servicing and changing batteries could dramatically decrease the business case. Product designers need to either extend battery life indefinitely, or find alternative means to power their devices.
This article will show how to analyze a product’s power consumption and optimize its hardware and software, and then discuss how to augment batteries with the latest energy harvesting technologies.
The energy profile
The key feature that designers need to examine and optimize is the energy profile for their product. The energy profile consists of:
- Dynamic energy consumption: The energy consumed when the device is awake and operating
- Static energy consumption: The energy consumed while the device is sleeping and not performing any work.
Designers have at least three options available that can be used to extend their battery life and minimize system maintenance:
- Hardware energy optimization
- Software energy optimization
- Energy harvesting
Optimizing hardware: Microcontrollers
For many designers, energy optimization will start with the hardware. Selecting the right active and passive components for a product will go a long way towards reducing the sensor node’s energy profile. The main energy consumers in a typical wireless sensor node include:
- Microcontrollers
- Wireless interface
- Sensors and miscellaneous integrated circuits
- Voltage regulators
- Memory storage devices
For a sensor node, the primary energy consumer is going to be the microcontroller and therefore it becomes a critical component in the early stages of design.
Microcontrollers come in many different shapes, sizes and architectures, but for an IoT connected device, starting with a 32-bit ARM microcontroller is a good bet. These microcontrollers are well supported by multiple manufacturers, and it is relatively easy to develop robust and portable software on them. They are also comparable in cost to many 8-bit or 16-bit parts and they have a vigorous ecosystem and community.
While ARM microcontrollers are energy efficient in general, designers will want to focus in on the Cortex-M0+ family as it is designed to minimize energy consumption. In fact, in their deepest sleep modes, most Cortex-M0+ parts will consume well under 1 µA.
Sleep currents are important, especially in low duty-cycle applications, but devices should also be selected for low power when in operation. A great example is the NXP KL02 microcontroller and the Kinetis-L family as a whole. The NXP KL02 is a low pin count part with 14 available I/Os. This is perfect for a dedicated sensor node that needs to sample a few sensors and communicate with a radio. The NXP KL02 has 4 kB of available RAM and 32 kB of programming space.
Sensor nodes that require more I/O and more RAM for storing data or even to run a lightweight, real-time operating system (RTOS), should consider STMicroelectronics’ STM32L031K6T7. The STM32L031K6T7 has 25 available I/O lines with 8 kB of RAM and 32 kB of flash.
When selecting a low-power microcontroller, here are some suggestions and criteria to consider:
- Minimize the number of I/O pins
- Minimize the number of internal peripherals
- Select Cortex-M0+ family or equivalent components
- Verify that a low-power timer is included on the parts
- Make sure that a DMA controller is included
Optimizing hardware: Memory and passives
When it comes to selecting hardware components, the microcontroller is not the only part that can be an energy hog. Extended battery life is often achieved by looking at all the little energy consumers that when added up, become considerable.
Take for example a design that uses an EEPROM device, such as Microchip Technology’s 25LC160A. The 25LC160A’s read current is specified in the datasheet to be 6 mA (5.5 V @ 10 MHz), with a write current of 3 mA and write time of 5 ms. For even lower read currents, newer FRAM chips go as low as 200 μA (1 MHz). Saving almost 3 mA on accesses to external memory may not seem like a lot, but if data is being written and read periodically over the course of years, savings add up. The write time to FRAM is also equal to the SPI bus transfer time.
Besides the active components, designers should examine passive components that can have leakage currents. These often include diodes, capacitors and resistors. Designers selecting passive components should remember that:
- Aluminum capacitors should be avoided due to their high leakage current values
- Leakage current can be decreased by increasing the voltage rating on the capacitor
- Minimize bulk capacitance on the voltage regulator outputs
- Minimize the number of capacitors since each capacitor will have leakage they can add up quickly.
- Select the largest value pull-up resistors to minimize their leakage current
- Avoid voltage divider circuits
- Minimize switching frequencies in regulators
Optimizing software for low energy consumption
Minimizing the energy consumed by the electronics is a great step towards optimizing a sensor node. However, the software written for the sensor node also needs to be made efficient by taking into consideration the electrical constraints of the components in the system. Developers have many techniques that they can take advantage of in order to minimize the system wake time and keep the system in low-power modes as long as possible. These include:
- Using low-power timers for wake-up
- Writing the software to be event driven
- Using the lowest power energy modes
- Utilizing the DMA controller
- Autonomous peripherals
Developers using these techniques can have efficient software but still need to determine which software routines are using the most energy. Using a power monitor, such as the IAR I-Jet I-Scope can help developers correlate functions and lines of code to energy consumption in the system. When used in conjunction with the IAR I-Jet in-circuit debugging probe for ARM, the I-Scope can measure voltage and current points around the system at the same time that the debugger is sampling the program counter.
The program counter tells the debug environment what line of code is executing in any given function, and then the debug environment correlates that line to the energy consumption in the system. The developer is then pointed to areas within the software that are using the most energy so they can focus their optimization efforts.
Figure 1: To see how software affects energy consumption, connect the IAR I-Scope (shown) to the IAR I-Jet debugger to sample the program counter and system voltages and currents. (Source: IAR)
Once a software component has been identified as having high energy consumption, the developer has many options available to them in order to optimize the code, including:
- Increase the optimization level in the function
- Optimize for speed rather than code size
- Re-write the code area
Augmenting battery storage with energy reclamation
Sensor nodes in many cases will be exposed to ambient energy in the form of light, temperature differentials, pressure, and motion. Designers can take advantage of these nearby energy sources to augment their batteries and top off their charge. For example, the STMicroelectronics SPV1040 solar-powered battery charger can capture light to either power the circuit directly or charge a battery.
The SPV1040 can convert input voltages as low as 0.3 V all the way up to 5.5 V into usable energy. The SPV1040 can be configured for a maximum charge current of up to 1.8 amps, and includes reverse-polarity protection in case the solar cell is installed improperly.
STMicroelectronics’ STEVAL-ISV006V2 eval kit allows designers to test the SPV1040 using a supplied solar panel with a peak power output of 200 mW (Figure 2). The SPV1040 can handle peak power of 5 W, so a designer can swap out the included panel for one that can supply far more current. The kit includes a built-in super capacitor that can be used to power a device without a battery. Designers can also easily swap out the super capacitor for a rechargeable battery.
Figure 2: STMicroelectronics’ STEVAL-ISV006V2 eval kit for the SPV1040 solar-powered battery charger comes with a 500 mW solar panel that can be swapped out as needed for one with more power. (Source: STMicroelectronics)
The ultimate low-power sensor node application will not even have a battery included, but instead will use energy harvesting technologies to power the device.
The SPV1040 can be used for applications that get plenty of light, but if the application has a source of kinetic energy such as vibration, designers might want to start development using Linear Technology’s DC1459B-A piezo energy harvesting kit (Figure 3). This is based on the company’s LTC3588-1 line of power-supply ICs. The LTC3588-1 allows designers to configure the output voltage to 1.8, 2.5, 3.3 or 3.6 V, which is perfect for designers looking to lower their system operating voltage.
Figure 3: Linear Technology’s DC1459B-A piezo energy-harvesting development kit for the LTC3588-1 line of power-supply ICs provides developers with a test platform for the design of systems that have access to kinetic energy such as vibration or motion. (Source: Linear Technology)
Conclusion
Optimizing an Internet connected sensor node for battery life is not a trivial endeavor. The optimization starts with selecting the right hardware components, followed by efficient code that optimally controls the system’s overall energy usage to extend battery life.
While batteries are used almost by default, they have their own issues in terms of shelf life and energy losses over time. Under the right circumstances, the optimal solution for a sensor node is to be powered with harvested ambient energy. The sensor can then provide IoT data with little or no maintenance.
![](http://www.digikey.cn/-/media/Images/Article%20Library/Contributors/pub-logo/Digikey_logo.png?la=zh-CN-rmb&ts=5c2b21df-90d2-4b9f-81f1-b9413de6ccd0)
免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。