ESP32-C3 light-sleep 模式功耗问题

lingyun0129
Posts: 7
Joined: Thu Aug 26, 2021 12:44 am

ESP32-C3 light-sleep 模式功耗问题

Postby lingyun0129 » Thu Sep 02, 2021 2:48 am

我司准备用esp32-c3的芯片做主控来开发一tracker类的产品,其中功耗是关键参数,应用场景是蓝牙与手机保持连接、wifi作辅助定位。目前我们买了两块开发板:ESP32-C3-DevKitM-1,想在次开发板上测试一下在蓝牙保持连接的情况下的功耗。
阅读文档,要满足我们的需求,需要ble进入light-sleep模式,根据文档我们做了如下修改:

1.在开发板的GPIO0\GPIO1两个引脚上加入了外部32K的晶振,如附图所示:

2.已示例程序为基础:\ESP_IDF\examples\bluetooth\bluedroid\ble\gatt_server_service_table,

(1):Enable Power Management:
menuconfig ---> Component config ---> Power management --->
[*] Support for power management

(2):Enable Tickless Idle:
menuconfig ---> Component config ---> FreeRTOS --->
[*] Tickless idle support
(3) Minimum number of ticks to enter sleep mode for (NEW)

Note: Tickless idle needs to be enabled to allow automatic light sleep. FreeRTOS will enter light sleep if no tasks need to run
for 3(by default) ticks, that is 30ms if tick rate is 100Hz. Configure the FreeRTOS tick rate to be higher if you want to allow
shorter duration light sleep, for example:
menuconfig ---> Component config ---> FreeRTOS ->
(1000) Tick rate (Hz)

(3):Configure external 32.768Hz crystal as RTC clock source:
menuconfig ---> Component config ---> ESP32-specific --->
RTC clock source (External 32kHz crystal)
[*] Additional current for external 32kHz crystal
Note that the "additional current" option is a workaround for a hardware issue on ESP32 that the crystal can fail in oscillating.
Please enable this option when you use external 32kHz crystal. This hardware issue will be resolved in the next ECO chip.

(4):Enable Bluetooth modem sleep with external 32.768kHz crystal as low power clock:
menuconfig ---> Component config ---> Bluetooth ---> Bluetooth controller ---> MODEM SLEEP Options --->
[*] Bluetooth modem sleep
Bluetooth Modem sleep mode (ORIG mode(sleep with low power clock))
Bluetooth low power clock (External 32kHz crystal)

并在应用中增加了如下接口代码

Code: Select all

#include "esp_err.h"
#include "esp_pm.h"

    esp_pm_config_esp32_t pm_config = {
        .max_freq_mhz = 80, // e.g. 80, 160, 240
        .min_freq_mhz = 10, // e.g. 40
        .light_sleep_enable = true, // enable light sleep
    };
    ESP_ERROR_CHECK( esp_pm_configure(&pm_config) );
   
将程序烧录至开发版,用手机APP连接开发板蓝牙后,测得最小电流为700ua,最大电流为1.2ma,在这之间不断跳动。
另外有如下几个参数也在原有的example上做了修改:

Code: Select all

static esp_ble_adv_params_t adv_params = {
    .adv_int_min         =0x640,
    .adv_int_max         = 0x640,
    .adv_type            = ADV_TYPE_IND,
    .own_addr_type       = BLE_ADDR_TYPE_PUBLIC,
    .channel_map         = ADV_CHNL_ALL,
    .adv_filter_policy   = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,
};

Code: Select all

	conn_params.latency = 0;
            conn_params.max_int = 0x300;    // max_int = 0x20*1.25ms = 40ms
            conn_params.min_int = 0x10;    // min_int = 0x10*1.25ms = 20ms
            conn_params.timeout = 400;    // timeout = 400*10ms = 4000ms
            //start sent the update connection parameters to the peer device.
            esp_ble_gap_update_conn_params(&conn_params);
