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我们完全可以用单片机来控制它的片选端口来控制它的工作与休眠从而节约电流
8这招也是最毒辣的一招通常我们驱动一些LED器件,完全可以通过PWM来控制从而省略限流电阻,要知道当器件选定后它的内阻也就已经确定,而当电源电压也确定的时候,就可以通过占空比来确定器件上的电压从而节约了限流电阻同时也就节约了限流电阻上面的功耗,如果用户使用的是电池,我们完全还可以不定期的对电池电压进行检测然后改变占空比,从而恒定负载上面的电压,达到电源的最大利用率