打印

技术分享 | 乐鑫light-sleep保持低功耗连接

[复制链接]
714|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ESP32 是设计用来应对移动设备、可穿戴电子设备和物联网(IoT)芯片,作为一款超低功耗芯片,具有许多特定,比如精细的时钟门控、节能模式和动态电压调整等。
在使用超低功耗的IoT传感器Hub应用时,ESP32只有在某些特定情况下才会被周期性唤醒,能够极大地降低消耗。通过调整射频放大器的输出功率,还能实现通信距离、数据传输速度和功耗的最佳平衡。

ESP32先进的电源管理技术,可以在不同的功耗模式之间切换,乐鑫目前的ESP系列芯片都支持三种低功耗模式:
  • Modem-sleep 模式:CPU 可运行,时钟频率可配置。Wi-Fi 及 Bluetooth LE 的基带和射频关闭, 但 Wi-Fi 或 Bluetooth LE 可保持连接。
  • Light-sleep 模式:CPU 暂停运行。任何唤醒事件(MAC、主机、RTC 定时器或外部中断)都会唤 醒芯片。Wi-Fi 或 Bluetooth LE 可保持连接。
  • Deep-sleep 模式:CPU 和大部分外设都会掉电,只有 RTC 存储器处于工作状态。Wi-Fi 连接数据 存储在 RTC 中。RTC 时钟定时器或RTC GPIO 可以将芯片从 Deep-sleep 模式中唤醒。


*不同模式下ESP32功能框图

其中在 Modem-sleep 模式和 Light-sleep 模式下WiFi、蓝牙可以保持连接(详细功耗数据可以参考规格书)以ESP32为例,功耗可以参考下表



Light-sleep模式下保持连接

硬件准备:ESP32/ESP32C3/ESP32S3系列模组既支持外置 32.768 kHz 的时钟振荡器作为 RTC 睡眠时钟,也支持外 部激励信号(如有源晶振)作为 RTC 睡眠时钟。外置 32.768 kHz 晶振的电路如下图所示:
32.768 kHz 晶振选择要求:
  • 等效内阻 (ESR) ⩽ 70 KΩ。
  • 两端负载电容值根据晶振的规格要求进行配置。
  • 并联电阻 R18 用于偏置晶振电路,电阻值要求 5 MΩ < R18 ⩽ 10 MΩ。
  • ESP32-D0WD-V3 外接 32.768 kHz 晶振时,并联的电阻必须上件;ESP32 系列其他芯片建议预留。

软件配置:

编译时可使用 CONFIG_PM_ENABLE 选项启用电源管理功能。

启用电源管理功能将会增加中断延迟。额外延迟与多个因素有关,例如:CPU频率、单/双核模式、是否需要进行频率切换等。CPU 频率为 240 MHz 且未启用频率调节时,最小额外延迟为0.2 us;如果启用频率调节,且在中断入口将频率由40 MHz 调节至 80 MHz,则最大额外延迟为 40 us。

通过调用 esp_pm_configure()函数可以在应用程序中启用动态调频(DFS) 功能和自动Light-sleep 模式。此函数的参数 esp_pm_config_t 定义了频率调节的相关设置。在此参数结构中,需要初始化以下三个字段:
  • Max_freq_mhz:最大CPU 频率 (MHz),即获取 ESP_PM_CPU_FREQ_MAX 锁后所使用的频率。该字段通常设置为 CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ。
  • Min_freq_mhz:最小CPU 频率 (MHz),即仅获取 ESP_PM_APB_FREQ_MAX 锁后所使用的频率。该字段可设置为晶振 (XTAL) 频率值,或者 XTAL 频率值除以整数。注意,10 MHz 是生成 1 MHz 的 REF_TICK 默认时钟所需的最小频率。
  • Light_sleep_enable:没有获取任何管理锁时,决定系统是否需要自动进入Light-sleep 状态 (true/false)。

如果在menuconfig中启用了CONFIG_PM_DFS_INIT_AUTO选项,最大 CPU 频率将由CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ设置决定,最小 CPU 频率将锁定为 XTAL 频率。

需要注意的是:
自动 Light-sleep 模式基于FreeRTOS Tickless Idle功能,因此如果在menuconfig 4中没有启用CONFIG_FREERTOS_USE_TICKLESS_IDLE选项,在请求自动 Light-sleep 时,esp_pm_configure() 将会返回 ESP_ERR_NOT_SUPPORTED错误。Light-sleep 状态下,外设设有时钟门控,不会产生来自GPIO 和内部外设的中断。睡眠模式 文档中所提到的唤醒源可用于从 Light-sleep 状态触发唤醒。

Menuconfig配置




蓝牙还需要配置 Modem-sleep 相关配置
具体可以参考ESP-IDF下的 power_save 例程

6.png (61.62 KB )

6.png

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