打印
[APM32F4]

APM32F402进入standby休眠与WKUP脚唤醒功耗测试

[复制链接]
344|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Alden|  楼主 | 2025-5-13 18:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Alden 于 2025-5-13 18:09 编辑

#技术资源# #申请原创#
上一篇帖子测试了APM32F402系列进入stop模式的流程和功耗。APM32F402进入stop休眠与按键唤醒功耗测试 - 极海MCU官方技术支持论坛:https://bbs.21ic.com/icview-3448560-1-1.html
接下来测试下APM32F402进入standby模式WKUP引脚唤醒和功耗情况。

Standby模式下MCU的功耗最低,参考APM32F402的数据手册,standby功耗也就是待机功耗在3uA左右,可以极大的延长设备的待机的时间。

进standby模式的方式和唤醒方式在用户手册中都有说明。

接下来就尝试下进入standby模式测试功耗和WKUP引脚唤醒。
进standby的函数在SDK中已经有封装好,直接调用就可以。
void PMU_EnterSTANDBYMode(void)
{
    /* Clear Wake-up flag */
    PMU->CTRL_B.WU**CLR = BIT_SET;
    /* Select STANDBY mode */
    PMU->CTRL_B.PDDSCFG = BIT_SET;
    /* Set Cortex System Control Register */
    SCB->SCR |= (uint32_t )0x04;
#if defined ( __CC_ARM   )
    __force_stores();
#endif
    /* Request Wait For Interrupt */
    __WFI();
}
WKUP引脚唤醒需要开PMU时钟和使能WKUP唤醒引脚.
RCM_EnableAPB1PeriphClock((RCM_APB1_PERIPH_T)(RCM_APB1_PERIPH_PMU | RCM_APB1_PERIPH_BAKR));
MU_EnableWakeUpPin();
standby唤醒芯片会复位从头开始运行代码,如果需要区分是上电启动还是从standby唤醒,可以通过唤醒标志位来判断。
 if(PMU_ReadStatusFlag(PMU_FLAG_SB)==BIT_SET)
{
     printf("standby WKUP\r\n");
    PMU_ClearStatusFlag(PMU_FLAG_SB);
}
代码流程可以参考附件。
下面就是进入standby模式的功耗。

实测是2.8uA,说明极海手册的还是比较真实的。
APM32F402_403_SDK_standby_key.zip (4.51 MB)

使用特权

评论回复
沙发
zhengshuai888| | 2025-5-14 08:38 | 只看该作者
手册上标的参数一般不会偏差太大的,都是实测过的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

102

帖子

2

粉丝