MSP430学习笔记-低功耗模式

在中断处理子程序中可以间接访问堆栈数据从而修改这些控制位;在中断返回后单片机会以另一种功
耗方式继续运行。各控制位的功能如下:
SCG1: 当 SCG1 复位时,使能 SMCLK;
当 SCG1 置位时则禁止 SMCLK。
SCG0: 当 SCG0 复位时,直流发生器被激活;
只有当 SCG0 置位且 DCOCLK 信号未用于 MCLK 或 SMCLK,直流发生器才被禁止。
(编者按:直流发生器为 BCS 中的 DC Generator,也有翻译成数控发生器)
注意:当电流关闭时(SCG=0),DCO 的下次启动会有一些微秒级的延迟。
OscOff:当 OscOff 复位时,LFXT 晶体振荡器被激活;
当 OscOff 被置位且不用于 MCLK 或 SMCLK,LFXT 晶体振荡器才被禁止。
CPUOff:当 CPUOff 复位时,用于 CPU 的时钟信号 MCLK 被激活;
当 CPUOff 置为,MCLK 停止。

工作模式 控制位 CPU 状态、振荡器及时钟
活动模式(AM) SCG1=0, SCG0=0, OscOff=0, CPUOff=0 CPU 处于活动状态,MCLK 活动,SMCLK 活动,ACLK 活动
低功耗模式 0 (LPM0) SCG1=0 ,SCG0=0 ,OscOff=0 ,CPUOff=1 CPU 处于禁止状态,MCLK 禁止,SMCLK 活动,ACLK 活动
低功耗模式 1 (LPM1) SCG1=0 ,SCG0=1 ,OscOff=0 ,CPUOff=1 CPU 处于禁止状态,若 DCO 未用作 SMCLK 或 MCLK,则自流,发生器禁止,否则任保持活动。MCLK 禁止;SMCLK 活动;ACLK 活动
低功耗模式 2 (LPM2) SCG1=1 ,SCG0=0 ,OscOff=0 ,CPUOff=1 ,CPU 处于禁止状态 若 DCO 未用作 SMCLK 或 MCLK,则 DCO自动被禁止。MCLK 禁止;SMCLK 禁止;ACLK 活动
低功耗模式 3 (LPM3) SCG1=1 ,SCG0=1 ,OscOff=0 ,CPUOff=1 CPU 处于禁止状态,DCO 被禁止;自流发生器被禁止。,MCLK 禁止;SMCLK 禁止,ACLK 活动
低功耗模式 4 (LPM4) SCG1=ⅹ,SCG0=ⅹ,OscOff=1 ,CPUOff=1 CPU 处于禁止状态,DCO 被禁止;自流发生器被禁止。所有振荡器停止工作。MCLK 禁止;SMCLK 禁止;ACLK 活动

低功耗模块函数

进入 LPM0 模式,可以通过调用__low_power_mode_0();函数来完成。
进入 LPM1 模式,可以通过调用__low_power_mode_1();函数来完成。
进入 LPM2 模式,可以通过调用__low_power_mode_2();函数来完成。
进入 LPM3 模式,可以通过调用__low_power_mode_3();函数来完成。
进入 LPM4 模式,可以通过调用__low_power_mode_4();函数来完成。
退出 LPM 模式,则调用__low_power_mode_off_on_exit();来实现。

低功耗应用原则

n 最大化 LMP3 的时间,用 32.768KHZ 晶振作为 ACLK 时钟,DCO 用于 CPU 激活后突发短暂运行。
n 用接口模块代替软件驱动功能
n 用中断控制程序运行。
n 用可计算的分支代替标志位测试产生的分支。
n 用快速查表代替冗长的软件计算。
n 避免频繁的子程序和函数调用。
n 在必要时才开启外围模

你可能感兴趣的:(msp430)