原文参考:《RSL10_hardware_reference.pdf》
在睡眠模式下操作时,RSL10将显示出最低的电流消耗。仅唤醒逻辑(请参阅第52页第5.4.4.1节“唤醒源”中的唤醒源)保持通电。带隙、调节器、RF块等被禁用。数字核心和存储器可以选择性地以低电压供电。
当进入睡眠模式时,会生成开机复位(POR),将数字核心中的所有寄存器设置为它们的默认值。只有在ACS中推断出的寄存器保持其值。
重要事项:如果有任何中断挂起,系统将无法进入睡眠模式。如果中断挂起当系统尝试进入睡眠模式时,系统将继续执行。这必须考虑在内当系统尝试进入睡眠模式时,使用可能挂起的中断的代码。
在ACS_ WAKEUP_,“ACS_WAKUP_CTRL”)必须在进入睡眠模式之前进行设置,因为核心没有通电。设置此位使确保垫子在睡眠期间保持配置(方向、状态等)。唤醒后,启动PROM代码为已执行。初始极板配置(进入睡眠模式前使用的配置)需要由重置PADS_RETENTION_EN位之前的软件,以避免切换焊盘。
以下子模式通常使用ACS的配置寄存器进行选择。
- 通过唤醒垫或DIO[3:0]垫上的外部事件唤醒(ACS_WAKEUP_TRL_DIO*_WAKEUP位)。这是最小功耗子模式。
- 通过RTC唤醒(ACS_WAKUP_CTRL_RTC_ALARM_WAKUP位),由内部RC振荡器或通过32kHz晶体振荡器。可以使用RTC对睡眠时间进行编程ACS的配置寄存器(参见第6.3.5节“实时时钟(RTC)”)。
- 通过基带定时器唤醒(ACS_Wakeup_CTR_BB_timer_Wakeup位)。
- ACS_WAKUP_CTRL_BOOT_FLASH_APP_REBOOT确定是否设置了重新启动模式标志。
- ACS_WAKUP_CTRL_RC_CLOCK_ULT控制启动RC振荡器是在3还是12 MHz。
- ACS_WAKUP_CTRL_RC_FTRIM_FLAG位配置振荡器是否被视为已校准。
- ACS_WAKUP_CTRL_BOOT_SELECT位字段控制系统是否尝试直接从闪存启动或者从存储器中的自定义位置。该字段还配置RF晶体振荡器是否已启动。
ACS_WAKUP_CTRL寄存器中的状态位,指示是否至少触发了唤醒事件自上次清除以来,由于特定原因而进行一次:
- DCDC_OVERLOAD_WAKEUP表示唤醒事件由DC-DC过载触发。
- WAKEUP_PAD_WAKEUP表示唤醒事件由唤醒板触发。
- RTC_ALARM_WAKEUP表示唤醒事件是由RTC达到报警值触发的。
- BB_TIMER_WAKEUP表示唤醒事件是由基带定时器达到指定值触发的超时。
- DIO*_WAKEUP表示唤醒事件由指定的DIO触发。
重置粘性标志的位:
- DCDC_OVERLOAD_CLEAR清除DC-DC过载唤醒状态位。
- WAKEUP_PAD_WAKEUP_CLEAR清除唤醒板唤醒状态位。
- RTC_ALARM_WAKEUP_CLEAR清除RTC警报唤醒状态位。
- BB_TIMER_WAKEUP_CLEAR清除基带定时器唤醒状态位。
- DIO*_WAKEUP_CLEAR清除DIO唤醒状态位,由*。
通过在ACS_PWR_MODES_CTRL寄存器中写入睡眠键进入睡眠模式将启动以下序列:
- 系统时钟停止。
- 除非VDDC保持调节器被启用,否则复位被断言。
- 所有存储器(闪存、PROM、RAM)都与核心(与门)隔离。
- 存储器断电。在存储器使能保持锁存器中使能的RAM被放入
- 保持模式,如果VDDM保持调节器已启用。
- 除非启用VDDC保持调节器,否则逻辑将与其电源断开。
- 除非启用VDDT保持调节器,否则基带定时器将与其电源断开。
- RF块与其电源(VDDRF和VDDPA)断开连接。请注意,RF块需要如果启用VDDC保持调节器,则手动隔离。
- VDDA、VDDC、VDDM、VDDRF和VDDPA调节器被禁用。
- VCC调节器/DC-DC转换器被禁用。
- 带隙被禁用。
唤醒时(通过RTC或键盘),以下顺序重新启动系统:
- RTC 8个LSB被捕获到寄存器中以记录唤醒时间2。带隙已启用。
- 当带隙电压准备就绪时,VCC调节器/DC-DC转换器被启用。
- 当VCC准备就绪时,根据配置寄存器设置其他调节器。
- 当VDDC、VDDM和VDDA就绪时,存储器重新通电。
- 应用唤醒DELAY(请参阅ACS_wakeup_CFG寄存器)。
- 取消了内存隔离。
- 时钟已启用。
- 数字复位被释放,启动PROM执行,除非VDDC保持调节器被启用。
要使用RTC计时器作为唤醒源,请参阅第6.3.5节“实时时钟(RTC)”。