在线时间4080 小时
UID3441752
注册时间2017-11-21
NXP金币748720
TA的每日心情 | 开心 2024-3-26 15:16 |
---|
签到天数: 266 天 [LV.8]以坛为家I
管理员
- 积分
- 32239
- 最后登录
- 2024-5-13
|
本文以KL03Z为例, 对Kinetis系列MCU的低功耗模式进行简介和综述, 介绍了Kinetis典型的时钟与电源工作模式的基本概念, 休眠与唤醒的基本方法, 以及各个模块在不同模式下的生存状况。
本文上篇介绍了时钟部分,这是下篇介绍电源部分。
电源模式
电源管理控制器模块PMC提供了多种供电选项,允许用户根据实际应用优化系统功耗。
电源管理的三个主要的模式是:
运行模式RUN,这里包括Normal Run和Very Low Power Run(VLPR)模式
等待模式WAIT,这里包括Normal Wait和Very Low Power Wait(VLPW)模式
掉电模式STOP,包括Normal Stop、Very Low Power Stop(VLPS)和Very Low Leakage Stop 3/1/0模式
每个运行模式(RUN和VLPR)都对应有一个等待模式(WAIT和VLPW)和掉电模式(STOP和VLPS)。等待模式对应Arm手册中描述的休眠模式(Sleep Modes),掉电模式对应Arm手册中深度休眠模式(Deep Sleep Modes)。
根据用户应用程序对掉电状态的多种需求,系统中提供了多种不同程度的掉电模式,从部分掉电到对某些控制逻辑电路/存储器的完全掉电。
在所有的掉电模式中,IO引脚的状态不发生变化,保持进入掉电模式之前的状态不变。
下表中列出了各种低功耗模式下的工作状态:
进入与退出低功耗模式
WFI指令是进入休眠模式(各种WAIT和STOP)的入口,使用WFI指令可以从运行模式切换到等待模式或掉电模式。
具体进入哪种低功耗模式,还需要在SMC的模式锁定寄存器SMCPMPROT, 模式控制寄存器SMCPMCTRL和掉电模式控制寄存器SMC_STOPCTRL预先设定。
void system_enter_sleep_modes(void)
{
__asm("WFI");
}
中断事件唤醒CPU退出休眠模式。
除了常规的WAIT和STOP模式,Kinetis MCU专门设计了更低功耗的VLLS(超低泄露掉电)各种模式, 它们的唤醒源只能是:
LLWS模块产生的唤醒事件。某些别的中断事件可以通过LLWS间接唤醒。但是具体在KL03Z上, LLWU只接收引脚中断事件。
LPTMR
CMP
SRTC/RTC
NMI_b引脚触发的不可屏蔽中断事件。
但如果RESET引脚和NMIb引脚的功能在FTFAFOPT的配置下功能被关闭,则它们也不能作为VLLS模式们的唤醒源。
从VLLS模式们唤醒后的恢复流程,完全按照复位流程来走。在这个阶段中,IO引脚时钟保持进入低功耗之前的状态,直到完全唤醒后,软件再次接管对引脚的控制权。
在多种VLLS模式中(VLLS0,VLLS1,VLLS3),只有VLLS3模式才能让RAM继续保持状态,而别的VLLS模式都会让RAM掉电,从而丢失其中保存的内容。
低功耗模式下各个外设模块的众生百态
下表中列写了每个模块在不同功耗模式下的存活状态:
FF=全功能。在VLPR和VLPW模式下,系统频率受限,但如果某个模块的功能未受限,也标注为FF。
Async operation(异步操作)=使用其它时钟源,只要时钟源有效,则为全功能。
static(静态)=模块寄存器状态和相关的存储器内容不丢失。
powered(供电)=存储器有电以保持数据
low power(低功耗)=存储器在低功耗供电状态下保持数据
OFF=模块无供电,模块在唤醒时处于复位状态。对于时钟,OFF表示停止。
wakeup=模块可以作为芯片的唤醒源。
在低功耗模式下的调试模块
在低功耗模式下,大多数模块保持原地不动状态或者彻底掉电,调试器此时不再能够获取它们的状态信息,不能进行调试。
对于调试器本身,进入低功耗模式时:
如果调试器本身也保持状态不变,调试端口将在退出低功耗模式时立刻投入工作,从而恢复调试工作状态。
如果调试器也掉电了,调试端口将在唤醒过程中重新复位,需要经过重新配置才能工作。
结束语
至此, 对Kinetis低功耗应用的综述介绍就已经完成。
以本文为基础,读者可以继续深究手册, 研读其中对具体细节功能的描述。同时, 也敬请期待后续低功耗应用的相关文章。
作者:苏勇 文章出处:恩智浦MCU加油站
|
|