启明云端经验分享 | 乐鑫Light-sleep保持低功耗连接

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 模式中唤醒。

01

02

03

 

04

不同模式下的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 例程

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值