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

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

3天内不再提示

乐鑫esp32系列在睡眠模式下保持蓝牙连接的功耗测试

启明云端 2024-06-21 08:04 次阅读

教程适用于ESP32-S3、ESP32-C3、ESP32-C6

睡眠模式介绍

ESP32系列常见的休眠方式有三种,分别为Modem-sleep、Light-sleep 和 Deep-sleep。

Modem-sleep模式:CPU正常工作,可以对时钟进行配置。进入 Modem-sleep 模式后,还可以选择降低CPU时钟频率,进⼀步降低电流。休眠期间WiFi或 Bluetooth LE 可保持连接。

Light-sleep模式:CPU暂停工作,数字内核时钟受限。任何唤醒事件(MAC、主机、RTC 定时器或外部中断)都会唤醒芯片。休眠期间WiFi或Bluetooth LE可保持连接。

Deep-sleep模式:数字内核断电,CPU内容丢失。RTC时钟定时器或RTC GPIO可以将芯片从Deep-sleep模式中唤醒。进⼊休眠状态后,关闭除RTC模块外的所有其他模块。休眠期间WiFi或Bluetooth LE无法保持连接。

硬件准备

ESP32系列模组既支持外置32.768 kHz的时钟振荡器作为RTC睡眠时钟,也支持外部激励信号(如有源晶振)作为RTC睡眠时钟。ESP32外置32.768 kHz晶振的威廉希尔官方网站 如下图所示。具体的32k晶振引脚请参考对应芯片的技术规格书。

