一、前言
单火线对接天猫精灵中的BLE需要用到休眠,因为单火线为低功耗设备不能一直运行,天猫对单火线有了定义:
精灵低功耗(GLP)
如果模组要应用于下行数据接收的低延时低功耗设备(例如单火开关,电池供电的窗帘电机)时,可以采用精灵低功耗(Genie Low Power)方案,在开放平台上创建产品时在属性里选择精灵低功耗,这样精灵在给这个设备发送数据的时候,会在1.2s的时间内持续不断地发送数据。所以设备只需要每1.2s醒来60ms,可以在低功耗的情况下能及时接收到精灵下发的数据。
设备需要工作60ms休眠1.2是,如此交替进行。
二、BLE mesh中低功耗说明
8x5x MCU 正常执行程序时处于 working mode,此时工作电流在 3~7mA 之间。
如果需要省功耗需要进入低功耗模式。低功耗模式(low power mode)又称 sleep mode,包括 3 种:suspend mode、
deepsleep mode 和 deepsleep retention mode。
1) suspend mode
sleep mode 1
此时程序停止运行,类似一个暂停功能。MCU 大部分硬件模块断电,PM 模块维持正常工作。此时 IC 电流在 60~70 uA 之间。当 suspend 被唤醒后,程序继续执行。suspend mode下所有的Sram和analog register都能保存状态,绝大部分digital register 都保持状态。digital register 中存在少量会掉电的,包括:
a) baseband 电路中少量的 digital register,user 需要关注的是 API rf_set_power_level_index 设置的寄存器,本文档前面已经介绍,这个 API需要在每次 suspend 醒来后都重新调用一次。
b) 控制 Dfifo 状态的 digital register。对应 drivers/8258/dfifo.h 中的相关 API,user 在使用这些 API 的时候,必须确保每次 suspend wake_up 后都要重
新设置。
2) deepsleep mode
sleep mode 2
此时程序停止运行,MCU 绝大部分的硬件模块都断电,PM 硬件模块维持工作。在 deepsleep mode 下 IC 电流小于 1uA。如果内置 flash 的 standby 电流出现较大的 1uA 左右,可能导致测量到 deepsleep 为 1~2uA。deepsleep mode wake_up 时,MCU 将重新启动,类似于上电的效果,程序会重新开始进行初始化。Deepsleep mode 下,除了 analog register 上有少数几个register 能保存状态,其他所有 Sram、digital register、analog register 全部掉电丢失。
3) deepsleep retention mode
sleep mode 3
上面的 deepsleep mode,电流很低,但是无法存储 Sram 信息;suspend mode Sram 和 register 可以保持不丢,但是电流偏高。为了实现一些需要sleep时电流很低又要能够确保sleep唤醒后能立刻恢复状态的应用场景(比如 BLE 长睡眠维持连接),8x5x 增加了一种 sleep mode 3:deepsleep with Sram retention mode,简称 deepsleep retention(或 deep retention)。根据 Sram retention area 的大小不同,又分为 deepsleep retention 16K Sram 和 deepsleep retention 32K Sram。Deepsleepretention mode 也是一种 deepsleep,MCU 绝大部分的硬件模块都断电,PM 硬件模块维持工作。功耗是deepsleep mode 础上增加 retention Sram 消耗的电,电流在 2~3uA 之间。deepsleep mode wake_up 时,MCU 将重新启动,程序会重新开始进行初始化。Telink 上一代 826x 系列 IC,使用 suspend(电流在 10uA 以内)来实现 BLE长睡眠维持连接。而 8x5x 由于 suspend 电流偏大,需要使用 deepsleep retention mode 来代替实现。deepsleep retention mode 和 deepsleep mode 在 register 状态保存方面表现一致,几乎全部掉电。deepsleep retention mode 跟 deepsleep mode 相比,Sram的前 16K(或前 32K)可以保持不掉电,剩余的 Sram 全部掉电。
二、低功耗唤醒
三、唤醒运行逻辑