ESP32 深度睡眠模式功耗测试

ESP32 深度睡眠模式功耗测试

ESP32 拥有 18 个 RTC IO 和 10 个 TouchPad, 每一个 RTC IO 和 TouchPad 经过配置都可以将芯片从 deep_sleep 模式中唤醒, 从而可以实现低功耗方案.

概述

该项测试基于 ESP32 电流测试板, 开发板使用和测试程序配置请参考 deep_sleep 测试板使用简介 电流测试板使用简介. 下面介绍的是通过配置不同唤醒方式, deep_sleep 期间芯片的工作电流. 所有的 RTC IO 和 TouchPad 都进行了测试.

外部事件唤醒


外部事件可以通过在 RTC IO 上产生一个电平信号, 从而唤醒正处于 deep_sleep 状态的芯片. 该事件可以是 EXT0 或 EXT1.

  • EXT0 方式是当某个 RTC IO 上检测到有唤醒芯片的电平信号时, 芯片就被会唤醒, 在程序中配置是高电平还是低电平唤醒.
  • EXT1 方式下, 我们可以采用多个 RTC IO 组合触发方式, 当几个 RTC IO 上电平信号满足一定条件时,芯片将被唤醒. 如果只有一个 RTC IO 进行了配置, 效果将与 EXT0 类似.

具体程序配置请参考 电流测试板使用简介 第四章.

测试配置如下 : RTC IO 配置成输入 floating 模式. 程序配置某一个 RTC IO 为 wake_up IO. 当采用高电平唤醒时, 外部采用 10K 欧电阻下拉, 当采用低电平唤醒时, 外部采用 10K 欧电阻上拉. EXT0 唤醒方式测试结果中, 配置 GPIO_0 为 wake_up IO 时, 如果是配置低电平唤醒, deep_sleep 期间工作电流是 6.3uA, 配置成高电平唤醒时, deep_sleep 期间工作电流是 6.2uA.

注 : RTC_IO37 和 RTC_IO38 在测试版上没有引脚引出, 没有进行测试.


EXT0 唤醒方式测试结果

GPIO_NUM low leval wakeup high level wakeup
GPIO_0 6.3uA 6.2uA
GPIO_2 6.3uA 6.2uA
GPIO_4 6.4uA 6.2uA
GPIO_12 6.4uA 6.4uA
GPIO_13 6.3uA 6.3uA
GPIO_14 6.3uA 6.3uA
GPIO_15 6.4uA 6.4uA
GPIO_25 6.3uA 6.5uA
GPIO_26 6.6uA 6.3uA
GPIO_27 6.4uA 6.4uA
GPIO_32 6.4uA 6.4uA
GPIO_33 6.4uA 6.4uA
GPIO_34 6.4uA 6.2uA
GPIO_35 6.4uA 6.3uA
GPIO_36 6.4uA 6.3uA
GPIO_37 \ \
GPIO_38 \ \
GPIO_39 6.4uA 6.3uA



EXT1 唤醒方式测试结果

GPIO_NUM low leval wakeup high level wakeup
GPIO_0 5.2uA 5.3uA
GPIO_2 5.2uA 5.2uA
GPIO_4 5.2uA 5.2uA
GPIO_12 5.2uA 5.3uA
GPIO_13 5.3uA 5.2uA
GPIO_14 5.3uA 5.3uA
GPIO_15 5.3uA 5.2uA
GPIO_25 5.2uA 5.3uA
GPIO_26 5.3uA 5.2uA
GPIO_27 5.3uA 5.3uA
GPIO_32 5.3uA 5.3uA
GPIO_33 5.3uA 5.3uA
GPIO_34 5.3uA 5.7uA
GPIO_35 5.3uA 5.7uA
GPIO_36 5.3uA 5.3uA
GPIO_37 \ \
GPIO_38 \ \
GPIO_39 5.4uA 5.5uA


从表格可以看出, deep_sleep 期间, 配置不同 RTC IO 唤醒时, 工作电流基本相同, 芯片的工作电流非常低. 采用 EXT1 唤醒方式时电流会比 EXT0 唤醒方式下少 1uA 左右.

注: RTC IO 请尽量采用外部上下拉方式, 在进入 deep_sleep 之前将其配置成 input floating 模式, 与采用内部上下拉方式相比, 这样可以有效降低 deep_sleep 期间电流.


Touch Pad 唤醒方式

Touch Pad 唤醒方式下, 芯片进入 deep_sleep 之前, 对 Touch Pad 进行初始化,然后配置触发阈值. 进入 deep_sleep 后测量 sleep 期间电流. 测试配置程序可以参考文档电流测试板使用简介第四章.

TouchPad 唤醒方式测试结果

Pad Num Current
Pad0 (GPIO_4) 37.3 uA
Pad1 (GPIO_0) 35.7 uA
Pad2 (GPIO_2) 36.6 uA
Pad3 (GPIO_15) 35.6 uA
Pad4 (GPIO_13) 36.5 uA
Pad5 (GPIO_12) 36.1 uA
Pad6 (GPIO_14) 36.7 uA
Pad7 (GPIO_27) 35.7 uA
Pad8 (GPIO_33) 36.7 uA
Pad9 (GPIO_32) 36.3 uA

注: 可以使用 touch_pad_set_meas_time 接口来调整 touch sensor 充放电时间和充放电检测间隔,从而在合适的响应时间下,获得更好的低功耗表现。

猜你喜欢

转载自blog.csdn.net/espressif/article/details/79360201