AT
工程:https://github.com/espressif/esp-at
AT
文档:https://docs.espressif.com/projects/esp-at/zh_CN/latest/
睡眠模式介绍
ESP32
支持 5 种预设功耗模式,可以覆盖绝大多数应用场景。因此,用户在自行调整各个电源控制信号前,应首先尝试这 5 种功耗模式能否满足要求,具体包括:
Active
模式:芯片射频处于工作状态。芯片可以接收、发射和侦听信号。Modem-sleep
模式:CPU
可运行,时钟可被配置。Wi-Fi
/蓝牙基带和射频关闭。Light-sleep
模式:CPU
暂停运行。RTC
存储器和外设以及ULP
协处理器运行。任何唤醒事件(MAC
、
主机、RTC
定时器或外部中断)都会唤醒芯片。Deep-sleep
模式:CPU
和大部分外设都会掉电,只有RTC
存储器和RTC
外设处于工作状态。Wi-Fi
和蓝牙连接数据存储在RTC
中。ULP
协处理器可以工作。Hibernation
模式:内置的8MHz
振荡器和ULP
协处理器均被禁用。RTC
内存恢复电源被切断。只有
1 个位于低速时钟上的RTC
时钟定时器和某些RTC GPIO
在工作。RTC
时钟定时器或RTC GPIO
可
以将芯片从Hibernation
模式中唤醒。
默认情况下, ESP32
系统复位后将进入 Active
模式。当 CPU
不需要一直工作时,比如当等待外部活动唤醒时,系统可以进入多种低功耗模式。
睡眠模式功耗
设备在不同的功耗模式下有不同的电流消耗.
在 Wi-Fi
开启的场景中,芯片会在 Active
和 Modem-sleep
模式之间切换,功耗也会在两种模式间变化。
Modem-sleep
模式下,CPU
频率自动变化,频率取决于CPU
负载和使用的外设。
Deep-sleep
模式下,仅ULP
协处理器处于工作状态时,可以操作GPIO
及低功耗I2C
。
睡眠唤醒源
可以使用多种来源唤醒睡眠模式,当任何一种唤醒源被触发,芯片都会醒来。
对于 Modem sleep
模式,可以被任意中断唤醒,而对于 deep sleep
模式,可以通过 RTC GPIO
(注意:仅有 RTC GPIO
可以作为唤醒源,而非数字 GPIO
),RTC
计时器,touch
以及协处理器来唤醒
睡眠命令使用
ESP32 AT
包含了 model sleep、light sleep 和 deep sleep 三种睡眠模式,用户可以根据自己的要求自定义 AT
命令来实现定制化睡眠方案。
1. AT+GSLP—进入 Deep-sleep 模式
设置指令
AT+GSLP=<time>
响应
<time>
OK
参数说明
time
: 设置ESP32
的睡眠时长,单位: 毫秒。
ESP32
会在休眠设定时长后自动唤醒。
目前AT
对于sleep
模式只提供了定时唤醒这一种唤醒方法,设置的参数即睡眠时长。
2.AT+SLEEP—设置 sleep 模式
设置指令:
指令
AT+SLEEP=<sleep mode>
响应
OK
<sleep mode>:
参数说明
- 0: 禁用休眠模式
- 1:
Modem-sleep
模式 - 2:
Light-sleep
模式 - 3:
Modem-sleep listen interval
模式
示例:
AT+SLEEP=0
modem sleep
可以被任意中断唤醒,所以需要在使用中很有可能会出现睡眠一会就又被唤醒到Active
模式的情况。