第三章 MSP430基本外设2(低功耗模式)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

3.2低功耗模式(LPM)Low-PowerModes低功耗结构(LPM)主要内容•低功耗结构(LPM)概述•低功耗工作模式•进入和退出低功耗模式(LPM0~LPM4)•进入和退出低功耗模式(LPMx.5)•低功耗应用原则•低功耗应用举例低功耗结构(LPM)概述(1/2)TI的MSP430系列单片机最主要的特征就是低功耗,该特性适合应用于采用长时间电池供电的工作场合。MSP430系统使用不同的时钟信号:ACLK、MCLK和SMCLK。这3种不同频率的时钟输出给不同的模块,从而更合理地利用系统的电源,实现整个系统的超低功耗。MSP430系列单片机各个模块运行完全独立,定时器、输入/输出端口、A/D转换、看门狗、液晶显示器等都可在CPU休眠状态下运行。系统能以最低功耗运行,当需要CPU工作时,任何模块都可以通过中断唤醒CPU,这一特性是MSP430系列单片机最突出的优点,也是与其他单片机的最大区别。低功耗结构(LPM)概述(1/2)为了充分利用CPU低功耗性能,可使CPU工作于突发状态。根据系统需要,使用软件将CPU设定在某种低功耗工作模式,在需要时使用中断将CPU从休眠状态中唤醒,完成工作后有可以进入相应的休眠状态。MSP430的瞬间响应特性是系统超低功耗事件驱动方式的重要保证。如下图所示:低功耗工作模式(1/2)用户可通过软件配置成8种不同工作模式:1种活动模式和7种低功耗模式(LPM0到LPM4、LPM3.5和LPM4.5)。低功耗模式LPM0到LPM4、LPM3.5和LPM4.5可通过设置状态寄存器(SR)中的SCG1、SCG0、OSCOFF和CPUOFF位实现。通过设置控制位MSP430可以从活动模式进入到相应的低功耗模式;而各种低功耗模式又可通过中断方式回到活动模式。如下图,显示了各种模式之间的关系。低功耗工作模式(2/2)◆在低功耗模式下,所有的I/O引脚和RAM寄存器将保持不变。可以通过开中断后用中断事件来唤醒LMP0到LMP4。◆系统响应中断的过程:硬件自动中断服务PC入栈SR入栈中断向量赋给PCGIT、CPUOFF、OSCOFF和SCG1清除IFG标志位清除(单源中断标志)执行中断处理子程序执行RETI指令(中断返回)SR出栈(恢复原来的标志)PC出栈进入和退出低功耗模式(LPM0~LPM4)(1/5)进入和退出低功耗模式(LPM0~LPM4)(2/5)系统响应中断时的堆栈情况,如下图所示:堆栈初始状态入栈时PC和SR出栈前PC和SR进入和退出低功耗模式(LPM0~LPM4)(3/5)通过对系统响应中断过程的分析,可以深刻地认识MSP430系列单片机的低功耗特性。中断将CPU从休眠状态中唤醒:在中断处理过程中对控制位GIE、CPUOFF、OSCOFF和SCG1自动清除,从而使CPU进入活动模式。系统低功耗模式的保持:中断响应时,将SR入栈保存,即保存系统某种低功耗状态。中断响应结束时,通过RETI指令使SR出栈,恢复系统进入中断之前的低功耗状态。系统继续保持这种低功耗状态,直到下一次中断事件出现,系统进入活动模式,开始处理中断。例:系统初始化完毕之后工作于低功耗模式0,中断事件触发到活动模式,中断处理结束后进入到低功耗模式3。;主程序…..;初始化操作开始……;……;初始化完毕BIS#GIE+CPUOFF,SR;主程序中设置低功耗模式0;…...;程序在这里停止;;中断子程序……;中断处理开始…………;中断处理结束BIS#GIE+CPUOFF+SCG1+SCG0,0(SP);设置SR为低功耗模式3RETI;中断返回;系统进入低功耗模式3。……进入和退出低功耗模式(LPM0~LPM4)(4/5)在上述处理过程中,堆栈的变化情况,如下图所示:堆栈初始状态入栈时PC和SR出栈前PC和SR进入和退出低功耗模式(LPM0~LPM4)(5/5)进入和退出低功耗模式(LPMx.5)(1/1)低功耗模式LPMx.5的进入和退出与其他低功耗模式不同。恰当的使用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口的状态将一直保持锁定状态直到应用程序解除锁定,用户应根据需要重新配置芯片。进入和退出低功耗模式(LPMx.5)(1/1)进入LPMx.5前,需要进行一下操作:(1)适当配置I/O口。将所有端口设置为通用I/O口,实际应用的每个端口保证没有悬空输入管脚。如果希望通过I/O口唤醒,需要恰当配置具有中断能力的相关I/O口。(2)在LPMx.5模式下如果希望通过RTC(实时时钟)唤醒,则需要配置RTC中断。低功耗应用原则(1/2)◆一般的低功耗原则:最大化延长其在LPM3或LPM4模式下的时间,用32KHz晶振作为ACLK时钟,DCO用于CPU激活后的突发短暂运行。如果在应用中有短暂性的周期工作并对反应速度不敏感的场合,可以最大化的利用LPMx.5模式来降低功耗。用接口模块代替软件驱动功能。例如Timer_A和Timer_B可以自动产生PWM和捕获外部时序,而不占用CPU资源。用中断控制程序运行。用可计算的分支代替标志位测试产生的分支。用快速查表代替冗长的软件计算。在冗长的软件计算中使用单周期的CPU寄存器。避免频繁的子程序和函数调用。尽可能直接用电池供电。低功耗应用原则(2/2)◆在设计外设时还有一些常规原则:将不用的FETI输入端连接到VSS。JTAG端口TMS、TCK和TDI不要连接到VSS。CMOS输入端不能有浮空节点,将所有输入端接适当的电平。不论对于内核还是对于各外围模块,选择尽可能低的运行频率,如果不影响功能应设计自动关机。低功耗应用举例(1/3)例1,MSP430x66xx演示例程:配置ACLK=LFXT1=32kHz,MCLK=SMCLK=DCO(默认值),禁用REF0、VUSBLDO和SLDO,进入LPM3。程序代码如下:#includemsp430f6638.hvoidmain(void){WDTCTL=WDTPW+WDTHOLD;//关闭看门狗//使能XT1UCSCTL6&=~(XT1OFF);//使能XT1UCSCTL6|=XCAP_3;//配置内接电容值,//若使输出为32.768KHz,则需要选择XCAP_3while(BAKCTL&LOCKIO)//解锁XT1引脚BAKCTL&=~(LOCKIO);低功耗应用举例(2/3)do{UCSCTL7&=~(XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG);//清零XT1、XT2、DCO故障标志位SFRIFG1&=~OFIFG;//清零SFR中的故障标志位}while(SFRIFG1&OFIFG);//检测振荡器故障标志位UCSCTL6&=~(XT1DRIVE_3);//XT1现在稳定了,降低驱动力UCSCTL4&=~(SELA0+SELA1+SELA2);//确保ALCK时钟源为XT1//端口配置P1OUT=0x00;P2OUT=0x00;P3OUT=0x00;P4OUT=0x00;P5OUT=0x00;P6OUT=0x00;P7OUT=0x00;P8OUT=0x00;P9OUT=0x00;PJOUT=0x00;P1DIR=0xFF;P2DIR=0xFF;P3DIR=0xFF;P4DIR=0xFF;P5DIR=0xFF;P6DIR=0xFF;P7DIR=0xFF;P8DIR=0xFF;P9DIR=0xFF;PJDIR=0xFF;低功耗应用举例(3/3)//禁用VUSBLDO和SLDOUSBKEYPID=0x9628;//设置USBKEYandPID为0x9628,//允许访问USB配置寄存器USBPWRCTL&=~(SLDOEN+VUSBEN);//禁用VUSBLDO和SLDOUSBKEYPID=0x9600;//禁止访问USB配置寄存器//禁用SVSPMMCTL0_H=PMMPW_H;//PMM密码SVSMHCTL&=~(SVMHE+SVSHE);//禁用高压侧SVSSVSMLCTL&=~(SVMLE+SVSLE);//禁用低压侧SVS__bis_SR_register(LPM3_bits);//进入低功耗LPM3__no_operation();//用于调试}

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功