Power Manager Power Optimization Strategies#
Use Appropriate Energy Modes#
Maximize Time in Deep Sleep (EM2/EM3): The most effective power optimization strategy is to minimize the time spent outside of deep sleep modes. Even using faster, higher-power fast clocks in EM0/EM1 for brief periods is often more efficient than using lower-power slow clocks for extended periods. Using slower, lower-power clocks is still valuable for peripherals not on the critical path of execution.
Minimize Requirement Duration: It might be tempting to maintain broad coverage of operations between the time a requirement is added and the time it is removed. Although this approach simplifies implementation, it’s not efficient. To improve power consumption, keep the periods when a requirement is active as short and specific as possible. For a simple example of efficient requirement management, refer to Scenario 1: Asynchronous Sensor Reading.
Use EM4 When Applicable: For applications with long idle periods (minutes to hours), EM4 provides ultra-low power consumption at the cost of system reset on wake-up. Consider EM4 for:
Battery-powered devices with infrequent activity (sensor nodes, remote monitoring)
Applications that can tolerate wake-up latency and state restoration overhead
Systems where the power savings outweigh the complexity of BURAM data management
Long sleep periods where EM4's reset overhead becomes negligible compared to power savings. Refer to Scenario 2: Ultra-Low Power EM4 Sleep for a complete implementation example.
Fine-Tune Clock Restore Timing#
Restore Time Overhead Optimization: Restoring clock sources can be time-consuming. Because this restore time can vary depending on many factors (external crystal type, ambient temperature, supply voltage, crystal aging, etc.), Power Manager implements a mechanism to measure the time required to restore certain high-frequency clock sources. The HFXO startup time measurement continuously adjusts to environmental conditions. This restore time is used during deep sleep to trigger clock source restoration in advance of upcoming synchronous events.
Critical Timing Balance: To maintain real-time responsiveness, it's vital to have a restore time that is not too short, as that would cause clock sources not to be ready on time. For that reason, Power Manager always adds a safety margin to the restore time it measures. However, since the system consumes more power when these clock sources are restored, the shorter this restore time is, the better the energy consumption will be.
Series 2 Device Considerations: Due to hardware limitations on Series 2 devices supporting EM1P energy mode, Power Manager is not always able to measure the high-frequency clock restore time. Because the default restore time includes a large margin, the restore time may be longer than needed. Therefore, if higher power consumption than expected is observed, use sl_power_manager_schedule_wakeup_set_restore_overhead_tick() to reduce the restore time by passing a negative overhead.
Refer to Schedule Wake-up Tuning for a usage example.
Hardware and Peripheral Optimization#
Disable Unused Peripherals and Clocks: Configure peripheral power domains so that only necessary peripherals remain powered in low energy modes. Power domains for unused peripherals can be turned off in EM2/EM3, significantly reducing deep sleep power consumption.
Use the DC-DC Converter: Enable the integrated DC-DC buck converter for higher efficiency, especially at higher load currents. The DC-DC converter provides significantly better power efficiency compared to the linear regulator, particularly when supply voltage is high or load current is substantial.
Disable External Components: Power down external components during sleep modes to minimize system power consumption. External SPI Flash memories, sensors, and other peripherals often have their own power control pins or sleep commands.
Reduce RAM Retention: Configure RAM retention settings to power down unused memory blocks during deep sleep modes. Use sl_hal_emu_ram_power_down() to disable retention for unused RAM blocks and significantly reduce EM2/EM3 power consumption. Refer to the Memory Manager Documentation to learn how to properly use the heap to optimize power.
Production Build Configuration#
Disable Debug Features: Debug features consume additional power and should be disabled in production builds for optimal power consumption.
Production Configuration: Set SL_POWER_MANAGER_DEBUG to 0 to disable requirement tracking and SL_POWER_MANAGER_INIT_EMU_EM2_DEBUG_ENABLE to 0 to disable EM2 debug connectivity.
Use Correct Power Manager Component: Ensure the "Power Manager: Deepsleep" component is used in production builds. The "Power Manager: No Deepsleep" component prevents EM2/EM3 entry and significantly increases power consumption. It should only be used during development and debugging or for SIXG301, which doesn't have EM2/EM3.
Optimize Code: Efficient code takes less time to execute, which allows faster re-entry in deeper energy modes. Different compiler options can yield more optimized code.