睡眠模式
GR551x芯片支持工作模式、空闲模式、睡眠模式。
- 工作模式(Active Mode)
此模式下GR551x芯片的CPU处于全速运行,用户可以根据需求,合理的配置并使用外设。在此模式下,典型的情况是:
- MCU子系统(包括ARM处理器、SRAM和外设等)一直处于就绪或工作状态。
- 蓝牙子系统(包括RF收发机、通信内核等)一直处于就绪或工作状态。
- PMU子系统(包括DC/DC、LDO、RTC等)一直处于工作状态。
- 空闲模式(Idle Mode)
配置Idle模式是通过ARM系列自带的WFI/WFE(Wait For Interrupt/Event)指令实现。当调用此指令时,PC指针停留在WFI/WFE指令处,当系统发生IRQ或者Event来唤醒CPU时,PC指针指向下一条指令并继续执行;由于GR551x芯片的蓝牙业务均是基于中断,GR551x芯片执行蓝牙业务时,为了降低功耗,可使系统进入Idle模式;在没有蓝牙业务的时候,可以让蓝牙子系统进入断电模式,进一步节约功耗。
- 睡眠模式(Sleep Mode)
Sleep Mode模式指的是,当GR551x芯片没有蓝牙业务以及其他可处理的任务时,可以使系统进入WFI/WFE状态,为了进一步节约功耗,系统进入Sleep Mode;此模式下,XTAL32M时钟停止运行,以下模块处于断电状态:
- MCU子系统(Retention SRAM除外)
- 蓝牙子系统
在Sleep Mode下,系统只有Always-on(AON)模块的电源运行,以保证Retention SRAM中存储的数据不丢失,同时为具有唤醒功能的模块(如Bluetooth LE(BLE) Timer、Sleep Timer、Real Time Calendar、AON GPIO)供电。
用户可用SDK层的pwr_mgmt_mode_set()接口将GR551x芯片动态切换到所需模式。
void pwr_mgmt_mode_set(pwr_mgmt_mode_t pm_mode);