2.6. 唤醒系统
PMU 结构独立于系统,可以在系统睡眠或者软关机的情况下继续工作,提供多种唤醒功耗,所有PMU唤醒信号通过P33传给主系统。
!["运行与低功耗“](../../_images/wkup.png)
运行与低功耗
rtc,有以下唤醒源(本芯片没有硬件rtc):
enum {
R3_WKUP_SRC_ALM = 0, //闹钟唤醒
R3_WKUP_SRC_PORT = 3, //rtc io唤醒
R3_WKUP_SRC_256HZ, //频率256HZ唤醒
R3_WKUP_SRC_64HZ, //频率64HZ唤醒
R3_WKUP_SRC_2HZ, //频率2HZ唤醒
R3_WKUP_SRC_1HZ, //频率1HZ唤醒
};
p33有以下唤醒源:
enum {
P3_WKUP_SRC_PCNT_OVF = 0, //pcnt计数溢出
P3_WKUP_SRC_PORT_EDGE, //普通io唤醒
P3_WKUP_SRC_ANA_EDGE, //模拟信号唤醒(本芯片没有模拟信号唤醒)
P3_WKUP_SRC_VDDIO_LVD = 4, //LVD唤醒
};
2.6.1. 查唤醒源
2.6.1.1. 软关机查询唤醒源
- power_wakeup_reason_dump
软关机复位之后打印及记录唤醒源,调用此函数之后才能够使用判断唤醒源接口。
原型:
void power_wakeup_reason_dump();
2.6.1.2. is_wakeup_source
软关机判断是否为指定唤醒源。
原型:
enum WAKEUP_REASON {
//WAKEUP
PWR_WK_REASON_PLUSE_CNT_OVERFLOW, //pcnt唤醒复位
PWR_WK_REASON_P11, //P11唤醒复位
PWR_WK_REASON_LPCTMU, //触摸唤醒复位
PWR_WK_REASON_LPNFC, //NFC唤醒复位
PWR_WK_REASON_PORT_EDGE, //数字io输入边沿唤醒复位
PWR_WK_REASON_ANA_EDGE, //模拟io输入边沿唤醒复位(本芯片不支持模拟io唤醒)
PWR_WK_REASON_VDDIO_LVD, //vddio lvd唤醒复位
PWR_WK_REASON_EDGE_INDEX0, //p33 index0 io唤醒复位
PWR_WK_REASON_EDGE_INDEX1, //p33 index1 io唤醒复位
PWR_WK_REASON_EDGE_INDEX2, //p33 index2 io唤醒复位
PWR_WK_REASON_EDGE_INDEX3, //p33 index3 io唤醒复位
PWR_WK_REASON_EDGE_INDEX4, //p33 index4 io唤醒复位
PWR_WK_REASON_EDGE_INDEX5, //p33 index5 io唤醒复位
PWR_WK_REASON_EDGE_INDEX6, //p33 index6 io唤醒复位
PWR_WK_REASON_EDGE_INDEX7, //p33 index7 io唤醒复位
PWR_WK_REASON_EDGE_INDEX8, //p33 index8 io唤醒复位
PWR_WK_REASON_EDGE_INDEX9, //p33 index9 io唤醒复位
PWR_WK_REASON_EDGE_INDEX10, //p33 index10 io唤醒复位
PWR_WK_REASON_EDGE_INDEX11, //p33 index11 io唤醒复位
PWR_ANA_WK_REASON_FALLINIG_EDGE_LDOIN, //LDO5V上升沿唤醒复位
PWR_ANA_WK_REASON_RISING_EDGE_LDOIN, //LDO5V下降沿唤醒复位
PWR_ANA_WK_REASON_FALLING_EDGE_VBATCH, //VBATCH上升降沿唤醒复位
PWR_ANA_WK_REASON_RISING_EDGE_VBATCH, //VBATCH下降沿唤醒复位
PWR_RTC_WK_REASON_ALM, //RTC闹钟唤醒复位
PWR_RTC_WK_REASON_256HZ, //RTC 256Hz时基唤醒复位
PWR_RTC_WK_REASON_64HZ, //RTC 64Hz时基唤醒复位
PWR_RTC_WK_REASON_2HZ, //RTC 2Hz时基唤醒复位
PWR_RTC_WK_REASON_1HZ, //RTC 1Hz时基唤醒复位
PWR_WKUP_REASON_RESERVE = 63,
};
u8 is_wakeup_source(enum WAKEUP_REASON index);
参数:
index
唤醒源
返回值
是否为指定唤醒源
2.6.1.3. 运行状态唤醒源
系统在运行状态或sleep模式唤醒之后,能够进入中断回调注册的函数,具体配置回调函数的方法在对应模块章节,支持以下模块。
边沿唤醒
rtc唤醒