(https://www.espressif.com.cn/zh-hans/support/documents/technical-documents?keys=&field_download_document_type_tid%5B%5D=510)

c81e4fa2-2f61-11ef-a655-92fbcf53809c.jpg

软件准备

部分源码解析

1. 电源管理功能

电源管理功能(power_managenment) 是ESP-IDF中集成的电源管理算法,可以根据应用程序组件的需求,调整外围总线 (APB) 频率和CPU频率,并使芯片进入Light-sleep模式,尽可能减少运行应用程序的功耗。

通过调用esp_pm_configure() 函数,在应用程序中启用动态调频 (DFS) 功能和自动 Light-sleep 模式。此函数的参数 esp_pm_config_t 定义了频率调节的相关设置。在此参数结构中,需要初始化以下三个字段:


max_freq_mhz :最大 CPU 频率 (MHz),获取 ESP_PM_CPU_FREQ_MAX 锁后所使用的频率。

min_freq_mhz :最小 CPU 频率 (MHz),即未持有电源管理锁时所使用的频率。注意,10 MHz 是生成1MHz的REF_TICK默认时钟所需的最小频率。

light_sleep_enable :没有获取任何管理锁时,决定系统是否需要自动进入Light-sleep状态( true/false)。

c842e010-2f61-11ef-a655-92fbcf53809c.jpg

2. ble广播间隔

在程序中有个结构体 adv_params,其中有两个变量 .adv_int_min 和 .adv_int_max,这两个参数影响着广播间隔,可设置范围为 0x20~0x4000,广播时间间隔为 Time = N * 0.625 ms。

例如:0x640(十六进制)= 1600(十进制)* 0.625ms = 1s

c8538a0a-2f61-11ef-a655-92fbcf53809c.jpg

3. ble连接间隔

当连接成功后,在连接事件中有两个变量 conn_params.max_int 和 conn_params.min_int,这两个参数影响着连接间隔, 可设置范围为0x0006~0x0C80,连接间隔为 Time = N * 1.25 ms

例如:0x320(十六进制)= 800(十进制)* 1.25ms = 1s

注:最大连接间隔是 4 s,所以当设置超过4s时设置无效,则会变成了默认的间隔,功耗会增加。

c86af94c-2f61-11ef-a655-92fbcf53809c.jpg

完整示例代码链接(基于ESP-IDF release/v5.3版本)

https://gitee.com/SNKjxn/ble_power_save

获取工程后,激活esp-idf并进入工程目录下

设置目标芯片

idf.py set-target (目标芯片型号)

例如:

c891e462-2f61-11ef-a655-92fbcf53809c.jpg

编译烧录

c8b29978-2f61-11ef-a655-92fbcf53809c.jpg

正常运行log如下:

c953d892-2f61-11ef-a655-92fbcf53809c.jpg

功耗测试结果参考

注意:下面的测试结果,硬件均为外加32k晶振的单模块。

软件广播间隔1s,连接间隔1s。

ESP32-C3

平均功耗 474ua

c95e293c-2f61-11ef-a655-92fbcf53809c.jpg

ESP32-C6

平均功耗 512ua

c96ec6b6-2f61-11ef-a655-92fbcf53809c.jpg

ESP32-S3

平均功耗 826ua

c988c084-2f61-11ef-a655-92fbcf53809c.jpg

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

    关注

    114

    文章

    5823

    浏览量

    170331
  • 功耗测试
    +关注

    关注

    0

    文章

    16

    浏览量

    9620
  • 乐鑫
    +关注

    关注

    0

    文章

    191

    浏览量

    25443
收藏 人收藏

    评论

    相关推荐

    【代码分享】基于ESP32的串口不定长数据接收方法

    【代码分享】基于ESP32的串口不定长数据接收方法
    的头像 发表于 11-15 01:02 477次阅读
    【代码分享】基于<b class='flag-5'>乐</b><b class='flag-5'>鑫</b><b class='flag-5'>ESP32</b>的串口不定长数据接收方法

    启明智显ESP32系列串口屏全面升级!支持IDF最新版,兼容Arduino开发环境

    启明智显的ESP32系列串口屏迎来了全面升级,SDK更新至IDF的最新版本,并且完美兼容Arduino开发环境!
    的头像 发表于 09-05 16:48 992次阅读
    启明智显<b class='flag-5'>ESP32</b><b class='flag-5'>系列</b>串口屏全面升级!支持<b class='flag-5'>乐</b><b class='flag-5'>鑫</b>IDF最新版,兼容Arduino开发环境

    esp32用什么软件编程

    ESP32是一款由(Espressif)推出的低功耗、高性能的Wi-Fi和蓝牙双模微控制器,广泛应用于物联网、智能家居、智能穿戴等领域。
    的头像 发表于 08-19 17:24 3525次阅读

    ESP8266深度睡眠模式是否会保持其GPIO状态?

    我想知道是否有人知道ESP8266深度睡眠模式是否会保持其 GPIO 状态。 简单示例:假
    发表于 07-08 06:39

    ESP32-C3只使用蓝牙的情况,完成蓝牙连接后待机功耗有多大?

    FAE:你好! 麻烦请教一ESP32-C3 只使用蓝牙的情况,完成蓝牙
    发表于 07-01 06:48

    请问esp32蓝牙能不能保持超低功耗的监听?

    做一个低功耗的设备,需要进入深度睡眠,但是有需要空中唤醒,可以用外挂LORA去唤醒esp32。 那么esp32的低功耗
    发表于 06-18 07:11

    请问esp32-s3如何正确进入睡眠模式

    开发板:esp32-s3-WROOM-1 ESP-IDF:5.0 不管通过esp_light_sleep_start()还是esp_deep_sleep_start()进入
    发表于 06-11 09:03

    ESP32-P4芯片应用,WT99P4C6-S1开发板应用方案

    物联网和智能硬件的浪潮中,性能卓越、成本效益高的解决方案一直是开发者们追求的目标。作为集成威廉希尔官方网站 设计领域的佼佼者,其ESP32系列芯片一
    的头像 发表于 06-01 08:04 1669次阅读
    <b class='flag-5'>乐</b><b class='flag-5'>鑫</b><b class='flag-5'>ESP32</b>-P4芯片应用,WT99P4C6-S1开发板应用方案

    科技发布全新ESP32-H4 SoC

    信息科技最新发布了ESP32-H4,这一创新产品是对其ESP32-H2系列的完美补充,进一步巩固了公司
    的头像 发表于 05-06 15:18 1016次阅读

    从无线连接转向高性能处理,ESP32-P4昭示着的转型?

    由于设计周期相对较短,每过一段时间,都会有新的MCU面世,搅动这个本就竞争激烈的市场。作为无线MCU市场的主要参与者之一,已经发布了一系列优异的Wi-Fi/蓝牙芯片,如今也凭借着全
    的头像 发表于 04-22 07:55 3845次阅读

    宣布推出ESP32-H4,支持802.15.4和Bluetooth 5.4的低功耗SoC

    信息科技 (688018.SH) 宣布推出 ESP32-H4,继 ESP32-H2 后进一步丰富了公司的 802.15.4 和 Bluetooth LE 产品矩阵。
    的头像 发表于 04-11 16:08 1371次阅读
    <b class='flag-5'>乐</b><b class='flag-5'>鑫</b>宣布推出<b class='flag-5'>ESP32</b>-H4,支持802.15.4和Bluetooth 5.4的低<b class='flag-5'>功耗</b>SoC

    ESP32-P4首秀|启明云端带你解读P4多媒体开发板

    此前,发布了新一代MCU芯片ESP32-P4的消息,今天ESP32-P4开发板终于登场亮相了,快来一睹真容吧。一、ESP32-P4开发板
    的头像 发表于 02-19 12:30 3931次阅读
    <b class='flag-5'>ESP32</b>-P4首秀|启明云端带你解读<b class='flag-5'>乐</b><b class='flag-5'>鑫</b>P4多媒体开发板

    ESP32-S3模组是怎么配置低功耗模式的?低功耗模式功耗大概是多少?

    经常有人问S3模组是怎么配置低功耗模式的?低功耗模式功耗大概是多少?下面小启就跟大家讲
    的头像 发表于 01-26 08:03 4384次阅读
    <b class='flag-5'>ESP32</b>-S3模组是怎么配置低<b class='flag-5'>功耗</b><b class='flag-5'>模式</b>的?低<b class='flag-5'>功耗</b><b class='flag-5'>模式</b><b class='flag-5'>下</b><b class='flag-5'>功耗</b>大概是多少?

    信息科技推出全新ESP32-C61 SoC

    信息科技 (688018.SH) 宣布推出全新的 Wi-Fi 6 + Bluetooth 5 (LE) SoC ESP32-C61。这款芯片作为 ESP32-C
    的头像 发表于 01-08 17:23 1217次阅读
    <b class='flag-5'>乐</b><b class='flag-5'>鑫</b>信息科技推出全新<b class='flag-5'>ESP32</b>-C61 SoC

    ESP32与SD NAND的协同应用

    SDNANDESP32上的作用SDNAND是贴片式TF卡,可以用于存储数据,比如视频图片或者代码
    的头像 发表于 01-08 13:56 607次阅读
    <b class='flag-5'>ESP32</b>与SD NAND的协同应用