ESP32 AT 系列 - (二) sleep的使用(AT+SLEEP、AT+GLSP)

睡眠模式介绍

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 模式:内置的 8 MHz 振荡器和 ULP 协处理器均被禁用。RTC 内存恢复电源被切断。只有
    1 个位于低速时钟上的 RTC 时钟定时器和某些 RTC GPIO 在工作。RTC 时钟定时器或 RTC GPIO 可
    以将芯片从 Hibernation 模式中唤醒。

默认情况下, ESP32 系统复位后将进入 Active 模式。当 CPU 不需要一直工作时,比如当等待外部活动唤醒时,系统可以进入多种低功耗模式。

睡眠模式功耗

设备在不同的功耗模式下有不同的电流消耗,详情请见下表:
power

在Wi-Fi 开启的场景中,芯片会在Active 和Modem-sleep 模式之间切换,功耗也会在两种模式间变化。

Modem-sleep 模式下,CPU 频率自动变化,频率取决于 CPU 负载和使用的外设。
Deep-sleep 模式下,仅 ULP 协处理器处于工作状态时,可以操作 GPIO 及低功耗 I2C。

睡眠唤醒源

可以使用多种来源唤醒睡眠模式,当任何一种唤醒源被触发,芯片都会醒来。

wakeup
如图所示,对于 Modem sleep 模式,可以被任意中断唤醒,而对于 deep sleep 模式,可以通过 RTC GPIO(注意:仅有 RTC GPIO 可以作为唤醒源,而非数字 GPIO),RTC 计时器,touch 以及
协处理器来唤醒

睡眠命令使用

ESP32 AT 包含了 model sleepdeep 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 模式

示例:

AT+SLEEP=0

modem sleep 可以被任意中断唤醒,所以需要在使用中很有可能会出现睡眠一会就又被唤醒到 Active 模式的情况。

猜你喜欢

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