Sleep AT 示例¶
本文档简要介绍并举例说明如何在 ESP32 和 ESP32-C3 系列产品上使用 AT 命令设置睡眠模式。
简介¶
ESP32 和 ESP32-C3 系列采用先进的电源管理技术,可以在不同的电源模式之间切换。当前,ESP-AT 支持以下四种功耗模式(更多休眠模式请参考技术规格书):
Active
模式:芯片射频处于工作状态。芯片可以接收、发射和侦听信号。Modem-sleep
模式:CPU 可运行,时钟可被配置。Wi-Fi 基带、蓝牙基带和射频关闭。Light-sleep
模式:CPU 暂停运行。RTC 存储器和外设以及 ULP 协处理器运行。任何唤醒事件(MAC、主机、RTC 定时器或外部中断)都会唤醒芯片。Deep-sleep
模式:CPU 和大部分外设都会掉电,只有 RTC 存储器和 RTC 外设处于工作状态。
默认情况下,ESP32 和 ESP32-C3 会在系统复位后进入 Active
模式。当 CPU 不需要一直工作时,例如等待外部活动唤醒时,系统可以进入低功耗模式。
对于 ESP32 和 ESP32-C3 的功耗,请参考 ESP32 系列芯片技术规格书 和 ESP32-C3 系列芯片技术规格书。
注解
将分别描述在 Wi-Fi 模式和蓝牙模式下将 ESP32 和 ESP32-C3 设置为睡眠模式。
在单 Wi-Fi 模式下,只有
station
模式支持Modem-sleep
模式和Light-sleep
模式。对于蓝牙模式下的
Light-sleep
模式,请确保外部存在 32 KHz 晶振。如果外部不存在 32 KHz 晶振,ESP-AT 将工作在 Modem-sleep 模式。
测量方法¶
为避免功耗测试过程中出现一些不必要的干扰,建议使用集成芯片的乐鑫模组进行测试。
硬件连接可参考如下。
ESP32 系列
ESP32-C3 系列
在 Wi-Fi 模式下设置为 Modem-sleep 模式¶
设置 Wi-Fi 为 station 模式。
命令:
AT+CWMODE=1
响应:
OK
连接路由器。
命令:
AT+CWJAP="espressif","1234567890"
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
设置休眠模式为 Modem-sleep 模式。
命令:
AT+SLEEP=1
响应:
OK
注解
RF 将根据 AP 的 DTIM 定期关闭(路由器一般设置 DTIM 为 1)。
当 ESP32 模组的 CPU 频率为 80 MHz 并且模组处于单 Wi-Fi 模式下时,Modem-sleep 模式下的平均电流约为
21
mA。当 ESP32-C3 模组的 CPU 频率为 160 MHz 并且模组处于单 Wi-Fi 模式下时,Modem-sleep 模式下的平均电流约为
20
mA。
在 Wi-Fi 模式下设置为 Light-sleep 模式¶
设置 Wi-Fi 为 station 模式。
命令:
AT+CWMODE=1
响应:
OK
连接路由器。设置监听间隔为 3。
命令:
AT+CWJAP="espressif","1234567890",,,,3
响应:
WIFI CONNECTED WIFI GOT IP OK
说明:
您输入的 SSID 和密码可能跟上述命令中的不同。请使用您的路由器的 SSID 和密码。
设置休眠模式为 Light-sleep 模式。
命令:
AT+SLEEP=2
响应:
OK
注解
CPU 将会自动休眠,RF 则会根据 AT+CWJAP 设置的监听间隔定期关闭。
当 ESP32 模组处于单 Wi-Fi 模式下时,Light-sleep 模式下平均电流约为
0.8
mA。当 ESP32-C3 模组处于单 Wi-Fi 模式下时,Light-sleep 模式下平均电流约为
130
uA。
在蓝牙广播态下设置为 Modem-sleep 模式¶
初始化为角色为蓝牙服务端。
命令:
AT+BLEINIT=2
响应:
OK
设置蓝牙广播参数。设置蓝牙广播间隔为 1 s。
命令:
AT+BLEADVPARAM=1600,1600,0,0,7,0,0,"00:00:00:00:00:00"
响应:
OK
开始广播
命令:
AT+BLEADVSTART
响应:
OK
禁用 Wi-Fi。
命令:
AT+CWMODE=0
响应:
OK
设置休眠模式为 Modem-sleep 模式。
命令:
AT+SLEEP=1
响应:
OK
注解
当 ESP32 模组的 CPU 频率为 80 MHz 时并且模组处于单蓝牙广播态模式时,Modem-sleep 模式下的平均电流约为
23
mA。当 ESP32-C3 模组的 CPU 频率为 160 MHz 时并且模组处于单蓝牙广播态模式时,Modem-sleep 模式下的平均电流约为
20
mA。
在蓝牙连接态下设置为 Modem-sleep 模式¶
初始化为角色为蓝牙服务端。
命令:
AT+BLEINIT=2
响应:
OK
开启蓝牙广播。
命令:
AT+BLEADVSTART
响应:
OK
等待连接。
如果连接建立成功,则 AT 将会提示:
+BLECONN:0,"47:3f:86:dc:e4:7d" +BLECONNPARAM:0,0,0,6,0,500 +BLECONNPARAM:0,0,0,24,0,500 OK
说明:
在这个示例中,蓝牙客户端的地址为 47:3f:86:dc:e4:7d。
对于提示信息(+BLECONN and +BLECONNPARAM),请参考 AT+BLECONN 和 AT+BLECONNPARAM 获取更多信息。
更新蓝牙连接参数。设置蓝牙连接间隔为 1 s。
命令:
AT+BLECONNPARAM=0,800,800,0,500
响应:
OK
如果连接参数更新成功,则 AT 将会提示:
+BLECONNPARAM:0,800,800,800,0,500
说明:
对于提示信息(+BLECONNPARAM),请参考 AT+BLECONNPARAM 获取更多信息。
禁用 Wi-Fi。
命令:
AT+CWMODE=0
响应:
OK
设置休眠模式为 Modem-sleep 模式。
命令:
AT+SLEEP=1
响应:
OK
注解
当 ESP32 的 CPU 频率为 80 MHz 时并且处于蓝牙连接态模式时,Modem-sleep 模式下的平均电流约为
23
mA。当 ESP32-C3 的 CPU 频率为 160 MHz 时并且处于蓝牙连接态模式时,Modem-sleep 模式下的平均电流约为
20
mA。
在蓝牙广播态下设置为 Light-sleep 模式¶
初始化为角色为蓝牙服务端。
命令:
AT+BLEINIT=2
响应:
OK
设置蓝牙广播参数。设置蓝牙广播间隔为 1 s。
命令:
AT+BLEADVPARAM=1600,1600,0,0,7,0,0,"00:00:00:00:00:00"
响应:
OK
开始广播。
命令:
AT+BLEADVSTART
响应:
OK
禁用 Wi-Fi。
命令:
AT+CWMODE=0
响应:
OK
设置休眠模式为 Light-sleep 模式。
命令:
AT+SLEEP=2
响应:
OK
注解
当 ESP32 模组处于蓝牙广播态模式时,Light-sleep 模式下的平均电流约为
0.8
mA。当 ESP32-C3 模组处于蓝牙广播态模式时,Light-sleep 模式下的平均电流约为
130
uA。
在蓝牙连接态下设置为 Light-sleep 模式¶
初始化为角色为蓝牙服务端。
命令:
AT+BLEINIT=2
响应:
OK
开始广播。
命令:
AT+BLEADVSTART
响应:
OK
等待连接。
如果连接建立成功,则 AT 将会提示:
+BLECONN:0,"47:3f:86:dc:e4:7d" +BLECONNPARAM:0,0,0,6,0,500 +BLECONNPARAM:0,0,0,24,0,500 OK
说明:
在这个示例中,蓝牙客户端的地址为 47:3f:86:dc:e4:7d。
对于提示信息(+BLECONN and +BLECONNPARAM),请参考 AT+BLECONN 和 AT+BLECONNPARAM 获取更多信息。
更新蓝牙连接参数。设置蓝牙连接间隔为 1 s。
命令:
AT+BLECONNPARAM=0,800,800,0,500
响应:
OK
如果连接参数更新成功,则 AT 将会提示:
+BLECONNPARAM:0,800,800,800,0,500
说明:
对于提示信息(+BLECONNPARAM),请参考 AT+BLECONNPARAM 获取更多信息。
禁用 Wi-Fi。
命令:
AT+CWMODE=0
响应:
OK
设置休眠模式为 Light-sleep 模式。
命令:
AT+SLEEP=2
响应:
OK
注解
当 ESP32 模组处于蓝牙连接态模式时,Light-sleep 模式下的平均电流约为
0.8
mA。当 ESP32-C3 模组处于蓝牙连接态模式时,Light-sleep 模式下的平均电流约为
130
uA。
设置为 Deep-sleep 模式¶
设置休眠模式为 Deep-sleep 模式。设置 deep-sleep 时间为 3600000 ms。
命令:
AT+GSLP=3600000
响应:
OK
说明:
设定时间到后,设备自动唤醒,调用深度睡眠唤醒桩,然后加载应用程序。
对于 Deep-sleep 模式,唯一的唤醒方法是定时唤醒。
注解
当 ESP32 模组处于 Deep-sleep 模式时,Deep-sleep 模式下的平均电流约为
10
uA。当 ESP32-C3 模组处于 Deep-sleep 模式时,Deep-sleep 模式下的平均电流约为
5
uA。