搜索
bottom↓
回复: 16

有关MSP430的低功耗

[复制链接]

出0入0汤圆

发表于 2012-10-9 21:16:11 | 显示全部楼层 |阅读模式
想到一个问题,有点想不明白,上来和大家讨论一下。我们常说430芯片,主频高了,功耗就上去了,这是因为主频高了,单位时间内执行的指令多,那么单位时间内的功耗就大。但是如果程序加上休眠功能,比如来了某个INT,那么单片机唤醒一下,执行固定的几百条指令,然后又休眠,那么此时他的功耗还和主频有关系么?换句话说,不管单片机的主频是多少,执行每条指令所需的功耗是固定的吧?如果这样,那么对那种具有休眠唤醒功能、每次唤醒执行固定指令数的程序而言,和主频的高低不是没任何关系了么?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-10-9 21:49:08 | 显示全部楼层
峰值功耗和平均功耗的概念要分清

出0入0汤圆

发表于 2012-10-9 21:51:38 | 显示全部楼层
我来与你交流一下,如果用MSP430的串口输出个“hello world”, 波特率9600,用8M主频和32.768K主频有啥区别呢?所用的总时间应该差不多吧,但功耗肯定差挺多。当然如果只是执行固定的几个指令,那可能区别就小了。

出0入0汤圆

 楼主| 发表于 2012-10-9 22:25:10 | 显示全部楼层
主频高了,单位时间里的功耗是高,但是执行的时间就短了,平均功耗相当于没变啊。另外三楼说的输出固定字符串那个相当于时间不变,但是执行的指令数多了。因为输出字节时,总要while等待一下是否输出结束,这相当于执行的等待指令数多了啊。我的意思是执行固定的几百条指令,比如1M时执行100条指令,2M时还执行100条指令。如果单条指令耗费的功耗是固定值的话,那就和主频没什么关系了。

出0入0汤圆

 楼主| 发表于 2012-10-9 22:29:27 | 显示全部楼层
就比如有这样一个系统,收到一个按键中断,就反复切换某个端口的高低电平1000次。假设1M主频,执行1000次切换需要1秒,但是2M主频时,就只需要0.5秒了。每条指令执行时,无非是几个时钟沿导致了电流消耗。那执行1000次切换所需的时钟沿个数是固定的,那么此时消耗的电量不也就是固定的了么。这时和主频有个鸟关系。和所谓的平均功耗还是峰值功耗还有个鸟关系(这两个的概念无非是时间刻度不一样而已)

出0入0汤圆

发表于 2012-10-9 22:33:31 | 显示全部楼层
主频高功耗就上去了?不是吧~MSP430不是这样的,在低功耗模式下面可以关闭内部时钟的~根本就不存在这么一说,不信你搞个MSP430F5438A配置成25Mhz,然后搞个F149配置成1Mhz,两个同时进入超低功耗模式,就驱动一个LED看看,对比功耗~

出0入0汤圆

 楼主| 发表于 2012-10-9 23:07:12 | 显示全部楼层
nongxiaoming 发表于 2012-10-9 22:33
主频高功耗就上去了?不是吧~MSP430不是这样的,在低功耗模式下面可以关闭内部时钟的~根本就不存在这么一说 ...

我没说明白么?正常情况下,如果MCU一直处于工作模式,那主频高,功耗高,那没任何问题,因为如果MCU一直处于ACTIVE状态,那么主频高的MCU,单位时间执行的指令数就很多,功耗自然高。但是如果程序是支持休眠模式的,也就是平时是休眠,但是如果被某个中断唤醒了,就执行固定的几百条指令,然后继续休眠。如果是这样,那么系统的功耗和MCLK的大小就没什么关系了。

出0入0汤圆

发表于 2012-10-9 23:17:40 | 显示全部楼层
本帖最后由 kakarotto 于 2012-10-9 23:25 编辑

注意功耗的测量和计算方法

比如你的系统中,单片机在1ms的时间单位之内(也可能是10ms或100ms等等),有950us都是出于休眠状态,只有50us来处理中断事务。
假设休眠状态功耗是1uA,全速状态功耗为10mA,功耗就是 950×0.001 + 50 × 10 ,单位是毫安微秒。


当然,这样计算出来只是单片机本身的功耗,系统功耗的降低还要看别的功能电路的功耗。

出0入0汤圆

发表于 2012-10-9 23:24:20 | 显示全部楼层
jetlib 发表于 2012-10-9 23:07
我没说明白么?正常情况下,如果MCU一直处于工作模式,那主频高,功耗高,那没任何问题,因为如果MCU一直 ...

哥们,你这么对比低功耗是严重的错误~你要看做什么活啊,本身做的活就不同还怎么比功耗啊?你说频率高相同时间内执行的指令就多,是这样的吗?你不让它执行它会执行吗?你跑得很快,我给你跑1000米我跑100米,那你是不是觉得你特别消耗体力我特别节省体力啊?能这么比吗?

