目录
- 硬知识
- 低功耗模式
- MSP430单片机各工作模式下的电流消耗
- API
- 进入低功耗模式
- 退出低功耗模式
平台:Code Composer Studio 10.3.1
MSP430F5529 LaunchPad™ Development Kit
(MSP‑EXP430F5529LP)
硬知识
低功耗模式
MSP430单片机具有7种低功耗模式(LPM0~4、LPM3.5和LPM4.5,并非全部系列都具有),通过不同程度的休眠,可降低系统功耗。在任何一种低功耗模式下,CPU都被关闭,程序将停止执行,直到被中断唤醒或单片机复位。因此在进入任何一种低功耗模式之前,都必须设置好唤醒CPU的中断条件、打开中断允许位、等待被唤醒,否则程序将有可能永远停止运行。
MSP430单片机具有3种时钟信号:辅助时钟ACLK、子系统时钟SMCLK、主系统时钟MCLK。MSP430单片机能够实现低功耗的根本原因是在不同的低功耗模式下关闭不同的系统时钟,关闭的系统时钟越多休眠模式越深。具体是通过CPU状态寄存器SR中的SCG1、SCG2、OSCOFF和CPUOFF这4个控制位的配置来关闭系统时钟。通过配置这些控制位,可使MSP430单片机从活动模式进入到相应的低功耗模式。再通过中断方式从各种低功耗模式回到活动模式。各模式之间的转换关系如图所示。
MSP430工作模式列表
MSP430单片机各工作模式下的电流消耗
活动模式下流入VCC的电流(不包含外部电流)
低功耗模式下流入VCC的电流(不包含外部电流)
MSP430单片机低功耗模式与时钟系统息息相关,从本质上来说,不同的低功耗模式是通过关闭不同的系统时钟来实现的。关闭的系统时钟越多,MSP430单片机所处的低功耗模式越深,功耗越低。大家可充分利用MSP430单片机时钟系统和低功耗结构编出高效稳定的程序代码,且使单片机功耗降至最低。
API
进入低功耗模式
LPM0; // 进入低功耗模式0
__bis_SR_register(LPM0_bits); // 进入低功耗模式0
LPM1; // 进入低功耗模式1
__bis_SR_register(LPM1_bits); // 进入低功耗模式1
LPM2; // 进入低功耗模式2
__bis_SR_register(LPM2_bits); // 进入低功耗模式2
LPM3; // 进入低功耗模式3
__bis_SR_register(LPM3_bits); // 进入低功耗模式3
LPM4; // 进入低功耗模式4
__bis_SR_register(LPM4_bits); // 进入低功耗模式4__bis_SR_register(LPMx_bits + GIE); // 常用,进低功耗模式x,启用中断(x=0~4)
退出低功耗模式
LPM0_EXIT; // 退出低功耗模式0
__bic_SR_register_on_exit(LPM0_bits); // 退出低功耗模式0
LPM1_EXIT; // 退出低功耗模式1
__bic_SR_register_on_exit(LPM1_bits); // 退出低功耗模式1
LPM2_EXIT; // 退出低功耗模式2
__bic_SR_register_on_exit(LPM2_bits); // 退出低功耗模式2
LPM3_EXIT; // 退出低功耗模式3
__bic_SR_register_on_exit(LPM3_bits); // 退出低功耗模式3
LPM4_EXIT; // 退出低功耗模式4
__bic_SR_register_on_exit(LPM4_bits); // 退出低功耗模式4