我的问题是如何使light-sleep 的功耗达到你们文档所说的130ua。使用的ESP_IDF版本是:V4.3
Attachments
企业微信截图_20210902104511.png
文档light-sleep模式功耗
企业微信截图_20210902104511.png (77.81 KiB) Viewed 10153 times
微信图片_20210902102757.png
开发板引脚截图
微信图片_20210902102757.png (311.24 KiB) Viewed 10153 times

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: ESP32-C3 light-sleep 模式功耗问题

Postby ESP_Gargamel » Thu Sep 02, 2021 4:14 am

你的电流是如何测试的?是针对整个开发板还是模组?

lingyun0129
Posts: 7
Joined: Thu Aug 26, 2021 12:44 am

Re: ESP32-C3 light-sleep 模式功耗问题

Postby lingyun0129 » Thu Sep 02, 2021 6:19 am

你好,谢谢回复。电源3.3V给开发板供电,然后串联一个电流表测试的,测试的是整个开发板的电流。

lingyun0129
Posts: 7
Joined: Thu Aug 26, 2021 12:44 am

Re: ESP32-C3 light-sleep 模式功耗问题

Postby lingyun0129 » Thu Sep 02, 2021 6:29 am

另外,关于ESP-C3 light-sleep 功耗官方的测试数据是什么,下图这个测试数据不适用于ESP-C3这个模组吧,我看这个数据发表的日期是2019年的。
Attachments
ble_light_sleep.png
ble_light_sleep.png (38.17 KiB) Viewed 10135 times

ESP_Gargamel
Posts: 786
Joined: Wed Nov 14, 2018 8:45 am

Re: ESP32-C3 light-sleep 模式功耗问题

Postby ESP_Gargamel » Thu Sep 02, 2021 7:35 am

需要测试模组的,而非整个开发板的。
130uA 是芯片最低的电流,不是平均电流。
那组数据是针对 ESP32 的,数据不能作为参考,当测试方式可参考。C3 的数据,当前还没有公开数据。

lingyun0129
Posts: 7
Joined: Thu Aug 26, 2021 12:44 am

Re: ESP32-C3 light-sleep 模式功耗问题

Postby lingyun0129 » Thu Sep 02, 2021 8:08 am

谢谢你的回复,上述我的配置有无问题?上述测试的结果是否说明已经成功进入了light-sleep模式?另外请教一下,如果想进一步降低 ble的功耗,可以从哪些方面调整参数,能否给一个官方的指导文档?下面是我在网络上找的一篇文档,盼复。
https://blog.csdn.net/szyunliwuli/artic ... /113864905

lingyun0129
Posts: 7
Joined: Thu Aug 26, 2021 12:44 am

Re: ESP32-C3 light-sleep 模式功耗问题

Postby lingyun0129 » Thu Sep 02, 2021 10:11 am

hi,我们正处在芯片选型的阶段,我们期望的功耗在蓝牙保持连接的情况下,平均电流在200uA左右,ESP32-C3这颗芯片能否满足我们的需求?盼官方回复,谢谢!

ESP_XuLZ
Posts: 173
Joined: Fri Mar 26, 2021 6:04 am

Re: ESP32-C3 light-sleep 模式功耗问题

Postby ESP_XuLZ » Fri Sep 03, 2021 10:04 am

hi, 在保持连接的情况下 可以增大连接间隔 降低 ble功耗,我们有测过在连接间隔为1000 ms 时,C3的平均电流在 800 uA左右,这个数据 仅作为一个参考。 连接间隔可以继续增大,这样会使 平均电流继续降低

zjustin
Posts: 18
Joined: Wed Jun 03, 2020 6:00 am

Re: ESP32-C3 light-sleep 模式功耗问题

Postby zjustin » Tue Feb 14, 2023 2:18 am

"hi, 在保持连接的情况下 可以增大连接间隔 降低 ble功耗,我们有测过在连接间隔为1000 ms 时,C3的平均电流在 800 uA左右,这个数据 仅作为一个参考。 连接间隔可以继续增大,这样会使 平均电流继续降低"

请问这个800µA 的实验, 是用BLE 的 periodic advertising ?
我尝试使用以下 sample,并把delay(2000), 改成light sleep, 但是功耗还是在10+mA, 而且在light sleep 时候 NRF scanner app 是显示时断时连的

Who is online

Users browsing this forum: No registered users and 35 guests