出0入0汤圆

 楼主| 发表于 2012-10-10 08:38:08 | 显示全部楼层
nongxiaoming 发表于 2012-10-9 23:24
哥们,你这么对比低功耗是严重的错误~你要看做什么活啊,本身做的活就不同还怎么比功耗啊?你说频率高相 ...

如果单片机在ACTIVE状态,你还能让他不干活么?宏观上你的程序没让他干活,微观上一个MCLK时钟会触发PC指针取一次指令,哪怕这个指令是NOP指令,也消耗了一次取指、赋值等等微观上的动作啊。

出0入0汤圆

 楼主| 发表于 2012-10-10 08:42:09 | 显示全部楼层
kakarotto 发表于 2012-10-9 23:17
注意功耗的测量和计算方法

比如你的系统中,单片机在1ms的时间单位之内(也可能是10ms或100ms等等),有95 ...

我说的唤醒是执行固定的几百条指令,不是说唤醒时是固定的50us。唤醒时执行固定的几百条指令就再次休眠了。到底是我没说明白,还是你没明白我的意思啊?

出0入0汤圆

发表于 2012-10-10 10:23:17 | 显示全部楼层
根据一些资料的说明,功耗一般是指在一段时间里的平均能量的消耗。同时有一定的测试条件,例如一直是运行状态。
楼主问的似乎是实际使用的功耗。
据了解,目前很多低功耗(就是在一段时间里的总能量消耗)产品,就是楼主所说的,只有需要时才全速工作,平时设置在低速/待机。这样在一段时间里总的能量损耗就会小很多。
关于频率越高功耗越高的说法是有条件的,就是测试或者评估的方法一致。就是说,在一段时间里是不是全速工作,或者是前n秒全速,后m秒低速/待机。
如果测试方法依赖频率,就是上面的例子,由于频率高效率相对的高,处理一些不需要等待的事情时,频率高的肯定比频率低的所花时间少。相应的测试中,就有所不一样。还是上面的例子,“假设1M主频,执行1000次切换需要1秒,但是2M主频时,就只需要0.5秒了。”,这么说不同的频率n不一样,相应的m也不一样。
所得公式是
频率1时: W1 = n1 * Wh1 + m1 * Wl1
频率2时: W2 = n2 * Wh2 + m2 * Wl2
如果硬件都一样,Wl1 = Wl2
请大家将实际的数值替换到公式里,看看实际的功率是多少。按照经验,一般是频率低的功耗低一些,原因是很难不存在不需要等待事情或者硬件上(尤其是芯片的门电路,不同频率的开关高低,功率损耗是不一样的。还有寄生电容的冲放电等)的电流拉动。
这也是为什么很多mcu原厂,建议尽可能的降低频率。

出0入0汤圆

 楼主| 发表于 2012-10-10 11:02:09 | 显示全部楼层
tarchen 发表于 2012-10-10 10:23
根据一些资料的说明,功耗一般是指在一段时间里的平均能量的消耗。同时有一定的测试条件,例如一直是运行状 ...

嗯,的确应该是这样。我理解单片机active时的,电流主要消耗在两个地方,一个是内部门电路维持高低电平所产生的漏电流,第二是时钟信号高低电平切换引起的寄生电容充放电导致的电流损耗,而且主要消耗在第二条上。所以如果程序有休眠/唤醒能力,且唤醒时,没有delay(XXX秒)之类固定时间延时、死等这种程序,主频高时,反而可能会降低系统能量消耗。

出0入0汤圆

发表于 2012-10-10 19:19:36 | 显示全部楼层
jetlib 发表于 2012-10-10 08:38
如果单片机在ACTIVE状态,你还能让他不干活么?宏观上你的程序没让他干活,微观上一个MCLK时钟会触发PC指 ...

那你是这么设计低功耗程序的吗?估计你是不会低功耗的~最多拿个4位MCU设计然后自称超低功耗,哈哈哈~可笑至极~如果你自己都不让它低功耗,那还有什么可以阻拦?你家的水龙头本来你不用的时候你可以关掉的,但是你却偏偏开着,那我还能有什么办法啊?我只能说别让人家查你家水表……

出0入0汤圆

发表于 2012-10-10 19:27:32 | 显示全部楼层
人家说的是超低功耗,而你自己却马力全开进行对比,那能对比出个什么来啊?基本都是跑得快的消耗大,总不能违反了物理学的能量守恒啊~对比不能太离谱,脱离了本质就没意思了~做的功大小不同根本没法比~没法平均~

出0入0汤圆

发表于 2012-10-10 20:42:21 | 显示全部楼层
jetlib 发表于 2012-10-10 08:42
我说的唤醒是执行固定的几百条指令,不是说唤醒时是固定的50us。唤醒时执行固定的几百条指令就再次休眠 ...

晕,只是举个例子。你愿意怎么理解就这么理解吧。

出0入0汤圆

发表于 2014-3-15 17:35:18 | 显示全部楼层
这个得实际测试下。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 15:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表