1 降低功耗从 MCU 选型开始
一开始选型的时候就应该考虑选择低功耗的 MCU,比如 MSP430 一类的为低功耗设计的CPU。强烈不建议使用 51,一方面是因为 51 速度慢,很多运算用 51 都需要很高的主频而主频高了就意味着高的功耗;另外一方面是因为 51 的 IO 有上拉电阻。虽然当 IO 为高电平时上拉电阻不费电,但是下拉电流的时候却有不小的功耗产生。
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 来控制从而省略限流电阻。要知道当器件选定后它的内阻也就已经确定,而当电源电压也确定的时候,就可以通过占空比来确定器件上的电压,从而节约了限流电阻同时也就节约了限流电阻上面的功耗。如果用户使用的是电池,我们完全还可以不定期的对电池电压进行检测然后改变占空比,从而恒定负载上面的电压,达到电源的最大利用率。