MSP430低功耗
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于嵌入式处理器系统来说,低功耗设计有3个基本原则:
工作频率和功耗成反比关系。
工作电压和功耗成正比关系。
工作模块数量和功耗成正比关系。
MSP430系列MCU具有强大的低功耗模式设计。
在不同的低功耗模式下,配置不同的时钟信号来降低CPU及工作模块的工作频率;选择性的关闭暂时不使用模块和相关的时钟信号来降低工作模块的数量以达到降低整机功耗的目的。
MSP430的5xx系列和6xx还支持用户设置内核电压,通过降低内核工作电压来降低功耗。
低功耗模式是MSP430的特色功能,一般情况下,MSP430分为6种工作状态,分别是活动状态(AM)、低功耗模式0(LPM0)、低功耗模式1(LPM1)、低功耗模式2(LPM2)、低功耗模式3(LPM3)和低功耗模式4(LPM4)。
对于5xx系列的产品带实时时钟RTC的信号还具备低功耗模式3.5(LPM3.5)和低功耗模式4.5(LPM4.5)。
根据不同的应用合理地选用低功耗模式可以有效地降低MSP430功耗。
图3-8是MSP430F21x1工作在1MHz对应于AM模式和低功耗模式下的电流消耗。
从图中可以看到低功耗模式下,电流消耗要远小于AM 模式。
下面对各种工作模式做详细的介绍。
MSP430的低功耗模式是通过状态寄存器SR各位的配置来完成的,SR寄存器如表3-6所示。
与低功耗模式相关的是系统时钟控制位(SCG0)和(SCG1)、振荡器关闭/开启位(OSCOFF)和CPU关闭/开启位(CPUOFF)。
SCG0位用于关闭DCO的直流发生器,也就是关闭DCOCLK;SCG1位用于关闭SMCLK;OSCOFF位用于关闭MSP430的振荡器,包括LFXT1和XT2;CPUOFF 位用于关闭CPU。
表3-6 SR寄存器
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8
Reserved V
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
SCG1 SCG0 OSCOFF CPUOFF GIE N Z C
5种低功耗模式可以使用表3-7区分,表中显示了5种低功耗模式下,MSP430的时钟信号MCLK(CPU)、SMCLK、ACLK和DCO振荡器的关断状态。
表3-7 低功耗模式和对应SR状态
低功耗模式 CPU MCLK SMCLK ACLK CPU OFF SCG1 SCG0 OSC OFF
状态介绍
LPM0 OFF ON ON 1 0 0 0 CPU和MCLK关断,SMCLK和ACLK可用
LPM1 OFF ON ON 1 0 1 0 CPU和MCLK关断,SMCLK和ACLK可用,DCO关断
LPM2 OFF OFF ON 1 1 0 0 CPU、MCLK和SM-CLK关断,ACLK可用,DCO启用
LPM3 OFF OFF ON 1 1 1 0 CPU、MCLK和SM-CLK关断,ACLK可用,DCO关断
LPM4 OFF OFF OFF 1 1 1 1 CPU、MCLK、SM-CLK和ACLK全部关断,DCO关断MSP430进入低功耗状态后,其I/O口状态、寄存器状态以及RAM的状态都会保持。
MSP430的唤醒则是通过中断的方式实现的,不同的状态下可以利用不同的中断源唤醒。
低功耗模式与对应的唤醒方式如表3-7所示。
LPM4模式下,由于所有的时钟全部关闭所以只能通过外部中断的方式唤醒,比如使用I/O口的外部中断功能唤醒。
部分MSP430支持LPM3.5和LPM4.5的低功耗模式。
在LPM3.5低功耗模式下CPU处于掉电状态(Shut-Down);RAM和寄存器的值将丢失;GPIO的状态保持不变;备份区的RAM内容保持不变;CPU只能从以下几种中断或事件来唤醒:RST/NMI、RTC事件、 GPIO P1、 GPIO P2。
在该低功耗模式下,RTC由低频的时钟晶体提供时钟源,其他所有的时钟源都处于关闭状态。
在LPM4.5低功耗模式下CPU处于掉电状态;RAM和寄存器的值将丢失;GPIO的状态保持不变;备份区的RAM内容保持不变;GPIO的状态保持不变;CPU只能从以下几种中断或事件来唤醒:RST/NMI、GPIO P1、 GPIO P2。
在该低功耗模式下,包括RTC在内的所有时钟源都停止工作,整机功耗达到最低。
不同系列的MSP430的低功耗模式下的功耗也不一样,表3-8列举了MSP430各个系列的典型芯片的低功耗模式时的典型功耗。
表3-8 低功耗模式和对应SR状态
芯片型号 AM LPM0/LPM1 LPM2 LPM3 LPM4 LPM3.5 LPM4.5
MSP430F149 280μA 55μA 17μA 1.8μA 0.1μA ——
MSP430F2012 300μA 85μA 25μA 0.9μA 0.1μA ——
MSP430F417 300μA 92μA 17μA 0.9μA 0.1μA ——
MSP430F5438 230μA 73μA 11.μA 2.1μA 1.2μA — 0.1μA
MSP430F6736 265μA 89μA 7.4μA 2.5μA 1.6μA 1.24μA 0.78 μA
MSP430FR5739 81.4μA 175μA 61μA 6.3μA 5.9μA 1.5μA 0.32 μA
MSP430FR5969 100μA — 0.7μA 0.5μA — 0.5μA 0.02μA
如果MSP430处于低功耗工作模式,当可屏蔽中断和非可屏蔽中断源产生时,会唤醒CPU 进入中断处理程序,如下的操作将由硬件来完成:
1)入栈保护当前PC指针寄存器。
2)入栈保护当前SR状态寄存器。
3)清零SR状态寄存器(置GIE = 0,屏蔽可屏蔽中断,并结束低功耗模式,CPU切换到Active模式)。
4)从中断向量表中取出中断向量到PC指针寄存器。
5)跳转到中断服务程序开始执行。
6)中断执行完毕后执行RETI返回指令。
7)出栈恢复SR状态寄存器和PC指针寄存器的值。
8)CPU恢复到原来的低功耗模式。
注意:如果在CPU返回原先低功耗模式时改变低功耗的模式,需要在中断处理程序中修改堆栈中的SR控制位的值。
LPM3.5和LPM4.5的唤醒会触发BOR,所以从LPM3.5或LPM4.5模式唤醒需要更长的时间。
在唤醒过程中需要等待重新建立内核电压,在进入应用程序之前还会执行BOOT代码。
所以如果不是对功耗有特别的要求,尽量少用LPM3.5和LPM4.5低功耗模式。
图3-9演示了MSP430的各种低功耗模式切换和唤醒的过程。
表3-9 低功耗模式对应的唤醒方式
低功耗模式唤醒中断源
LPM0 定时器、ADC、DMA、UART、WDT、I/O、比较器、外部中断、RTC、串行通信、其他外设
LPM1 定时器、ADC、DMA、UART、WDT、I/O、比较器、外部中断、RTC、串行通信、其他外设
LPM2 定时器、ADC、DMA、UART、WDT、I/O、比较器、外部中断、RTC、串行通信、其他外设
LPM3 定时器、ADC、DMA、UART、WDT、I/O、比较器、外部中断、RTC、串行通信、其他外设
LPM4 外部中断
MSP430各个系列在低功耗模式下的唤醒时间有所不同,表3-10列出了各个系列的一些典型的芯片在不同的低功耗模式下唤醒进入工作模式的时间。
注意,部分芯片从低功耗模式唤醒到工作模式所需的时间和工作频率有关,具体请参见详细的数据手册说明。
表3-10 各系列MSP430从低功耗模式唤醒到工作模式所需的时间
芯片型号 LPM0 LPM1 LPM2 LPM3 LPM4 LPM3.5 /LPM4.5
芯片型号 LPM0 LPM1 LPM2 LPM3 LPM4 LPM3.5 /LPM4.5
MSP430F149 立即立即 6.0μs 6.0μs 6.0μs N/A
MSP430F2012 立即立即 1.0μs 1.0μs 1.0μs N/A
MSP430F417 立即立即 6.0μs 6.0μs 6.0μs N/A
MSP430F5438 立即立即 3.5μs 3.5μs 3.5μs 2.0μs MSP430F6736 立即立即 3.0μs 3.0μs 3.0μs 2.0μs MSP430FR5739 0.5μs 12μs 12μs 78μs 78μs 310μs MSP430FR5969 立即 6.0μs 6.0μs 7.0μs 7.0μs 250μs。