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

[复制链接]
 楼主| 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左右,可以极大的延长设备的待机的时间。
badaab299042c90da6abead644c5fdf.png
进standby模式的方式和唤醒方式在用户手册中都有说明。
3d82689bc8915eacd8169609ae404b5.png
接下来就尝试下进入standby模式测试功耗和WKUP引脚唤醒。
进standby的函数在SDK中已经有封装好,直接调用就可以。
  1. void PMU_EnterSTANDBYMode(void)
  2. {
  3.     /* Clear Wake-up flag */
  4.     PMU->CTRL_B.WU**CLR = BIT_SET;
  5.     /* Select STANDBY mode */
  6.     PMU->CTRL_B.PDDSCFG = BIT_SET;
  7.     /* Set Cortex System Control Register */
  8.     SCB->SCR |= (uint32_t )0x04;
  9. #if defined ( __CC_ARM   )
  10.     __force_stores();
  11. #endif
  12.     /* Request Wait For Interrupt */
  13.     __WFI();
  14. }
WKUP引脚唤醒需要开PMU时钟和使能WKUP唤醒引脚.
  1. RCM_EnableAPB1PeriphClock((RCM_APB1_PERIPH_T)(RCM_APB1_PERIPH_PMU | RCM_APB1_PERIPH_BAKR));
  2. MU_EnableWakeUpPin();
standby唤醒芯片会复位从头开始运行代码,如果需要区分是上电启动还是从standby唤醒,可以通过唤醒标志位来判断。
  1. if(PMU_ReadStatusFlag(PMU_FLAG_SB)==BIT_SET)
  2. {
  3.      printf("standby WKUP\r\n");
  4.     PMU_ClearStatusFlag(PMU_FLAG_SB);
  5. }
代码流程可以参考附件。
下面就是进入standby模式的功耗。
9a5c0029e3ee07f5b446ccacf75db34.jpg
实测是2.8uA,说明极海手册的还是比较真实的。
APM32F402_403_SDK_standby_key.zip (4.51 MB, 下载次数: 3)
zhengshuai888 发表于 2025-5-14 08:38 来自手机 | 显示全部楼层
手册上标的参数一般不会偏差太大的,都是实测过的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

113

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部