TI中文支持网
TI专业的中文技术问题搜集分享网站

还是牛角尖问题:LPM3模式下不同CPU主频的功耗试验

我做了个实验

详情请看:变态测试msp430G2452低功耗LPM3模式下不同CPU主频的功耗试验

以前在这里我好像问过类似相关这个问题

能不能看看我的这个试验能不能做出结果来?到底有没有个定论?

Fuchong Wang:

不好意思,链接弄错了,不小心弄到另外一个帖子上去了,现在修改过了,麻烦再看看呀

虽然大多数情况下msp430应用于电池供电很有优势,一般较低电压时只能低主频,但是也是有不需要考虑低电压但又要考虑功耗的情况吧?那么这时候我们选择高一点cpu主频好还是低一点的好呢?本实验以1MHz和8MHz的不同MCLK为例

Lina Lian:

回复 Fuchong Wang:

Fuchong, 我看了你的链接,发现你的测试不太严谨,故提出一下几点建议:

1. 将不用的GPIO管脚设置为输出,或者设置为输入且让其状态固定(上拉或下拉),以排除周围电平浮动引起功耗增加的干扰,因为默认情况下,GPIO是输入的;

2. 为了进一步排除干扰,配置完GPIO后,直接使用multimeter测试MSP430一直处于LPM3下的功耗,看看此数据时候和datasheet一致,一致后再继续;

3. 因为你的测试是MSP430在active和LPM3状态交替出现,故你测量的一定是平均功耗,而且不要忘了考虑唤醒时间,虽然很短,但是还是有一定影响的,尤其是当唤醒时间,activ时间以及处于LPM3的时间可以比拟的时候;

4. 为了更准确的测试功耗,还有另一种办法,那就是选择一个精确的小电阻,例如20欧,将它串联在power supply的入口处,用示波器捕捉电阻两端的电压波形,然后计算平均功耗。

实际上,我是同意你的看法的,我也有一样的想法,当MSP430交替处于active和LPM3时,当active的大致时间和LPM时间差不多时,或者Active时间大于LPM时间,低频active时间长但功耗低,高频active时间短但功耗高,此时一定是有一个balance的时间点的,并不能直接说处于高频就一定平均功耗高。

但是大多数情况下,系统总是长时间处于LPM3,很短时间处于Active的。不会像你的测试中一样,将定时器设为64us 或者更短时间唤醒CPU一次,而从LPM3唤醒一次CPU需要1.5us左右,进入中断需要6个cycles,从中断退出需要5个cycles,在加上中断处理时间,约为:1.5+5+6+x=12.5us+x;故你的测试严格来说,是没有太大实用性的。

最后,我非常敬佩你深入思考,提出疑问,动手验证并不达目的决不罢休的精神。希望你继续保持。O(∩_∩)O~

Fuchong Wang:

回复 Lina Lian:

1,不知道哪个管脚没有处理好?p1.3和P1.7是按键用,都带有上拉电阻。这是在LaunchPad上做的,原来就有P1.3连接按键并且外接有上拉电阻电容(旧版本)2,一致。我不是说了么?我那个显示当时还不准,只用来对比相对值3,定时中断周期或者说次数是一样的,也就是说唤醒和中断处理的次数是一样的,那为什么有不同功耗?只要功耗不同不就是说有差别么?4,我那个测试装置实际就是您所说的串联,电阻比你的大,但是压降不大,而且我靠LaunchPad电源端接有容量大的电解电容(考虑了漏电流),就中断周期设置这么短(也就是中断频率设得高)就是考虑到要平均效果。您所说的测量波形,实际上我很难做到,因为LaunchPad电源端本身就并接有电容,所以即使有波形,幅度也是很低,我没这个条件。实际上对于这么高的中断频率,我的测试装置和万用表好像都有积分平均功能。5,我的定时器是使用的32768Hz的ACLK时钟源,定时周期怎么会是64us?要说我__delay_cycles(1000);这一句计算失误设置过大还可理解确实如您所说,LPM3时间往往大于ACtive时间(也不一定吆,例如使用的时候),我将定时器周期弄得短是为了更好地测量免得数字抖动,实际上不需要中断频率这么短就可以获得无抖动显示,我只是有点随意设置了。但是我也测过中断频率小的情况,一样的结论。实际上,中断次数增多只是增加了唤醒时间这段功耗(以前就想过能不能测测,有点懒,还没测这个唤醒时间段的功耗)在测量显示值的比重吧?而唤醒时间和次数在我的测试程序中是一样的,不影响结论呀至于有没有实用性,这个可以讨论。我说的是理论上,cpu频率高功耗低设想这样的情况,平时设备不工作处于LPM3,但是特定的条件下(例如人为操作,远程唤醒,本身定时等等)工作,但是工作的时候,如果MCLK在1MHz,工作处理期间LPM3时间与ACTIVE时间之比接近为零,但是同样的处理工作量,工作在8MHz下,很可能LPM3时间与ACTIVE时间之比接近为7:1,那么功耗区别怎样?当然,要是说长时间不工作,偶尔操作功耗可以不考虑,那就没什么好说的了。当然也许我的结论就是错误的,我是看到cpu器件的硬件数据手册中关于功耗频率关系图后想到的,曲线斜率不是1:1,总得给一个解释吧?当然增加MCLK有没有其它的缺点之类的都是可以讨论的。但是最终的总要给人一个了解和建议就是:该怎样选择MCLK频率?

