当前位置:文档之家› 第三章 MSP430基本外设-低功耗模式

第三章 MSP430基本外设-低功耗模式


§3.2 单 片 机 技 术 与 应 用
低功耗模式
MSP430单片机能够实现低功耗的根本原因是在不同 的低功耗模式下关闭不同的系统时钟,关闭的系统时 钟越多休眠模式越深。 通过CPU状态寄存器SR中的SCG1、SCG0、 OSCOFF和CPUOFF这4个控制位的配置来关闭系统 时钟,使MSP430单片机从活动模式进入到相应的低 功耗模式。再通过中断方式从各种低功耗模式回到活 动模式。
任意中断均可唤醒处于低功耗模式的MSP430,使 MSP430切换到AM活动模式,即退出低功耗模式 。
单 片 机 技 术 与 应 用
在低功耗模式下,所有的I/O引脚和RAM寄存器将保 持不变。可以通过开中断后用中断事件来唤醒LMP0 到LMP4。
系统响应中断的过程
硬件自动中断当前服务
PC入栈 SR入栈 中断向量赋给PC GIE、CPUOFF、OSCOFF和SCG1清除 IFG标志位清除(单源中断标志)
单 片 机 技 术 与 应 用
在上述处理过程中,堆栈的变化情况,如下图所示:
堆栈初始状态
入栈时PC和SR
出栈前PC和SR
例:如果期待主程序在中断返回之后继续执行某些操
单 片 机 技 术 与 应 用
作,可以在中断处理子程序中改变SR的值为活动模式
; 主程序 …..; 初始化操作开始 …… ……; 初始化完毕 BIS #GIE+CPUOFF,SR ; 主程序中设置低功耗模式0 L1; 操作1 L2; 操作2 …… ; 中断子程序 ……; 中断处理开始 …… ……;中断处理结束 BIC #0000h,0(SP); 设置SR为活动模式 RETI; 中断返回,系统进入活动模式 ……
CPU和时钟状态 CPU活动MCLK活动 SMCLK活动ACLK活动 DCO可用 FLL可用 CPU禁止MCLK禁止 SMCLK活动ACLK活动 DCO可用 FLL可用 CPU禁止MCLK禁止 SMCLK活动ACLK活动 DCO可用 FLL禁止 CPU禁止MCLK禁止 SMCLK禁止ACLK活动 DCO可用 FLL禁止 CPU禁止MCLK禁止 SMCLK禁止ACLK活动 DCO可用FLL禁止 CPU禁止 所有时钟禁止
唤醒中断源 定 时 器 、 ADC 、 DMA 、 UART 、 WDT 、 I/O 、比较器、外部中断、 RTC、串行通信、其他外设 定 时 器 、 ADC 、 DMA 、 UART 、 WDT 、 I/O 、比较器、外部中断、 RTC、串行通信、其他外设 定 时 器 、 ADC 、 DMA 、 UART 、 WDT 、 I/O 、比较器、外部中断、 RTC、串行通信、其他外设 定 时 器 、 ADC 、 DMA 、 UART 、 WDT 、 I/O 、比较器、外部中断、 RTC、串行通信、其他外设 定 时 器 、 ADC 、 DMA 、 UART 、 WDT 、 I/O 、比较器、外部中断、 RTC、串行通信、其他外设 复位信号、外部中断
单 片 机 技 术 与 应 用
进入和退出低功耗模式(LPMx.5)
当进入LPMx.5(LPM3.5和LPM4.5)模式时,电源管 理模块(PMM)的电压调节器也停止工作。所有的 RAM、寄存器及I/O口的配置数据都将丢失,所有的 I/O口被锁定在当前状态。 LMP4.5可以通过上电、复位或具体的I/O口来唤醒。 在LPM3.5模式下,除了可以用LPM4.5模式下的唤醒 事件外,还可用RTC唤醒事件来唤醒。 从LPMx.5模式下退出都会产生一次BOR事件。因此, 在退出LPMx.5模式后,I/O口的状态将一直保持锁定 状态直到应用程序解除锁定,用户应根据需要重新配 置芯片。
例:系统初始化完毕之后工作于低功耗模式0,中断
单 片 机 技 术 与 应 用
事件触发到活动模式,中断处理结束后进入到低功 耗模式3。
; 主程序 …..; 初始化操作开始 …… ……; 初始化完毕 BIS #GIE+CPUOFF,SR ; 主程序中设置低功耗模式0 …...; 主程序在这里停止 ; 中断子程序 ……; 中断处理开始 …… ……;中断处理结束 BIS #GIE+CPUOFF+SCG1+SCG0,0(SP); 设置SR为低功耗模式3 RETI; 中断返回 ; 系统进入低功耗模式3 ……
7 6 5 4 3 SCG1 SCG0 OSCOFF CPUOFF GIE
单 片 机 技 术 与 应 用
§3.2.2 进入和退出低功耗模式
在活动模式下,按低功耗模式设定SR中的控制位 ,MSP430就进入设定的低功耗模式,此时CPU 寄存器的值保持不变,有关的模块也因为相应的 时钟源被禁止而被关闭。
§3.2 单 片 机 技 术 与 应 用
低功耗模式
MSP430系列单片机最主要的特征就是低功耗,该特 性适合应用于采用长时间电池供电的工作场合。
• MSP430系统使用不同的时钟信号:ACLK、MCLK和 SMCLK。这3种不同频率的时钟输出给不同的模块,从而 更合理地利用系统的电源,实现整个系统的超低功耗。 • MSP430单片机具有7种低功耗模式(LPM0~4、LPM3.5 和LPM4.5,后两种模式并非全部系列都具有),通过不同 程度的休眠,可降低系统功耗。
单 片 机 技 术 与 应 用
活动模式 (AM) 低功耗模式0 (LPM0) 低功耗模式1 (LPM1) 低功耗模式2 (LPM2) 低功耗模式3 (LPM3) 低功耗模式4 (LPM4) 低功耗模式3.5 (LPM3.5) 低功耗模式4.5 (LPM4.5)
SCG1=1, SCG0=1, 当PMMREGOFF = 1,无 OSCOFF=1, RAM保持,RTC可以启用 CPUOFF=1 (仅限MSP430F5xx)
低功耗模式定义
单 片 机 技 术 与 应 用
#define #define #define #define #define
LPM0_bits LPM1_bits LPM2_bits LPM3_bits LPM4_bits
(CPUOFF) (SCG0+CPUOFF) (SCG1+CPUOFF) (SCG1+SCG0+CPUOFF) (SCG1+SCG0+OSCOFF+CPUOFF)
§3.2.1 低功耗工作模式
单 片 机 技 术 与 应 用
工作模式、控制位 和时钟的活动状态 之间的相互关系。
标志位 设置
表示中断
该模式下哪些 时钟关闭,哪 些时钟开启
工作模式
控制位 SCG1=0, SCG0=0, OSCOFF=0, CPUOFF=0 SCG1=0, SCG0=0, OSCOFF=0, CPUOFF=1 SCG1=0, SCG0=1, OSCOFF=0, CPUOFF=1 SCG1=1, SCG0=0, OSCOFF=0, CPUOFF=1 SCG1=1, SCG0=1, OSCOFF=0, CPUOFF=1 SCG1=1, SCG0=1, OSCOFF=1, CPUOFF=1
§3.2.3 低功耗应用原则
单 片 机 技 术 与 应 用
一般的低功耗原则
用中断控制程序运行。 用可计算的分支代替标志位测试产生的分支。 用快速查表代替冗长的软件计算。 在冗长的软件计算中使用单周期的CPU寄存器。
避免频繁的子程序和函数调用。
尽可能直接用电池供电。
§3.2.3 数
__bis_SR_register(LPM0_bits); 或LPM0; // 进入低功耗模式0 __bis_SR_register(LPM1_bits); 或LPM1; // 进入低功耗模式1 __bis_SR_register(LPM2_bits); 或LPM2; // 进入低功耗模式2 __bis_SR_register(LPM3_bits); 或LPM3; // 进入低功耗模式3 __bis_SR_register(LPM4_bits); 或LPM4; // 进入低功耗模式4 __bic_SR_register_on_exit(LPM0_bits);或LPM0_EXIT; // 退出低功耗模式0 __bic_SR_register_on_exit(LPM1_bits);或LPM1_EXIT; // 退出低功耗模式1 __bic_SR_register_on_exit(LPM2_bits);或LPM2_EXIT; // 退出低功耗模式2 __bic_SR_register_on_exit(LPM3_bits);或LPM3_EXIT; // 退出低功耗模式3 __bic_SR_register_on_exit(LPM4_bits);或LPM4_EXIT;// 退出低功耗模式4 __bis_SR_register(LPMx_bits + GIE);// 常用,进低功耗模式x,启用中断(x=0~4)
单 片 机 技 术 与 应 用
在设计外设时还有一些常规原则
将不用的FETI输入端连接到VSS。 JTAG端口TMS、TCK和TDI不要连接到VSS。 CMOS输入端不能有浮空节点,将所有输入端接适 当的电平。
不论对于内核还是对于各外围模块,选择尽可能低 的运行频率,如果不影响功能应设计自动关机。
SCG1、SCG0、 OSCOFF、CPUOFF
活动模式
中断
低功耗模式
单 片 机 技 术 与 应 用
§3.2
低功耗模式
注意:在任何一种低功耗模式下,CPU都被关闭,程序将停止 执行,直到被中断唤醒或单片机复位。因此在进入任何一种低 功耗模式之前,都必须设置好唤醒CPU的中断条件、打开中断 允许位、等待被唤醒,否则程序将有可能永远停止运行。 另外,MSP430的瞬间响应特性是系统超低功耗事件驱动方 式的重要保证。
SCG1=1, SCG0=1, 当PMMREGOFF = 1,无 OSCOFF=1, RAM保持,RTC禁止(仅 CPUOFF=1 限MSP430F5xx)
相关主题