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

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

    关注

    112

    文章

    5522

    浏览量

    166759
  • 功耗测试
    +关注

    关注

    0

    文章

    13

    浏览量

    9592
  • 乐鑫
    +关注

    关注

    0

    文章

    165

    浏览量

    25274
收藏 人收藏

    评论

    相关推荐

    请问ESP32-C3可以使用蓝牙连接电脑吗?

    模组ESP32-C3-WROOM AT固件ESP32-C3-MINI-1-V2.4.2.0 测试工具(Android)nRF Connect 测试工具(PC)SerialTest 电
    发表于 06-27 08:10

    ESP32-AT开启经典蓝牙作为蓝牙模块,和MCU连接发送AT之后,返回值没有OK是怎么回事?

    OK,应该说明烧录成功,然后用蓝牙连接了手机,可以正常收发数据字符串等; 说明烧录成功了。 然后进行测试2,测试2有问题了。具体如下。 51通过串口和
    发表于 06-27 07:17

    ESP32-C3 SPI AT模式蓝牙SPP传输速度能到多少?

    我把ESP32-C3 配置成SPI AT 然后使用蓝牙透传功能,测试发现传输速率只有几KB,请问理论上ESP32-C3 SPI AT模式
    发表于 06-26 08:12

    esp32的整体平均功耗能到多少?

    deep-sleep模式,rtc定时5s唤醒一次,每次就启动ble 进行广播并维持1s的等待连接。如果没有就进入deep-sleep。 这种模式,如果没有
    发表于 06-26 07:52

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

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

    ESP32模块连接到路由器之后比没有连接到路由器时的功耗小0.4W,如何降低WIFI断开后的功耗

    测试模组:ESP32-WROOM-32(4MB) 测试条件:电源能力3.3V@1A 软件版本:ESP-IDF_V4.2.1 测试
    发表于 06-14 07:07

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

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

    求助,关于ESP32C3模块与手机蓝牙兼容性问题求解

    使用ESP32C3模块与三星S9手机连接.模块发送蓝牙数据时关闭手机上的系统蓝牙,模块依然保持
    发表于 06-11 06:50

    请问esp32之间的蓝牙连接esp32与手机的蓝牙连接有什么区别?

    请问esp32之间的蓝牙连接esp32与手机的蓝牙连接有什么区别?为什么我
    发表于 06-06 08:15

    如何让ESP8684-WROOM-04C蓝牙能够lightsleep模式功耗工作?

    我们想让ESP8684-WROOM-04C 蓝牙能够lightsleep模式功耗工作,请问
    发表于 06-05 07:59

    ESP32系列ESP32-D0WD双模 超低功耗集成BLE4.2+2.4G WIFI SoC芯片

    ESP32系列ESP32-D0WD双模 超低功耗集成BLE4.2+2.4G WIFI SoC芯片
    的头像 发表于 05-29 11:52 429次阅读
    <b class='flag-5'>ESP32</b><b class='flag-5'>系列</b><b class='flag-5'>ESP32</b>-D0WD双模 超低<b class='flag-5'>功耗</b>集成BLE4.2+2.4G WIFI SoC芯片

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

    经常有人问S3模组是怎么配置低功耗模式的?低功耗模式功耗大概是多少?下面小启就跟大家讲下S3模组低功耗
    的头像 发表于 01-26 08:03 2670次阅读
    <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>大概是多少?

    Banana Pi 开源硬件基于ESP32-S3开发的物联网开发板系列

    ESP32-S3芯片,支持 2.4 GHz Wi-Fi 和低功耗蓝牙 (Bluetooth® LE) 双模无线通信。 紧凑的空间依旧提
    发表于 09-27 17:10

    ESP32-WROOM-32D和ESP32-WROOM-32U技术规格书

    ESP32-WROOM-32U 和 ESP32-WROOM-32D 是通用型 Wi-Fi + Bluetooth® + Bluetooth LE MCU 模组,功能强大,用途广泛,
    发表于 09-18 07:24

    信驰达基于ESP32-C3推出低功耗Wi-Fi蓝牙双模模块

    厂商深圳信驰达科技RF-star推出了基于ESP32-C3 SoC的低功耗WiFi蓝牙二合一通信模块——RF-WM-ESP32B1。
    的头像 发表于 07-19 09:44 661次阅读