Page 1 of 1

esp32 ble功耗问题

Posted: Mon Jul 08, 2019 9:35 am
by hhl3065212
想用esp32做一个蓝牙门磁的接收器。就是蓝牙门磁是一个gatt clinet,当有开关门后,会启动ble连接gatt server。
esp32是一个设备,gatt server。设备基本在deep-sleep模式,rtc定时5s唤醒一次,每次就启动ble 进行广播并维持1s的等待连接。如果没有就进入deep-sleep。
这种模式下,如果没有连接的话,esp32的整体平均功耗能到多少?没有用ulp。理论上应该是官方数据10uA,但是粗略测量会高很多。请问还需要怎么做吗?

Re: esp32 ble功耗问题

Posted: Mon Jul 15, 2019 4:11 am
by KarlWang
在BLE 工作模式下(广播、连接等)可以打开Bluetooth modem sleep 功能,以进一步降低功耗。Bluetooth modem sleep打开后,蓝牙会根据air activity的情况,在收发包间隔时把RF关闭,从而降低功耗。

Bluetooth modem sleep可以配合Dynamic Frequency Scaling(DFS)同时使用, 后者是ESP32的一种低功耗模式,在系统任务状态为IDLE时,可以将CPU或外设的时钟频率降低。
Bluetooth modem sleep也可以配合系统 Automatic light sleep同时使用。后者是ESP32的一种低功耗模式,在系统任务状态为IDLE且light sleep没有被禁止时,可以将某些模块clock-gated, 以降低功耗。在Bluetooth modem sleep同 automatic light sleep同时使用时,要求硬件设计采用外接32.768KHz晶振作为蓝牙休眠时钟。具体使用方法以及功耗数据,可以参考GitHub论坛上的问题讨论:
https://github.com/espressif/esp-idf/issues/947

另外,关于ESP32的低功耗模式,请参考文档 :
https://docs.espressif.com/projects/esp ... ement.html