ESP32 测试(十):ESP32 Wi-Fi 和 蓝牙 并存时开始睡眠模式的电流功耗

测试目的:ESP32 Wi-F 和 蓝牙 并存时测量出 sleep 模式下 Wi-Fi 和 蓝牙并存时的电流功耗。

以下是测试环境与过程、测试结果:

1 测试环境与过程:

  • 硬件部分:ESP32-WROVER-B 模组(需要外接 32.768 K 晶振),ESP-IDF: V4.0 (abdf12dc),与一台示波器。

  • 软件部分:在 esp-idf/examples/wifi/power_save 示例里结合了 /esp-idf/examples/bluetooth/bluedroid/ble/ble_ibeacon 示例(将 ble_ibeacon 中实现的功能复制添加到 power_save 即可)。 menuconfig 中可以按照 官方配置 进行配置。如下:

    ESP-IDF menuconfig options:
    Enable Power Management:
    menuconfig ---> Component config ---> Power management --->
    [*] Support for power management
    
    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)
    
    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.
    
    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)
    

2 测试结果:

2.1 BLE 广播(不使用 Wi-Fi)

首先需要验证只用 /esp-idf/examples/bluetooth/bluedroid/ble/ble_ibeacon 示例测试 BLE 广播(不使用 Wi-Fi)的电流功耗,测得的平均功耗与 乐鑫官方数据基本吻合,表格如下:

CPU 频率adv internal(ms)MODE平均值最大值最小值
80 mHz20 msLight-sleep33.1 mA142 mA<1 mA
160 mHz20 msLight-sleep34.3 mA150 mA<1 mA

2.2 BLE 广播(使用 Wi-Fi)

然后将 /esp-idf/examples/bluetooth/bluedroid/ble/ble_ibeacon 示例与 esp-idf/examples/wifi/power_save 示例结合后, 在 menuconfig 按照要求配置与烧写固件后,结果如下:

CPU 频率adv internal(ms)MODE平均值最大值最小值
80 mHz20 msLight-sleep34.7 mA166 mA0.72 mA
80 mHz80 msLight-sleep17.2 mA168 mA0.73 mA
80 mHz160 msLight-sleep11.1 mA166 mA0.75 mA
160 mHz20 msLight-sleep35.2 mA166 mA0.8 mA
160 mHz80 msLight-sleep20.3 mA168 mA0.77 mA
160 mHz160 msLight-sleep12.5 mA166 mA0.75 mA
240 mHz20 msLight-sleep35.9 mA166 mA<1 mA
240 mHz80 msLight-sleep15.9 mA166 mA<1 mA
240 mHz160 msLight-sleep13.0 mA168 mA<1 mA

3 波形参考

以下为使用 KEITHELEY 数字万用表测试模拟的 BLE & sleep 模式下的波形。

3.1 BLE ADV

此部分为 BLE ADV & sleep 下的相关测试环境及结果。
测试环境:

  • IDF version : 4c81978a3
  • ADV interval : 40 ms - 40 ms
  • CPU frequency : 160 MHz
  • DUAL core

测试结果:(图片横坐标为采样点数,纵坐标为电流值,单位为 A)
每 40 ms 广播一次,广播时的瞬时电流峰值为 130 mA,其余时间为 sleep 模式,电流为 1 mA。
在这里插入图片描述

将单个周期放大后如下:
在这里插入图片描述

3.2 BLE SCAN

此部分为 BLE ADV & sleep 下的相关测试环境及结果。
测试环境:

  • IDF version : 4c81978a3
  • SCAN interval : 50 ms
  • scan_window : 30 ms
  • DUAL core

测试结果:(图片横坐标为采样点数,纵坐标为电流值,单位为 A)
每 50 ms 扫描一次,扫描窗口为 30 ms。扫描时时的瞬时电流峰值为 130 mA,其余时间为正常模式,电流为 20 mA。
在这里插入图片描述
将单个周期放大后如下:
在这里插入图片描述

3.3 BLE CONNECT

此部分为 BLE CONNECT & sleep 下的相关测试环境及结果。
测试环境:

  • IDF version : 4c81978a3
  • ADV interval : 40 ms - 40 ms
  • DUAL core

测试结果:(图片横坐标为采样点数,纵坐标为电流值,单位为 A)
有事件 & 广播发生时瞬时电流值较高,其余时间为 sleep 模式,电流为 1 mA。

  • BLE 连接前
    在这里插入图片描述

    将单个周期放大后如下:
    在这里插入图片描述

  • BLE 连接后
    在这里插入图片描述

    将单个周期放大后如下:
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值