RTL8763E 支持三种功耗模式: Power Down 模式, DLPS (Deep Lower Power State)模式和 Active 模 式。此文档将详细介绍 DLPS 模式。
PAD 配置
PAD 在 DLPS 模式下不会掉电,因此不需要保存其状态。但是为了防止漏电,在进 DLPS 时需要对 PAD 做如下设定:
1. 系统没有使用到的 PAD, 包括 package 没有出引脚的 PAD 必须设为 {SW mode, Input mode, Pull Down}。
2. 系统使用到的 PAD 必须设为{SW mode,Input mode,Pull Up/Pull Down},Pull Up 还是 Pull Down 取 决于外围电路。
3. 设置了唤醒功能的 PAD 需要设定为{SW mode,Input mode,Pull Up/Pull Down},Pull Up/Pull Down 状态要与 wakeup 信号的极性相反。
4. 退出 DLPS 时要把 PAD 设置恢复成原来的状态。
外设相关设定
如果 APP 中使用了某个外设 IO,在进出 DLPS 时,系统会自动保存、恢复其状态。但某些特殊的 IO 建议使用之前进行初始化,例如 8080,DMA,QSPI。
DLPS Mode API
int32_t power_mode_set(POWERMode mode); //使能/禁止 DLPS 模式 int32_t power_check_cb_register(POWERCheckFunc func) //向系统注册查询 callback,判断是否允许进入 DLPS 状 态
__STATIC_ALWAYS_INLINE void DLPS_IORegUserDlpsEnterCb(DLPS_IO_EnterDlpsCB func) //Enter dlps 回调
__STATIC_ALWAYS_INLINE void DLPS_IORegUserDlpsExitCb(DLPS_IO_ExitDlpsCB func) //Exit dlps 回调
extern void (*System_WakeUpPinEnable)(uint8_t Pin_Num, uint8_t Polarity); //配置 PAD 唤醒功能
System_WakeUpInterruptValue(Pin_Num) //查询某个 PAD 是否是唤醒系统的 PAD