Lina Lian:

回复 Fuchong Wang:

Fuchong Wang,

1.所谓的不用的管脚,这里指在程序中没有具体用途的管脚。例如:如果你用的是20个pin 的MSP430G2452的话,P2.x的管脚,

2. 为了测量准确,请将launchpad的Emulation去掉,就是将5个jumpers去掉,直接外部供电。排除电容的影响;

关于你的测试,那个定时周期应该是:64*1/32768 = 1.95ms, active的时间约为:1ms+中断处理功耗(1M),约为1.1ms左右,这两段时间是可比拟的。如果为8M的话,则active的时间为:0.125ms+中断处理功耗,此时暂且估计为0.125ms左右,此时间已经远远小于LPM3的时间。可以试着算算平均功耗: 设定Vcc=3V.

A; 1Mhz,  (1.1ms*320uA + 1.95ms*0,7uA)/3.05ms = 115uA;

B1: 8MHz (0.125ms*2mA + 1.95ms*0.7uA)/2.075ms = 121uA;

B2: 8MHz (0.13ms*2mA + 1.95ms*0.7uA)/2.08ms = 125uA;

B3: 8MHz (0.125ms*1.8mA + 1.95ms*0.7uA)/2.075ms = 109uA;

上面的B1,B2和B3均为估计值,会发现随着对8MHz的功耗和时间的些微变化,会导致平均功耗在1Mhz上下变化,也就如我之前所说,LPM3和active的时间比及主频的选择是有一个balance的点的,而且关系不是简单的线性关系。

关于如何选择MCLK的频率,我的建议是:对使用MSP430所编的程序的active和LPM时间有所估计后,大致计算一下相应功耗,以此做出初步判断。

Fuchong Wang:

回复 Lina Lian:

1,有这一句呀:P2DIR=0xFF; 

我还真有点不确定DIR和OUT值对p2.6,p2.7功能的影响或者对功耗的影响,什么时候我再看看手册,以前好像没发现有影响呀

2,我显然是全部拔掉的,用的另外电池供的电

3,是否公式应是这样?

A; 1Mhz,  (1.1ms*320uA + 1.95ms*0,7uA)/3.05ms = 115uA;

A; 1Mhz,  (1.1ms*320uA + (1.95-1.1)ms*0,7uA)/3.05ms = 115uA;

不过这其实是一样的结果,0.7uA太小不足以产生影响

不过没没明白除数3.05ms是指什么呀?或者怎么计算来的?

另外问一下,关于中断处理,中断处理的所有时间都应该包含在1.95ms之内吧?中断进入和退出的时钟数不管时钟频率如何是不是一个定值?是不是可以就像可以看做都在active主程序中执行耗费的时钟数一样?这样是不是就只需要考虑不同DCO频率设定下稳定振荡建立的功耗不同?而根据数据手册,DCO频率高,其建立时间反而短,当然,即使是2us建立时间期间的功耗如何,手册上我好像没看到说,什么时间我看看能不能自己测测。不过即使功耗很大,但是恰恰频率越高,建立时间越短呀

Fuchong Wang:

回复 Lina Lian:

呃,关键还有建立时间的功耗及时间长短,什么时候再测测看

Shi JianHua:

回复 Fuchong Wang:

功耗的高低不在于将它降到最低限,即使达到了,没有实际的应用也是没有任何意义的。还不如根据实际的应用做到满足需求后搞掂别的项目都行。

Fuchong Wang:

回复 Shi JianHua:

这一点有点点不能同意。

再说正因为不清楚才不能否定到底存不存在实际的意义。

正如您说的,有点浪费时间才到专家这里问问个现成的答案。专家们专门搞这个,自然可能了解的多

Fuchong Wang:

回复 Fuchong Wang:

又粗粗实验了下,没有加电容,最低到每秒中断16次(否则读数不稳),似乎确实有像EEworld的F5529视频教程中的第二讲说的那样,16Mhz功耗减少的程度比8MHz不明显。不过目前还是得出至少频率增加功耗并不增加的结论当然,中断次数再低,例如每秒一次或者两次,结果是怎样的,没条件给个肯定实验。但是我以前接电容的时候做过,好像8MHz比1MHz功耗低

不管我可能得出的结论是否正确,难道我们在考虑一个设计的时候难道不会遇到这样的情况:哎呀,需要高MCLK呀,但是高MCLK会不会功耗就大了呀?当然我的讨论还没有涉及到其它外围模块在高时钟的情况下的功耗情况。但是我们把这些情况搞清楚了不是更能够心中有数么?省得疑惑还要自己琢磨。就不能总结出来各种情况下该怎样考虑时钟频率?

靠,卖力还不讨好

Lina Lian:

回复 Fuchong Wang:

Fuchong,

1. 管脚的状态和对功耗有影响的,这点是肯定的,datasheet在给出active或者LPM的功耗时,都有提到一句‘(1) All inputs are tied to 0 V or to VCC. Outputs do not source or sink any current.’ 。

3. 3.05ms=1.1ms+1.95ms, 是在算平均电流;

中断处理的所有时间应该是包括在1.1ms内,算active的时间。 中断进入和退出时间,是固定的主频cycle数,故是与主频相关的。 相比你试验的active和LPM时间,可以不考虑建立时间。

赞(0)
未经允许不得转载:TI中文支持网 » 还是牛角尖问题:LPM3模式下不同CPU主频的功耗试验
分享到: 更多 (0)