您现在的位置是:首页 > 单片机

低功耗设计综述

2020-03-08 02:15:25

低功耗设计综述

低功耗设计并不仅仅是为了省电,更多的好处在于降低了电源模块及散热系统的成本、由于电流的减小也减少了电磁辐射和热噪声的干扰。随着设备温度的降低,器件寿命则相应延长(半导体器件的工作温度每提高10度,寿命则缩短一半)
1、降低功耗从MCU选型开始,开始选型的时候就应该考虑选择低功耗的MCU,比如MSP430一类的为低功耗设计的CPU。不建议使用51,一方面是因为51速度慢,另外一方面是因为51的IO是有上拉电阻的,虽然当IO为高电平是上拉电阻不费电,但是下拉电流的时候却也有不小的功耗产生。还有一点就是51的运算速度实在是太慢了,很多运算用51都需要很高的主频而主频高了就意味着高的功耗。
2、选择器件用电电压,很明显降低器件的用电电压能够明显的降低器件的耗电比如说ATmega8和ATmega88虽然芯片大致内部结构一致但是后者可以工作在1.8V的超低电压下,而前者就不行。
3、尽量降低器件的工作频率,大家都知道CMOS电路的工作电流主要来自于开关转换时对后一级输入端的电容充放电,如果能够降低MCU的工作频率自然耗电也就下来了,要知道当AVR工作在32.768Hz时和工作在20Mhz时的工作电流差异可不是一般的小啊
4、尽量使用中断让处理器进入更深的睡眠,众所周知睡眠模式和掉电模式能够大大的降低MCU的工作电流,聪明的单片机设计师能够充分的利用MCU的中断功能让MCU周期性的工作和睡眠从而大大的降低MCU的工作电流。
5、尽量关闭MCU内部不用的资源,不用的东西干吗开着呢,比如ATmega8内部的模拟比较器,默认是开着的,还有ATmega88内部的大多数资源都可以在不用的时候用软件关闭。
6、尽量使用VMOS做为外部功率扩展器件,道理很简单VMOS驱动的时候是电压型器件,驱动是几乎不产生功耗,要比普通的晶体管省电多了,而且由于VMOS的导通内阻低通常只有几十个毫欧,在小电流的时候器件自身发热也小,尤其是小电流是效率远比 传统晶体管要高的多的多,这里还是建议使用高速VMOS,因为高速VMOS用于开关速度相当高的PWM时效率会更高。
7、片外IC的电源最好都能由MCU的IO控制,比如说我们常用的24C02,由于它是掉电记忆的,所以我们完全可以在它不工作的时候对它关电源,以节约电流还有比如说我们常用的6116的SRAM我们完全可以用单片机来控制它的片选端口来控制它的工作与休眠从而节约电流。大部分存储器的功耗在片选有效时(不论OE和WE如何)将比片选无效时大100倍以上,所以应尽可能使用CS来控制芯片,并且在满足其它要求的情况下尽可能缩短片选脉冲的宽度。
8、使用PWM方式驱动LED器件,从而省略限流电阻,要知道当器件选定后它的内 阻也就已经确定,而当电源电压也确定的时候,就可以通过占空比来确定器件上的电压从而节约了限流电阻同时也就节约了限流电阻上面的功耗,如果用户使用的是电池,我们完全还可以不定期的对电池电压进行检测然后改变占空比,从而恒定负载上面的电压,达到电源的最大利用率。
9、慎用信号的上拉或下拉电阻。信号需要上下拉的原因很多,但也不是个个都要拉。上下拉电阻拉一个单纯的输入信号,电流也就几十微安以下,但拉一个被驱动了的信号,其电流将达毫安级,现在的系统常常是地址数据各32位,可能还有244/245隔离后的总线及其它信号,都上拉的话,几瓦的功耗就耗在这些电阻上了。
10、CPU和FPGA的闲置I/O口处理。不用的I/O口如果悬空的话,受外界的一点点干扰就可能成为反复振荡的输入信号了,而MOS器件的功耗基本取决于门电路的翻转次数。如果把它上拉的话,每个引脚也会有微安级的电流,所以最好的办法是设成输出,当然外面不能接其它有驱动的信号。
11、FGPA的功耗控制。FGPA的功耗与被使用的触发器数量及其翻转次数成正比,所以同一型号的FPGA在不同电路不同时刻的功耗可能相差100倍。尽量减少高速翻转的触发器数量是降低FPGA功耗的根本方法。
12、软件与硬件配合来降低功耗,总线上几乎每一个芯片的访问、每一个信号的翻转差不多都由软件控制的,如果软件能减少外存的访问次数,多使用寄存器变量、多使用内部CACHE,及时响应中断(中断往往是低电平有效并带有上拉电阻)及其它针对具体硬件所采取的特定措施都将对降低功耗作出很大的贡献。