赞
踩
出处:http://www.amobbs.com/thread-4932393-1-1.html
不知从什么时候开始,随便做个什么电子产品,至少是电池供电的,都要求低功耗
特性了。好在市面上随便什么芯片都敢在自己的数据手册的第一页赫然写着低功耗。究
竟怎样算低功耗?小于5mA?小于1ms?小于100uA?离开了应用场合,似乎数值也失去了
单纯的意义,总之越小越好。但感觉上,能用水果点亮的应用应该就是低功耗了吧。
认真说来,有点怀念当年随便一个应用500mA,芯片微微发烫,用手一摸只要还能放
得住就大手一挥“没问题”的时代了。最近总是和uA打交道,超过100uA,周围的人脸色
就不好看了,好容易达到了传说中的20uA以内,也会觉得沾沾自喜,哎……uA啊……情
何以堪啊,伤不起啊……
久病成医,渐渐的也就有了一些心得,似乎低功耗开发的过程也可以一板一眼,按部
就班,似乎不单纯是一些零散的“看情况而定”“只可意会”的东西了。于是忍不住,将
这些似是而非的步骤记录下来,以箪初来者。
事半功倍还是事倍功半——思路决定成败 |
低功耗设计第一步:自底向上,顺藤摸瓜
这种系统设计模式看似有点本末倒置——还没有搞清楚需求就已经把芯片定了——实际上,这种
方式非常符合我们通常的开发模式:先有了一个初步的概念或者备选芯片方案,这些方案可能来自一个
已有的方案,一个已有方案的兼容方案,一个老板或者老员工/经验者提出的方案——总之有了一个基
础或者说原形,我们开始调查和研究具体低功耗的可行性,并形成了一个研究报告,这一报告将直接
指导下一步的行为:由于需求非常明确,我们可以决定是否更换芯片或者直接进入下一步的开发。上
面三个步骤实际上形成了一个LOOP,这一loop其实来自于“快速原型法”这一古老的“敏捷”开发模式
自然,规范,高效。
完成了以上两个步骤,可以说这一阶段就结束了,至此我们对系统的关键性能数据已经成竹在胸:
系统最低能实现多大的功耗;外设某些敏感的参数设置将如何影响功耗——当我们需要在外设性能和
功耗之间做妥协和权衡的时候这些信息就将发挥巨大的作用;我们甚至对系统外来如何工作,或者说
系统最基本的问题:“时间问题,整个复杂的多米诺骨牌是从哪里被什么推倒第一张牌的”大致有了
了解。我们甚至知道,如果不出意外系统将会达到怎样的功耗。
简单说,我们已经知道系统是能够实现的,功耗会在什么范围也是大体有所概念的。万事俱备,
只欠东风。欲知后事,请听下回分解。
低功耗设计第二步:让我们来下棋,很大很大的一盘棋
以前网上找的:
现在,有许多单片机应用领域,都是用电池供电,节能成为设计工程师普遍关心的问题。希
望大家就这方面展开讨论。
以下提供一些讨论的方向:
1、如何降低系统功耗?(软件?硬件?)
2、各位在这方面有何经验教训?(可以拿出来与大家分享)
3、各种芯片的功耗比较?
4、SLEEP模式应用的注意事项?
5、一些新型的节能器件的介绍?
6、其它与低功耗设计相关的话题?……
进入掉电模式
现在有很多的低功耗的片子,特别是在进入掉电模式之后,只有1uA的电流。也可以使用电源管理
的方法,在不工作的时候,把系统电源关断,这样更省电
我用了很久51芯片,本来对它的功耗非常不满,但是因为其价格越来越便宜,本身的性价比依旧
很好,所以总也甩不掉。
1、休眠。一般的系统都不会到了忙不过来的地步,适当的休眠还是可以节省一些功耗的,在一些
简单的系统,多抽时间休眠成了省电的关键,你看别的芯片都不耗电,只有单片机了,它就是关
键了,在有些时候,提高主频反而会获取更多的休眠时间,反而使系统功耗更小了。但是值得注
意的是,经常性的切换休眠和工作状态会让电源产生mV级的波动,特别对于很多线性稳压器只有
100mA以内的输出能力的情况更明显,这样的波动或许会影响系统内的AD和一些其他模拟电路,
值得注意。
2、掉电。如果进入了掉电模式,很多51芯片是无法通过中断重新开始工作的,可以外加一个微功
耗的单片机来提供复位,这个单片机只负责键盘扫描和复位51单片机,以及发送键盘编码到51芯
片。 我以前见过一个手持设备,耗电很小,但是包括了大容量存储、显示、输入、数据输出、检
索等功能,平时89C51总是处于掉电状态,但是有了键盘操作后,就复位开始运行,处理完键盘送
来的任务之后又自动掉电了。
3、复杂运算。复杂运算(譬如指数运算、浮点乘除)一定会占据更多系统时序,响应减少休眠时
间,可以通过查表方式,这样用大容量的表格代替了现场计算,更多的时间不就可以睡觉了吗?
4、如果软件任务少到一定程度,那么可以考虑把晶体搞到32k去运行,其实这样更省电,但是这
意味着51软件基本没什么高速的事情做,也不需要串行通信,否则,还是老老实实面对现实吧。
我觉得,51芯片用于电池供电的系统不是很合适,但是从开发周期看,它的开发环境很好,毕竟
可以承载8位机的相对大型的应用,有时候又不得不用它。我觉得距离51最靠近的AVR单片机更适
合将来的应用,因为其性能价格比相对其他单片机还是不错的,除非51芯片可以将来做到在3MIP
下,工作电流小于2mA,休眠电流小于500uA,掉电电流小于10uA。
在很多的设计中,采用线性降压的方法,电源损耗大,如提高供电电压,并用高效率的DC-DC电
源,可延长电源使用的时间
89C8252掉电工作,看门狗做“系统运行时钟”同时把看门狗复位“软件模拟成看门狗中断”
“狗”叫一次跳起来看看,“RAM值班室登个记”,同时还登记下当前PC+1的值,然后“睡死”
过去!
平均功耗不大于5V/0。3MA,而且有很强的抗干扰性!
软件优化很重要!
如64MS一次“狗”叫!起来做40条指令,24MHZ下最多:40*0。5=20US
于是占空比:20/64000=1/3200 即平均电流下降3200倍!!!
外设会受复位改变吗?当然!但锁存器干什么啊?!
如何知道程序能运行多久?下一条运行指令运行到那?
如果任何时刻,你自己编的程序运行在那个片区,你都不知道,那还叫什么搞软硬件的要天人合
一啊?!
系统任务不忙的情况下,你的看门狗定时复位方法还可以,但是。。。好多情况下似乎做不到呀
我的51系统只有200微安
省电是个大难题,特别是51,但只有用心还是可以做到的,特别是工作任务少的时候。我的一个
水文遥测系统,用12伏电池供电耗电只有200微安,有8Mbit data flash,一个调制解调器,一
个时钟,一个485通信口,一个232通信口,还有6个数码管,是不是够多的了,但它们平时都不
工作,我也是用看门狗复位来唤醒51单片机的,每1.6秒一次,用的是x25045,可是25045的复位
时间有200毫秒之多,实验发现,51从掉电返回到正常工作只要有30个毫秒足了,别小看节省的
这一百多毫秒,因为51在每次醒来是只要发现没有任务就可以马上POWERDOWN了,所以加了一个
CMOS的单稳来复位。其它的就是口线的状态一定要注意,不要让它吸收电流也不要输出电流,要
是做不到可以试着加一此电路,如反相器.
稳压电源是个要权衡的事,虽然开关稳压有较高的效率,但在低功耗设计不一定对,开关电源本
身消耗的电流就是一个大问题,一个微安级的系统也许要特别对待,我用的是max667线性稳压数
微安静态电流.我想开关电源做不到
对于外部事务频繁的应用,无法使用掉电方式
虽然很多51芯片支持外中断触发芯片脱离POWER DOWN状态(如华邦的W78E58、W77E58),但还
是解决不了串行通信的问题,而且对于需要内部精确定时的场合,从POWER DOWN到正常工作需要
很长时间,这个恐怕还是难于让人接受。莫非没有一个厂家可以产出高速小功耗的51芯片?没到
理呀,PHILIPS不是玩了很久吗?怎么弄出的芯片在12MHz下还是大于10mA,休眠也有几个mA,这
也吹牛没下功夫嘛!
用51做低功耗,太累了
低功耗多得是,象PIC、EMC轻松做到20uA以下,51有POWER DOWN,但只能复位唤醒,有少数可
用INT唤醒,太麻烦。有些有双晶体的单片机,做低功耗最简单,平时用32768工作也只有20uA,
这种单片机一般带有LCD。EMC内有PLL单片机做功耗系统很方便,象78565,567,功能强价格低
samgsung的单片机可以做到
565匠人也用过。平时进IDLE模式,功耗只有几个UA
分级供电和外部唤醒确是一种可行的办法
在分级供电中要注意的是如果电源是小电流的稳压器件最好有一个比较大的蓄电电路,要不然
单片机唤醒和上电时可能会起动不了,而且可能会进入一个不希望的振荡期,比如单片机要起
振,电流增大,这时电源供不起,电压就下降,引起的是单片机又停振电压又回升!所以一个合
理的电源管理电路就显得很关键,这方面的专业IC将是未来一个很有前途的产业!这个IC应有一
个内部低速的定时器和一个专门的蓄电管理电路,当电路进入低功耗后应该将蓄电电路冲满以备
唤醒和大功耗时用,这种电路主要用于小电流供电的环境,它可以为小电流供电环境提供一个短
时间的大电流工作。 另外单片机的耗电除了核本身的耗电外,大多是IO口的耗电,大家可以
通过降低主频,将IO口置在比较合适的状态来达到一个比较省心又省力的方式。而且不全理的频
繁唤醒有时会带来更多的电耗!
用TI的单片机MSP430系列非常省电。正常工作时几百微安,掉电时约1微安
87LPC76X低功耗51,32k时20uA
使用双振的单片机,在系统不忙的时候使用32768的晶振,同时进入SLEEP这样处理通常耗电都在
几个uA.在处理SLEEP唤醒后的程序需要小心处理,特别是台湾的单片机,有时厂家给出的资料都
要小心,我碰到过。
我不知道您是用的哪家的51单片机,功耗能做到这么低。据我所知ATMEL89C52 Powerdown mode
下最少是40微安。您的系统中有这么多的器件,即使都是低功耗可关断的器件,那你的系统每次
工作时都要启动所有的器件才能运转起来,这个启动过程是多长呢?还有您的单片机不会工作在
12V的,你还需要一个电压变换器,它平时不用电的吗?你的CMOS单稳不用电的吗?据我所知常
用的485,232,modem,flash都不是低功耗可关断的,如果您都使用的是特殊器件,那实用的意
义何在呢?或者您使用了其他器件来控制这些耗电多的设备,那您一定是硬件高手了。可否指点
一二?
高速51: C8051FXXX在1M指令流下,VDD仅仅1.5mA
用IO口控制RC振荡频率?
用RC振荡方式,并将IOSI口接一个电阻到IO口上。通过切换IO口的电平来切换频率,方法如
下: 功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片
机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在保证满
足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C
××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部分子程序(如
数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电路形式时,可以采
用中途提高工作频率的办法来解决。 具体做法是在闲置的一个
I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB1=0。需进行快速
运算时先置RB1=1,由于充电时,电容电压上升得快,工作频率增高,运算时间减少,运算结束又
置RB1=0,进入低速、低功耗状态。工作频率的变化量依R1的阻值而定(注意R1不能选得太小,
以防振荡电路不起振,一般选取大于5kΩ)。
改用C8051Fxxx,20MHz 仅仅10mA,若降到1MHz,可以做到1~2mA;
2. 或是干脆采用MSP430,一般<1mA,稍稍采取措施,马上可以接近零功耗!
大家不要以为更换CPU是很难的事情,我们仅仅用2周就更换成功CPU
先天不足,51低功耗没前途的
msp430,m16等有很多低功耗单片机,功能强,又是精简指令,全天uA级工作
成本也是关键,不一定非要低功耗器件。
我觉得要很好的利用单片机的中断和休眠功能,单片机尽可能的处于休眠等待状态,同时注意空
闲IO口的状态,输出的最好置低,输入的要视外围电路而定,不用的脚要处理好,不是简单不接
就可以的
另外,外围电路可以做分区域的电源开关,不用时,关闭电源,并将与其相连的单片机的IO口置
低,减少信号线馈电。
不知说的对不对。
刚开始做电池产品时,只有8031 ,考虑用PSEN什么的控制外部RAM,休眠方式,但是还是在十毫
安级. 现在好了,有许多型号单片机本身就是低功耗,为了减少体积,还要追求更低. 1.系统
设计,好的系统设计是降低功耗的关键. 减少外围器件,降低晶体频率.可以采用带lcd,ad,实时
时钟功能的单片机,即降低成本,又减少了故障率,可谓一举两得.HOLTEL,PHILIPS,PIC 都有此类
单片机. 低的主频也可以降低功耗,如ZILOG的单片机可以程序控制对主频的分频,在不忙时把
频率降低,需要时在提高. HOLTEK的可以采用双频率工作,高主频可以关闭,32768可以提供内部精
确计时,还可以激活休眠的单片机工作. 2.降低系统电压,可以降低功耗. 3.合理处理不用
的IO口,最好设为输入态.对外围电路也要考虑,如光耦,尽量使其导通态<断开态.驱动三极管的状
态.还有就是上拉,下拉电阻值,太小也会造成漏电.
Mega8的一个特点是带有内部的RC振荡器,别小看他,他与晶振的不同之处在于他的起振时间很
短,只要几uS,而晶振一般要几十mS,所以低功耗设计时一定要用,430的宣传不是也讲起动时
间6uS吗,那一样是指的RC振荡开始工作的时间。
我得设计静态电流50uA,实际只是LCD模块的电流,单片机平时处在掉电的状态。每隔1S倍液晶
模块唤醒一次,作一次显示的刷新工作,耗时约4mS,正常工作时如果有脉冲来的话,就作一些运
算,脉冲频率50Hz,每次运算不过200uS,这样下来,正极的功耗大大降低,加上一些外围电
路,平均在100uA以下。
低功耗设计
现象一:我们这系统是220V供电,就不用在乎功耗问题了
点评:低功耗设计并不仅仅是为了省电,更多的好处在于降低了电源模块及散热系统的成
本、由于电流的减小也减少了电磁辐射和热噪声的干扰。随着设备温度的降低,器件寿命则
相应延长(半导体器件的工作温度每提高10度,寿命则缩短一半)
现象二:这些总线信号都用电阻拉一下,感觉放心些
点评:信号需要上下拉的原因很多,但也不是个个都要拉。上下拉电阻拉一个单纯的输入信
号,电流也就几十微安以下,但拉一个被驱动了的信号,其电流将达毫安级,现在的系统常
常是地址数据各32位,可能还有244/245隔离后的总线及其它信号,都上拉的话,几瓦的功
耗就耗在这些电阻上了(不要用8毛钱一度电的观念来对待这几瓦的功耗)。
现象三:CPU和FPGA的这些不用的I/O口怎么处理呢?先让它空着吧,以后再说
点评:不用的I/O口如果悬空的话,受外界的一点点干扰就可能成为反复振荡的输入信号
了,而MOS器件的功耗基本取决于门电路的翻转次数。如果把它上拉的话,每个引脚也会有
微安级的电流,所以最好的办法是设成输出(当然外面不能接其它有驱动的信号)
现象四:这款FPGA还剩这么多门用不完,可尽情发挥吧
点评:FGPA的功耗与被使用的触发器数量及其翻转次数成正比,所以同一型号的FPGA在不同
电路不同时刻的功耗可能相差100倍。尽量减少高速翻转的触发器数量是降低FPGA功耗的根
本方法。
现象五:这些小芯片的功耗都很低,不用考虑
点评:对于内部不太复杂的芯片功耗是很难确定的,它主要由引脚上的电流确定,一个
ABT16244,没有负载的话耗电大概不到1毫安,但它的指标是每个脚可驱动60毫安的负载
(如匹配几十欧姆的电阻),即满负荷的功耗最大可达60*16=960mA,当然只是电源电流这
么大,热量都落到负载身上了。
现象六:存储器有这么多控制信号,我这块板子只需要用OE和WE信号就可以了,片选就接地
吧,这样读操作时数据出来得快多了。
点评:大部分存储器的功耗在片选有效时(不论OE和WE如何)将比片选无效时大100倍以
上,所以应尽可能使用CS来控制芯片,并且在满足其它要求的情况下尽可能缩短片选脉冲的
宽度。
现象七:这些信号怎么都有过冲啊?只要匹配得好,就可消除了
点评:除了少数特定信号外(如100BASE-T、CML),都是有过冲的,只要不是很大,并不一
定都需要匹配,即使匹配也并非要匹配得最好。象TTL的输出阻抗不到50欧姆,有的甚至20
欧姆,如果也用这么大的匹配电阻的话,那电流就非常大了,功耗是无法接受的,另外信号
幅度也将小得不能用,再说一般信号在输出高电平和输出低电平时的输出阻抗并不相同,也
没办法做到完全匹配。所以对TTL、LVDS、422等信号的匹配只要做到过冲可以接受即可。
现象八:降低功耗都是硬件人员的事,与软件没关系
点评:硬件只是搭个舞台,唱戏的却是软件,总线上几乎每一个芯片的访问、每一个信号的
翻转差不多都由软件控制的,如果软件能减少外存的访问次数(多使用寄存器变量、多使用
内部CACHE等)、及时响应中断(中断往往是低电平有效并带有上拉电阻)及其它争对具体
单板的特定措施都将对降低功耗作出很大的贡献。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。