NRF52832---SYSTEM_ON&SYSTEM_OFF

发布时间 2023-12-13 16:02:54作者: kkk123456**

Nordic的低功耗有两种模式:System OffSystem On

SYSTEM_ON

System on状态有持续延迟低功率子模式当系统空闲进入 System On 模式时,默认情况下将处于低功耗子模式,通常最低功耗为 1.9uA (nRF52832) 1.5uA(nRF52840),包括 LFCLK RTC。这是连接事件之间的正常状态。CPU 在计时器、外围设备或pin中断时重新启动。

SYSTEM_OFF

深省电模式,工作电流为 300nA (nRF52832) 400nA (nRF52840)在该模式下,系统的内核和所有在运行的任务都会停止,也就是说时钟也停止,相当于关机状态。可以直接控制 POWER 相关寄存器使系统进入 System OFF 模式(NRF_POWER->SYSTEMOFF = 1; ),也可以通过API函数(sleep_mode_enter() nrf_pwr_mgmt_run() 此函数执行 __WFE() 指令进入睡眠前清除所有事件),可以参考 SDK 中的 nrf_pwr_mgt 例子,系统进入 System OFF 模式会保留 GPIO 之前的状态,包括 GPIO 的输入/输出、I2C 总线、SPI 总线等,所以在进入 System OFF 模式前应该将 GPIO 都释放掉,使用 nrf_gpio_cfg_default(pin)释放 GPIO,同时,如果有 I2C SPI 等总线外设也需要释放掉;可以通过复位、GPIO 中断或 NFC 信号(增加100nA)进行唤醒 。从 System OFF 模式中唤醒程序会发生复位,参考 832 product spec 文档(Nordic Semiconductor Infocenter

 我使用的低功耗模式

此项目中选择的低功耗模式是System On的低功率子模式。

当进入System on低功率子模式,任何中断都能唤醒。但是在BLE中,需要蓝牙事件才能唤醒。(蓝牙事件比如:蓝牙通信)

在While循环里执行idle_state_handle();,当没有蓝牙通信事件时,会一直处于睡眠状态。