.. _低功耗唤醒: 低功耗唤醒 ========================================= 芯片在进入了低功耗后,可通过预先配置唤醒源进行唤醒。 本章节介绍低功耗唤醒配置步骤。 #. 初始化唤醒口 -> “:ref:`初始化唤醒口`”; #. 进入低功耗前把对应唤醒口保护起来 -> “:ref:`保护唤醒口`”; #. 唤醒源获取 -> “:ref:`唤醒源获取`”; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _初始化唤醒口: 初始化唤醒口 ##################################### 不同芯片的初始化唤醒口略有不同,但大致流程一致: #. AD14 / AC104 / AD15 初始化唤醒口配置 -> “:ref:`AD14 / AC104 / AD15 初始化唤醒口配置`”; #. AD17 / AD18 初始化唤醒口配置 -> “:ref:`AD17 / AD18 初始化唤醒口配置`”; #. AD24 初始化唤醒口配置 -> “:ref:`AD24 初始化唤醒口配置`”; .. note:: 唤醒源配置的滤波参数为所有port统一使用,非单个port使用。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _AD14 / AC104 / AD15 初始化唤醒口配置: AD14 / AC104 / AD15 初始化唤醒口配置 ***************************************** .. image:: wkup_param.png :alt: "AD14 / AC104 / AD15唤醒源配置“ :align: center .. centered:: AD14 / AC104 / AD15唤醒源配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _AD17 / AD18 初始化唤醒口配置: AD17 / AD18 初始化唤醒口配置 ********************************* .. image:: AD17_AD18_wkup.png :alt: "AD17_AD18唤醒源配置“ :align: center .. centered:: AD17_AD18唤醒源配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _AD24 初始化唤醒口配置: AD24 初始化唤醒口配置 ********************************* .. image:: AD24_wkup.png :alt: "AD24唤醒源配置“ :align: center .. centered:: AD24唤醒源配置 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _保护唤醒口: 保护唤醒口 ********************************* | 芯片进入低功耗时会将所有I/O设置为高阻态; | 所以配置好唤醒源后,还需要在进入低功耗流程中释放对应I/O引脚,以免对应IO状态被设置为高阻。 | 新添加的唤醒口需要单独释放,否则无法触发唤醒。 不同芯片保护唤醒口位置不一样,但是处理方式一样: #. AD14 / AC104 / AD15 保护唤醒口 -> “:ref:`AD14 / AC104 / AD15 保护唤醒口`”; #. AD17 / AD18 保护唤醒口 -> “:ref:`AD17 / AD18 保护唤醒口`”; #. AD24 保护唤醒口 -> “:ref:`AD24 保护唤醒口`”; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _AD14 / AC104 / AD15 保护唤醒口: AD14 / AC104 / AD15 保护唤醒口 ********************************* *AD14N / AD15N / AC104N:* .. image:: ad14_15_104_softoff_wkup_io.png :alt: "AD14N_AD15N_AC104N低功耗释放新增唤醒引脚“ :align: center .. centered:: AD14N_AD15N_AC104N低功耗释放新增唤醒引脚 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _AD17 / AD18 保护唤醒口: AD17 / AD18 保护唤醒口 ********************************* *AD17N / AD18:* .. image:: ad17_softoff_wkup_io.png :alt: "AD17 / AD18 低功耗释放新增唤醒引脚“ :align: center .. centered:: AD17 / AD18 低功耗释放新增唤醒引脚 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _AD24 保护唤醒口: AD24 保护唤醒口 ********************************* *AD24N:* .. image:: AD24_protect_io.png :alt: "AD24N低功耗释放新增唤醒引脚“ :align: center .. centered:: AD24N低功耗释放新增唤醒引脚 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _唤醒源获取: 唤醒源获取 ##################################### 唤醒源获取功能只能获取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:传入的参数非本次唤醒源;