0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

技术分享 | 这么“省”是不是有点过头了?

启明云端 2023-03-15 14:21 次阅读

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

2464c6d6-c2e1-11ed-ad0d-dac502259ad0.jpg

02

248d371a-c2e1-11ed-ad0d-dac502259ad0.jpg

03

24a96390-c2e1-11ed-ad0d-dac502259ad0.jpg

04

24d1a4d6-c2e1-11ed-ad0d-dac502259ad0.jpg

不同模式下的ESP32功能框图

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

24e7b55a-c2e1-11ed-ad0d-dac502259ad0.png

Light-sleep 模式下保持连接

硬件准备

ESP32/ESP32C3/ESP32S3系列模组既支持外置 32.768 kHz 的时钟振荡器作为 RTC 睡眠时钟,也支持外 部激励信号(如有源晶振)作为 RTC 睡眠时钟。外置 32.768 kHz 晶振的电路如下图所示:

25218b7c-c2e1-11ed-ad0d-dac502259ad0.png

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配置

253c74f0-c2e1-11ed-ad0d-dac502259ad0.png

256b3646-c2e1-11ed-ad0d-dac502259ad0.png

259d0b08-c2e1-11ed-ad0d-dac502259ad0.png

263ca79e-c2e1-11ed-ad0d-dac502259ad0.png

蓝牙还需要配置 Modem-sleep 相关配置

27010a08-c2e1-11ed-ad0d-dac502259ad0.png

具体可以参考ESP-IDF下的 power_save 例程

27270dac-c2e1-11ed-ad0d-dac502259ad0.png

如果您对 乐鑫Light-sleep保持WiFi连接感兴趣,或寻求商业项目合作,请后台私信联系。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2903

    文章

    44293

    浏览量

    371369
  • ESP32
    +关注

    关注

    18

    文章

    959

    浏览量

    17105
收藏 人收藏

    评论

    相关推荐

    aic23b的AD和DA输入输出数据总在64000左右,AD设置的是16位,为什么才进来的数都这么大,是不是配置不对?

    你好,aic23b的AD和DA输入输出数据总在64000左右,AD设置的是16位,为什么才进来的数都这么大,是不是配置不对? 还有就是,输入电压和采样值之间的对应关系是什么?
    发表于 11-05 06:53

    揭秘贴片功率电感发烫究竟是不是烧坏了

    电子发烧友网站提供《揭秘贴片功率电感发烫究竟是不是烧坏了.docx》资料免费下载
    发表于 09-30 14:44 0次下载

    THS3091放大脉宽是1ns的脉冲,脉冲的脉宽展宽,是不是THS3091的压摆率不够?

    用THS3091,放大脉宽是1ns的脉冲,脉冲的脉宽展宽,是不是THS3091的压摆率不够。 1ns脉宽的脉冲,是不是压摆率=2×pi×f×Vpk要大于10000V/us,
    发表于 08-19 06:02

    放大器工作点过高会引起什么失真

    在电子电路中,放大器是一种非常重要的元件,它能够接收一个电信号并将其转换为更大的电流或电压信号。放大器的性能受到许多因素的影响,其中之一就是工作点的选择。工作点过高是指放大器的静态工作电流或电压超过
    的头像 发表于 08-06 15:29 554次阅读

    谷景告诉你屏蔽绕线功率电感是不是感量越大性能越好

    谷景告诉你屏蔽绕线功率电感是不是感量越大性能越好 编辑:谷景电子 屏蔽绕线功率电感是一种普遍的电路电感元件,它对于电路运行的稳定性特别重要。而电感量作为屏蔽绕线功率电感的一个性能指标,也是我们在做
    的头像 发表于 06-10 18:48 504次阅读

    STM32G0如果只执行写保护编程时,先擦除选项字节,此时读保护字节是FF,那是不是就读保护生效

    如果只执行写保护编程时,先擦除选项字节,此时读保护字节是FF,那是不是就读保护生效?程序再修改为A5,会不会就引起FLASH整块擦除?不想修改写保护会引起FLASH擦除,是不是不行?
    发表于 05-20 08:17

    STVD是不是不支持C99?

    内容如标题所示,麻烦有懂的朋友告诉下我,这个问题花费我很多时间。 不知道STVD是不是不支持C99??
    发表于 05-16 08:04

    请问STM32Cube包含的FATFS例程是不是已经支持8G以上的SD卡

    STM32Cube包含的FATFS例程是不是已经支持8G以上的SD卡? 我手头没有合适的卡做测试,有人知道么 stm324xg_eval_sd.c 文件的uint8_t
    发表于 05-16 06:18

    共模电感是不是感值越大越好

    电子发烧友网站提供《共模电感是不是感值越大越好.docx》资料免费下载
    发表于 03-29 14:38 0次下载

    浪涌保护器安培是不是越大越好?

    浪涌保护器安培是不是越大越好? 浪涌保护器是一种用于保护电子设备免受电力系统中的浪涌电流或电压峰值的装置。它们能够将过高的电压或电流引导到地线,并确保设备的正常运行。然而,浪涌保护器的安培值并不总是
    的头像 发表于 02-05 14:55 1513次阅读

    浪涌电流是不是启动电流?

    浪涌电流是不是启动电流? 浪涌电流不是启动电流。浪涌电流是指在电器设备开关或连接电源时的瞬时电流峰值。启动电流是指电动机或其他大功率设备在启动时需要的电流。 当电器设备启动或重新连接到电源时,通常会
    的头像 发表于 02-05 14:55 1169次阅读

    请问不同功率的电机相间的阻值是不是不同的?

    不同功率的电机相间的阻值是不是不同的? 有没有相关的国家标准之类的。
    发表于 01-10 07:19

    法拉电容是不是可以用来做电池用

    法拉电容是不是可以用来做电池用  很抱歉,我不认为法拉电容可以直接用来制造电池。法拉电容和电池虽然都是储存能量的装置,但是它们的工作原理和结构有着明显的区别。 首先,我们需要了解法拉电容和电池
    的头像 发表于 12-29 13:42 2900次阅读

    怎么判断是不是线性电路

    怎么判断是不是线性电路  判断一个电路是否为线性电路需要了解线性电路的定义和特征,并通过分析电路的性质来验证。下面是一个详尽、详实、细致的介绍,帮助你了解如何判断线性电路的文章。 第一部分:线性电路
    的头像 发表于 12-15 11:20 1732次阅读

    直接插电加热的小锅进水,线路板是不是就坏了?

    直接插电加热的小锅进水,线路板是不是就坏了?
    的头像 发表于 12-06 14:34 2012次阅读