USER GUIDE / CLOCK AND POWER / CPM POWER MANAGEMENT / SLEEP MODE
SLEEP 模式
SLEEP
SLEEP模式会关闭除RTCLK外的所有时钟,包括PLL和EXCLK,可以进一步降低时钟翻转带来的动态功耗。该模式下需要配置PSRAM进入自刷新状态以保存现场。
进入SLEEP模式前,软件应确保所有外设均未运行。进入睡眠模式的步骤如下:
1.将低功耗模式配置为SLEEP模式,LPCR.LPC= 2’b01;
2.若外接了32K RTC时钟,则配置OPCR.O1SE=1’b0,OPCR.ERCS=1’b1,即进入SLEEP模式后关闭24M OSC,使用32K RTC时钟;
3.若未外接32K RTC时钟,则需要配置OPCR.O1SE=1’b1,OPCR.ERCS=1’b0,即在进入 SLEEP模式后不关闭24M OSC,由EXCLK分频得到RTCLK;
4.配置某个GPIO为中断源,并关闭intc中对应中断源的mask,保证GPIO的电平/边沿中断可以正常唤醒SLEEP模式;
5.配置OPCR.REQ_MODE = 1’b0,在进入SLEEP模式前进行总线安全确认;
6.等待SRBC0.bit5/7/9/14/20/29=1’b1,保证总线后续不再访问SPRAM;
7.配置PSRAM进入自刷新模式,该流程需严格按照PSRAM手册进行;
8.执行 SLEEP 指令,硬件内部自动有序关闭除RTC CLK外的所有时钟,以及PLL和24M OSC;
9.保持SLEEP模式,等待GPIO中断唤醒;
10.GPIO中断触发,恢复到正常模式。