E103-W10提供三种睡眠模式,用户可以结合具体需求选择睡眠模式并进行配置。三种睡眠模式分别是Modem-sleep、Light-sleep、Deep-sleep。
1. Modem-sleep
1.1. 特性
E103-W10的Modem-sleep仅工作在Station模式下,连接路由器后生效。E103-W10通过Wi-Fi的DTIM Beacon机制与路由器保持连接。一般情况下,路由器的 DTIM Beacon间隔为100ms~1000ms。
在Modem-sleep模式下,E103-W10会在两次DTIM Beacon间隔时间内,关闭Wi-Fi模块电路,达到省电效果,在下次Beacon到来前自动唤醒。睡眠时间由路由器的DTIM Beacon时间决定。睡眠同时可以保持与路由器的Wi-Fi连接,并通过路由器接收来自手机或者服务器的交互信息。
1.2. 测试Modem-sleep功耗
1. 设置E103-W10为Station模式,如图所示。
2. 设置睡眠模式为Modem-sleep,出厂默认也是该睡眠模式,如图所示。
3. 连接到路由器,以Wi-Fi名称为"E880-IR01",密码为"JSZXE880"的路由器为例,如图所示。
4. 连接后,E103-W10自动进入Modem-sleep睡眠模式,也会自动唤醒,如图所示,最大电流69.8mA,最小电流14.4mA,平均电流17.5mA。
5. 进行TCP client单连接,如图所示。
6. 此时电流消耗如所示,平均电流增大至19mA。如图所示。
7. E103-W10进入透传模式,每隔1秒发送20字节的电流消耗,如图所示。
2. Light-sleep
2.1. 特性
Light-sleep的工作模式与Modem-sleep相似,仅工作在Station模式下,连接路由器后生效。station模式不同的是,除了关闭Wi-Fi模块电路以外,在Light-sleep模式下,还会关闭时钟并暂停内部CPU,比Modem-sleep功耗更低。
在Light-sleep模式下,CPU在暂停状态下不会响应来自外围硬件接口的信号和中断,因此需要通过外部GPIO信号将E103-W10唤醒,硬件唤醒过程大约为3ms。由于Wi-Fi初始化过程需要大约1ms,所以建议用户5ms之后再对芯片进行操作。
2.2. 测试Light-sleep功耗
1. 设置E103-W10为station模式,如图所示。
2. 设置睡眠模式为Light-sleep,如图所示。
3. 设置Light-sleep睡眠模式的唤醒源和唤醒引脚,如图所示。
相关指令如下,以GPIO唤醒为例:
AT+SLEEPWKCFG=0,1000 //定时器唤醒,1000ms后唤醒
AT+SLEEPWKCFG=2,12,0 //GPIO 12唤醒,低电平
4. 连接到路由器,以Wi-Fi名称为"E880-IR01",密码为"JSZXE880"的路由器为例,如图所示。
5. 连接成功后,CPU处于空闲状态时,会自动进入Light-sleep状态。此时发送AT指令等操作可能失败。此时的功耗如图所示,平均电流约8.5mA。
6. 将GPIO 12保持低电平,模块被唤醒。将GPIO 12保持高电平,模块会自动进入Light-sleep状态。
3. Deep-sleep
3.1. 特性
相对于其他两种模式,系统无法自动进入deep sleep,需要由用户发送AT指令AT+GSLP来控制。在该模式下,芯片会断开所有Wi-Fi连接与数据连接,进入睡眠模式,只有RTC模块仍然工作,负责芯片的定时唤醒。
3.2. 测试Deep-sleep功耗
1. 先将E103-W10的GPIO 16与RST短接,用于Deep-sleep自动唤醒。
2. 无论E103-W10处于什么Wi-Fi模式,Wi-Fi是否连接,使其进入Deep-sleep,如图所示。
将AT+GSLP=900000,使模块长期处于深度睡眠,便于测试,此时功耗如图所示,平均电流约267uA。
3. 自动唤醒
进入Deep-sleep 10秒后,模块通过GPIO 16给RST引脚一个低电平脉冲,模块即可被重启并被唤醒,如图所示。
4. 外部唤醒
在Deep-sleep状态下,可以通过外部IO在模块RST引脚上产生一个低电平脉冲,模块即可被重启并被唤醒。