STM32L4 移植 PM**STM32L4 的低功耗模式简介:**STM32L4系列 是 ST 公司推出的一款超低功耗的 Crotex-M4 内核的 MCU,支持多个电源管理模式,其中最低功耗 Shutdown 模式下,待机电流仅 30 nA。ST 公司 把 L4系列 的电管管理分为很多种,但各个模式的并非功耗逐级递减的特点,下面是各个模式之间的状态转换图:尽管 STM32L4系列 的低功耗模式很多,但本质上并不复杂,理解它的原理有助于我们移植驱动,同时更好的在产品中选择合适的模式。最终决定 STM32L4系列 系统功耗的主要是三个因素:稳压器(voltage regulator)、CPU 工作频率、芯片自身低功耗的处理,下面分别对三个因素进行阐述。
[table=98%]
[tr][td]稳压器[/td][td]应用场合[/td][/tr]
[tr][td]MR(Range 1)[/td][td]Vcore = 1.2V,用于运行模式、睡眠模式和停止模式0,MR 未 Vcore 域提供全功率[/td][/tr]
[tr=rgb(248, 248, 248)][td]MR(Range 2)[/td][td]Vcore = 1.0V,使用的场景同上[/td][/tr]
[tr][td]LPR[/td][td]用于低功耗运行模式、低功耗休眠模式、停止模式 1、停止模式2[/td][/tr]
[tr=rgb(248, 248, 248)][td]OFF[/td][td]Standby 和 Shutdown 模式下,MR 和 LPR 都被关闭[/td][/tr]
[/table]* CPU 工作频率通过降低 CPU 的主频达到降低功耗的目的:MR 工作在 Range 1 正常模式时,SYSCLK 最高可以工作在 80M;MR 工作在 Range 2 时,SYSCLK 最高不能超过 26 M;低功耗运行模式和低功耗休眠模式,即 Vcore 域由 LPR 供电,SYSCLK 必须小于 2M。
配置工程配置 PM 组件:配置内核选项:使用 PM 组件需要更大的 IDLE 线程的栈,这里使用了1024 字节
在空闲线程中会调用rt_system_power_manager接口来进入低功耗模式:
/**
[i=s] 本帖最后由 Aladdin-Wang 于 2020-5-28 17:04 编辑 [/i]
应用示例:
此程序主要实现开机后经过10秒后进入 STOP 模式,然后每经过5秒 SLEEP 模式和 STOP 模式互相切换,如此循环往复,同时经过一个循环后,切换 MCU 的运行频率,验证运行的稳定性。并且打开了回调和中断唤醒,在进入睡眠和唤醒后会分别熄灭和点亮LED灯,在睡眠时间可以通过外部中断唤醒:
/*
你好,请问为什么 DeepSleep 模式用外部按键中断唤醒不了呢?