电源管理
电源管理
概述
ESP-IDF 中包含的电源管理算法可以根据应用组件的要求调整 APB 频率,CPU 频率,并使芯片进入 light sleep 模式,以尽可能低的功耗运行应用程序。
应用程序组件可以通过创建和获取电源管理锁来表达其要求。
例如,由 APB 提供时钟的外围设备的驱动器可以在使用外围设备的时间内请求将 APB 频率设置为80MHz。另一个例子是,当有任务准备好运行时,RTOS 将请求 CPU 以最高配置频率运行。又一个例子是需要启用中断的外围驱动器。这样的驱动程序可以请求禁用 light sleep。
当然,要求更高的 APB 或 CPU 频率或禁用 light sleep 会导致更高的电流消耗。组件应尽可能在最短的时间内限制电源管理锁的使用。
配置
可以使用 CONFIG_PM_ENABLE
选项在编译时启用电源管理。
启用电源管理功能的代价是增加了中断延迟。额外延迟取决于许多因素,其中包括 CPU 频率,单/双核模式,是否需要执行频率切换。最小额外延迟为 0.2us(当 CPU 频率为 240MHz,并且未启用频率调整时),最大额外延迟为 40us(启用频率调整时,在中断输入时执行从 40MHz 到 80MHz 的切换)。
通过调用 esp_pm_configure()
函数,可以在应用程序中启用动态频率调整(DFS)和自动光睡眠。它的参数是定义频率缩放设置的结构,esp_pm_config_esp32_t
。在此结构中,需要初始化 3 个字段: