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连接感兴趣,或寻求商业项目合作,请后台私信联系。

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

    关注

    2914

    文章

    45071

    浏览量

    378594
  • ESP32
    +关注

    关注

    18

    文章

    983

    浏览量

    17730
收藏 人收藏

    相关推荐

    ads7882里面的RD是不是一个同步用的时钟脉冲?

    ads7882里面的RD是不是一个同步用的时钟脉冲,如果是的话,他的频率采用多好比较合适啊,另外有没有相关的代码可以参考,新手一个,有点不太会。谢谢!
    发表于 02-10 07:29

    ADS7841的采样频率的设置,是不是通过设置CS高低电平的时间来计算?

    您好,我想问下,ADS7841这款芯片的采样频率的设置,是不是通过设置CS高低电平的时间来计算,一个CS完整的高、低电平的时间和的倒数就是实际采样频率?我们今天进行芯片选型,我看其他的像
    发表于 02-08 06:57

    SN65HVS880是不是在CLK的上升沿发送数据出去的?

    1)上面SN65HVS880 时序图,有点不太明白,为什么SOP的第一位IP7在使能信号CE变为低电平时就被传送出去了,而且下面写着inhibit,是不是说IP7是被抑制 掉了,因为我在用
    发表于 01-24 06:40

    ADS8556电路,测干电池电压得到的结果有上下0.01V的偏差,是不是太大

    我的ADS8556电路,测干电池电压得到的结果有上下0.01V的偏差,是不是太大
    发表于 01-15 08:07

    const定义的是不是常量

    C语言是如何定义常量的?const定义的算不算是常量? 常见的有这么几种方式。 首先就是宏定义,使用 define 来定义。 宏的特点就是在预处理的时候被替换,比如这个地方的 SIZE,预处理后就会
    的头像 发表于 01-14 11:35 129次阅读

    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 922次阅读

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

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

    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 2次下载

    一文看懂插件环形电感线圈究竟是不是随便绕的

    在插件环形电感线圈的制造过程中,绕线是非常重要的一个环节。插件环形电感线圈绕线看起来很容易的一个步骤,但对于插件环形电感线圈的性能却有着特被重要的影响。那么,你觉得插件环形电感线圈绕线是不是可以随便绕制呢?
    的头像 发表于 03-12 19:19 1808次阅读
    一文看懂插件环形电感线圈究竟<b class='flag-5'>是不是</b>随便绕的