ESP8266 Sleep

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(Light Sleep)
(Light Sleep)
第63行: 第63行:
 
<source lang=cpp>
 
<source lang=cpp>
 
void gpio_pin_wakeup_enable(uint32 i, GPIO_INT_TYPE intr_state);
 
void gpio_pin_wakeup_enable(uint32 i, GPIO_INT_TYPE intr_state);
</source>
 
  
 
* uint32 i                  唤醒功能的 IO 序号
 
* uint32 i                  唤醒功能的 IO 序号
 
* GPIO_INT_TYPE intr_state  唤醒的触发模式 GPIO_PIN_INTR_LOLEVEL/GPIO_PIN_INTR_HILEVEL
 
* GPIO_INT_TYPE intr_state  唤醒的触发模式 GPIO_PIN_INTR_LOLEVEL/GPIO_PIN_INTR_HILEVEL
 +
</source>
  
  

2015年10月13日 (二) 16:22的版本

目录

1 概述

ESP8266 系列芯片提供以下三种可配置的睡眠模式,您可以结合具体需求选择和配置:

  • Modem-sleep
  • Light-sleep
  • Deep-sleep


三种模式的区别如下:

Esp8266-sleep.jpg



2 Modem Sleep

2.1 特性

目前 ESP8266 的 Modem-sleep 仅工作在 Station 模式下,连接路由器后生效。ESP8266 通过 Wi-Fi 的 DTIM Beacon 机制与路由器保持连接 (一般路由器的 DTIM Beacon 间隔为 100 ms ~ 1000 ms)


在 Modem-sleep 模式下,ESP8266 会在两次 DTIM Beacon 间隔时间内,关闭 Wi-Fi 模块电路,达到省电效果,在下次 Beacon 到来前自动唤醒。睡眠时间由路由器的 DTIM Beacon 时间决定。睡眠同时可以保持与路由器的 Wi-Fi 连接,并通过路由器接受来⾃自手机或者服务器的交互信息。



2.2 SDK API

通过以下接口进入 Modem-sleep 模式:

wifi_set_sleep_type(MODEM_SLEEP_T)

注意:在 Modem-sleep 模式下,系统可以自动被唤醒,无需配置接口



2.3 应用

Modem-sleep 一般用于必须打开芯片 CPU 的应用场景,例如 PWM 彩灯,需要 CPU 实时控制



3 Light Sleep

Light-sleep 的工作模式与 Modem-sleep 相似,不同的是,除了关闭 Wi-Fi 模块电路以外,在 Light-sleep 模式下,还会关闭时钟并暂停内部 CPU,比 Modem-sleep 功耗更低


SDK API,通过以下接口进入 Light-sleep 模式:

wifi_set_sleep_type(LIGHT_SLEEP_T)

在 Wi-Fi 连接后,并且 CPU 处于空闲状态时,会自动进入 Light-sleep 状态


在 Light-sleep 模式下,CPU 在暂停状态下不会响应来自外围硬件接口的信号与中断,因此需要配置通过外部 GPIO 信号将 ESP8266 唤醒,唤醒过程小于 3 ms

通过 GPIO 唤醒只能配置为电平触发模式,接口如下:

void gpio_pin_wakeup_enable(uint32 i, GPIO_INT_TYPE intr_state);

* uint32 i                   唤醒功能的 IO 序号
* GPIO_INT_TYPE intr_state   唤醒的触发模式 GPIO_PIN_INTR_LOLEVEL/GPIO_PIN_INTR_HILEVEL


Light-sleep 模式可用于需要保持与路由器的连接,可以实时响应路由器发来的数据的场合。并且在未接收到命令时,CPU 可以处于空闲状态。⽐比如 Wi-Fi 开关的应用,大部分时间 CPU 都是空闲的,直到收到控制命令,CPU 才需要进行 GPIO 的操作


注意:若系统应用中有小于 DTIM Beacon 间隔时间的循环定时,系统将不能进入 Light-sleep 模式



4 Deep Sleep



5 参考



















个人工具
名字空间

变换
操作
导航
工具箱