2. 低功耗唤醒

芯片在进入了低功耗后,可通过预先配置唤醒源进行唤醒。

本章节介绍低功耗唤醒配置步骤。

  1. 初始化唤醒口 -> “初始化唤醒口”;

  2. 进入低功耗前把对应唤醒口保护起来 -> “保护唤醒口”;

  3. 唤醒源获取 -> “唤醒源获取”;


2.1. 初始化唤醒口

不同芯片的初始化唤醒口略有不同,但大致流程一致:
  1. AD14 / AC104 / AD15 初始化唤醒口配置 -> “AD14 / AC104 / AD15 初始化唤醒口配置”;

  2. AD17 / AD18 初始化唤醒口配置 -> “AD17 / AD18 初始化唤醒口配置”;

  3. AD24 初始化唤醒口配置 -> “AD24 初始化唤醒口配置”;

备注

唤醒源配置的滤波参数为所有port统一使用,非单个port使用。


2.1.1. AD14 / AC104 / AD15 初始化唤醒口配置

"AD14 / AC104 / AD15唤醒源配置“

AD14 / AC104 / AD15唤醒源配置


2.1.2. AD17 / AD18 初始化唤醒口配置

"AD17_AD18唤醒源配置“

AD17_AD18唤醒源配置


2.1.3. AD24 初始化唤醒口配置

"AD24唤醒源配置“

AD24唤醒源配置


2.1.4. 保护唤醒口

芯片进入低功耗时会将所有I/O设置为高阻态;
所以配置好唤醒源后,还需要在进入低功耗流程中释放对应I/O引脚,以免对应IO状态被设置为高阻。
新添加的唤醒口需要单独释放,否则无法触发唤醒。

不同芯片保护唤醒口位置不一样,但是处理方式一样:

  1. AD14 / AC104 / AD15 保护唤醒口 -> “AD14 / AC104 / AD15 保护唤醒口”;

  2. AD17 / AD18 保护唤醒口 -> “AD17 / AD18 保护唤醒口”;

  3. AD24 保护唤醒口 -> “AD24 保护唤醒口”;


2.1.5. AD14 / AC104 / AD15 保护唤醒口

AD14N / AD15N / AC104N:
"AD14N_AD15N_AC104N低功耗释放新增唤醒引脚“

AD14N_AD15N_AC104N低功耗释放新增唤醒引脚


2.1.6. AD17 / AD18 保护唤醒口

AD17N / AD18:
"AD17 / AD18 低功耗释放新增唤醒引脚“

AD17 / AD18 低功耗释放新增唤醒引脚


2.1.7. AD24 保护唤醒口

AD24N:
"AD24N低功耗释放新增唤醒引脚“

AD24N低功耗释放新增唤醒引脚


2.2. 唤醒源获取

唤醒源获取功能只能获取softoff的唤醒源。

一、AD14N / AD15N / AC104N 唤醒源获取:

函数u32 power_wakeup_reason(void)

此函数实现获取softoff唤醒源信息,该接口需要在系统初始化sys_power_init()之前调用,否则获取的唤醒源不准确,其中参数:

1、返回值:唤醒端口(对应wakeup_param中的port成员);

二、AD17N / AD18N / AD24N 唤醒源获取

函数u8 is_wakeup_source(enum WAKEUP_REASON index)

此函数实现获取softoff唤醒源信息,外部可传参检查是否为本次唤醒的唤醒源;

获取softoff唤醒源需要在电源初始化power_early_flowing()之后调用,否则获取的唤醒源不准确,其中参数:

1、index:唤醒源;
2、返回值:1:传入的参数是本次的唤醒源,0:传入的参数非本次唤醒源;