经常有人询问,MSP430的低功耗是如何实现的,该如何设计,功耗能做到多少?其实这些问题都不是简单能够回答的,一个系统的的低功耗设计,不仅仅是依靠MCU就能实现的,当然MCU是非常重要的部分。下面我就针对MCU的低功耗设计谈谈我的一些心得。
一般来讲MCU的功耗取决于三个方面,低功耗控制,低功耗工作模式选择,低功耗软件设计,本文将针对这三个方面进行阐述。
一、MSP430的低功耗控制
1.1低功耗的基本原则
针对MCU而言,有几个基本的原则,
l工作频率越低,MCU的功耗越小
我们在看数据手册的时候,经常会看到一个参数就是每MHZ消耗的功耗。例如:100uA/1MHz,m1.8v。通常情况MCU会有三个参数,分别是运行模式功耗,空闲模式功耗和掉电模式功耗。
从参数可以看出,MCU的功耗直接和你使用的工作频率有关,在进行低功耗设计的时候一定要选择合适的工作频率。
l工作电压越低,MCU的功耗越小
从上个例子也可以看出,MCU的功耗直接和工作电压相关。厂家一般给出的都是MCU的最低工作电压,事实上很多产品由于外设原因,电源原因,都不是工作在MCU的最低工作电压上的,数据手册上的参数仅供对比参考,不能作为绝对值进行计算。
l工作的外设越少,MCU的功耗越小
这个条比较好理解。MCU的外设使用越多,功耗就越大。
另外,还有一个比较重要的原则,就是在FLASH中运行比在RAM中运行消耗更多的功耗。所以如果MCU的RAM够大,可以把最常用的主循环和处理函数放在RAM中运行,这样可以节约大于30%的功耗。
1.2常见的几种低功耗MCU的参数
MSP430F5310
PIC16F72X
STM8L101xx
工作模式
195Ua/MHz3.0v
115uA/MHz3.0v
100uA/500kHz1.8v
150uA/Mhz注1
空闲模式
1.1uA,3V
500nA,1.8v
0.8uA注1
掉电模式
0.18uA,3V
50nA,1.8v
0.3uA注1
注1:STM没有提供测试电压的参数,这个指标就无实际意义。
从上表可以看出,各个厂家提供的参数都不是在同样的环境测得的,各位同学在使用时要进行甄别,不要只盯着数字看。
1.3MSP430的低功耗设计
针对如上的三条,MSP430都做了比较好的低功耗设计。有的同学只是简单的对比数据手册上的技术参数来判定一个MCU的功耗情况,其实并不是很了解MCU的系统是如何实现低功耗的设计的。
1.3.1时钟系统
针对工作频率越低,MCU的功耗越小这一条,MSP430系列MCU支持目前最优化的时钟管理系统。
下图是MSP430F2xx系列的基础时钟的框图:
从图中可以看出,MSP430的基础时钟有5个时钟源,用户可以根据自己的需要,选择不同的时钟源作为内核,外设的时钟,从而达到最低功耗的设计。这个在其他MCU的结构中很少见到,所以,单从这个时钟系统的设计来看,MSP430就比其他的MCU要优化。
MSP430MCU的基础时钟有5个时钟源:
LFXT1CLK:由低频时钟晶体或外接32K时钟源产生的低频、高频振荡器或由标准晶体、振荡器、或外部400k-16M的外部时钟源提供。
VLOCLK:内部低功耗,低频振荡器。频率典型值为10KHz。
REFOCLK:内部低频振荡器,典型值为32K,还可以作为FLL基准时钟源
DCOCLK:可以通过FLL来稳定的内部数字控制振荡器
XT2CLK:可选高频振荡器,可与标准晶振,振荡器或4M~32MHz外部时钟源一起使用。
标准时钟可提供三种时钟信号:
ACLK:辅时钟。可通过软件选择XT1CLK,REFOCLK,VLOCLK,DCOCLK,DCOCLKDIV及XT2CLK作为ACLK时钟源。
MCLK:系统主时钟,可通过软件选择XT1CLK,REFOCLK,VLOCLK,DCOCLK,DCOCLKDIV及XT2CLK作为MCLK时钟源。
SMCLK:子系统主时钟。
MSP430低功耗的时钟设计也带来一些比其他MCU麻烦的地方。用户需要非常熟悉各种时钟源的用法,当MSP430给用户带来更多的低功耗设计选择的同时,也给客户带来了一些难度。其中部分的MSP430还需要外接32K晶体振荡器,这样也不是太方便客户使用。
1.3.2内核电压系统
前面讲到MCU的功耗和工作电压也息息相关,MSP430的PMM模块包含一个LDO模块,通过设置参数可以调节给MCU内核VCORE的供电。MSP430的VCORE支持四个等级电压,分别是1.8V,2.0V,2.4V,2.2,3.6V。工作频率越高,对VCORE内核电压的要求就越高,具体关系见下图所示:
1.3.3外设管理系统
MCU外设对MCU的功耗影响也很大,为了降低MCU的功耗就要尽量关闭那些现在不用的外设。外设的时钟源选择也很重要,在满足需要的前提下,尽量选择在低功耗模式能够使用的时钟源,这样可以从整体设计上降低系统的功耗。
二、MSP430的低功耗模式
2.1MSP430低功耗模式
MSP430支持6种运行模式,AM,LPM0~4(低功耗模式)。
SCG1
SCG0
OSC
OFF
CPU
OFF
模式
CPU和时钟状态
0
0
0
0
活动模式
ActiveMode
CPU,MCLK,SMCLK,ACLK均处于活动状态
0
0
0
1
低功耗模式0
LPM0
CPU,MCLK禁止
SMCLK,ACLK活动
0
1
0
1
低功耗模式1
LPM1
CPU,MCLK禁止;DC发生器禁止;
SMCLK,ACLK活动
1
0
0
1
低功耗模式2
LMP2
CPU,MCLK,SMCLK,DCO禁止;
DC发生器禁止;ACLK活动
1
1
0
1
低功耗模式3
LMP3
CPU,MCLK,SMCLK,DCO禁止;
DC发生器禁止;ACLCK活动
1
1
1
1
低功耗模式4
LPM4
CPU,MCLK,SMCLK,ACLK均禁止
工作模式之间的状态切换图示如下:
三、MSP430的低功耗软件设计
此下暂略。。。以后补充