浅谈单片机低功耗
最近做的几个项目,都是锂电供电的,对于电池供电的应用来说,低功耗是无法避开的。不少半导体公司特意推出超低功耗系列单片机,比如TI MSP430系列,ST STMxxL系列等。
单片机一般都提供多种电源模式,常见的有运行模式、空闲模式和休眠模式。除了运行模式,其它的都可以统称为低功耗模式。以某个单片机的手册参数来对比下不同模式下的电流。
1 运行模式系统时钟和内部的模块都在活动状态,运行模式下也可以通过降频、关闭不需要的外设时钟等方式降低工作时的功耗。
系统工作在48MHz频率下,所有外设模块都关闭时,电流高达8.5mA,当降频至12MHz时,电流约3.6mA, 下降很明显。
2 空闲模式
仅禁止系统时钟,其它的模块仍在活动状态,任意中断可唤醒。在空闲模式下,RAM和特殊功能寄存器保持,但如果定时器在运行,定时计数寄存器值会增加。空闲模式下功耗比正常模式有大幅降低。
系统工作在48MHz频率下,所有外设模块都关闭时,进入空闲模式后电流约为3.3mA,还不到正常模式的一半。
3 掉电模式
系统时钟、内部模块都停止运行,只有RAM中的数据保持。也有不少MCU提供内部低速RC震荡器或支持外部低速时钟,如果使能了低速时钟,那么由低速时钟驱动的模块依然可以在掉电模式下运行,比如定时器,RTC模块等。
进入掉电模式后,电流下降到uA级,当然这款只是普通的单片机,并不是低功耗系列的,低功耗系列的单片机在掉电模式下一般可以到1uA以下。
4 掉电模式控制
对于电池供电应用,mA级耗电肯定是不满足需求的,我们着重分析下掉电模式处理。
(1)内部模块
进入掉电模式后,会自动关闭主时钟,以及使用该时钟驱动的外设模块。如SPI、高速定时器等。
内部模拟电路有独立的供电,需手动关闭ADC、模拟比较器 等模拟电路。
关闭内部电压监测功能,如低压复位、掉电检测电路。
低速时钟如不需要也要关闭,否则使用该时钟的模块(看门狗或通用定时器等)依然在运行。如果使用了RTC模块需要在掉电模式下也能计时,不要停止RTC的驱动时钟。
(2)引脚控制
输出IO,输出高电平或低电平的原则 是切断电流输出或流入。
输入IO,根据外部驱动情况选择高阻输入(外部输入电平是固定的)或上下拉。
悬空的引脚处理,配置为高阻输入时,抗干扰较差,可能会漏电,应配置为固定电平。
下载器时钟与信号,禁止下载功能,将引脚配置为IO模式,输出低电平。唤醒后可恢复为下载功能。
(3)唤醒配置
在进入掉电模式前,要配置好唤醒源及唤醒方式,常用的有IO输入中断唤醒、外部中断唤醒、内部通信模块事件唤醒等,在唤醒后要恢复正常功能。有些特殊的应用需要定时唤醒,比如蓝牙。
节约到极致,谈谈单片机低功耗设计
所谓智能硬件至少是单片机控制系统。那么现在,有许多单片机应用领域,都是用电池供电,节能成为设计工程师肯定是普遍关心的问题。今天,就说说追求极致节约下的单片机低功耗设计。
进入掉电模式
现在有很多的低功耗的片子,特别是在进入掉电模式之后,只有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唤醒后的程序需要小心处理,特别是台湾的单片机,有时厂家给出的资料都要小心。
大家不要以为更换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以下.
相关问答
51 单片机 最小系统能做什么项目?51单片机最小系统是一种基于8051系列单片机的最简单的硬件系统,包括单片机、晶振、电源和最基本的外围电路。它可以用于各种小型项目,如温度测量、光照控制、...
单片机 最小系统的功能是什么?一、单片机最小系统是什么单片机最小系统,或者称最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对单片机来说,最小系统一般应该包括:单片机、电源电...
单片机 休眠模式和 低功耗的 区别?低功耗还有指令运行,休眠模式没有指令运行。单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值...
如何选择一款合适开发的 低功耗单片机 ?[回答]单片机在开发时,应该尽量的简化代码,让单片机在运行的时候能够花费的时间更短,迅速反应单片机功能程序,简洁的指令逻辑不但可以有效的降低单片机功...
c18的 低功耗 各位:pic 单片机 c18的低?C18主要是针对pic18系列的(8位的)C30主要是针对dipic33和pic24(都是24的)C18主要是针对pic18系列的(8位的) C30主要是针对dipic33和pic24(都是24的...
mcs-51 单片机的 特点及 应用 ?MCS-51单片机是美国INTE公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MC...
在线的行家求赐教! 低功耗 系统,什么是 低功耗 系统?, 低功耗 LC...[回答]在我认为,就是低噪音,低电功电能消耗,同时也是性能低的系统。有哪种方法可以实现MCU低功耗?现在的电子产品,对低功耗的要求越来越高。产品功耗的问...
单片机的 种类?根据不同的指令集、架构、性能和应用场景,单片机可以分为多种不同的类型,常见的单片机有以下几种:1.8位单片机:它是最为常见的一种单片机,具有低功耗、低成...
用ADC做按钮怎么实现休眠唤醒( 单片机 )-ZOL问答加一片低功耗的电压比较器,ad按键同时接入比较器的输入,比较器输出接到中断输入...(象计算器的ON键)其它键用AD检测。用ADC做按钮休眠唤醒的单片机实现方法是这...
现在流行什么 单片机 ?现在比较流行单片机有51单片机、AVR、PIC、MSP430、STM32、瑞萨单片机、飞思卡尔单片机。1.51单片机ATMEL(艾德梅尔)的:89C51、89C52STC(国产宏晶)单片机:8...