总体原则:

1、将不用的I/O引脚设置为高或者低状态,不要让其悬空。

2、在不需要运行时间严格要求的任务,如UART通信或精密脉冲时钟时序等,尽可能使用内 部时钟,这通常是低功耗的首选。

3、关断所有不使用的外设:如PWM模块、AD转换器等等。

4、尽可能在程序代码中使用查找表,而不是让CPU去计算结果。

5、检查所有外部元器件的功耗,减少那些驱动外设,如EEPROM或者外部模拟电路的I/O数目。总之,要去寻找那些电流消耗的单元,并尽量降低其功耗。

硬件方面:

[1]尽可能采用低功耗的器件或电路设计。比如,低功耗场合能不用LED尽可能不要用,声响的电路也是一样。

[2]尽可能选择带有关闭功能的器件,比较运放、R232电路、逻辑电路等等…在不必要的时候使其关闭。

[3]在显示方便也要选择低功耗的显示方式,比如采用LCD片,而不要用LCD模块。或采用LCD模块时将背光关掉。

[4]一些常用开关晶体管由三极管改为MOSFET管。

[5]有可能的话,不要选择小阻值分压;这样同样可减少功耗。按键上接电阻同样可以选择大点。对于模拟前端部分可能不态适合,因为当用高精度ADC时,电阻值越大热噪声就会越大。所以这做法不适宜用在高精度ADC前端。

[6]关于MSP430的IO处理,我个人的理解是可以空着,并设置为输入。因为设置为输入时IO处理高阻态,IO的漏电流只有50nA。

[7]能不用LDO尽可能不要用LDO,因为线性电源器件会带功耗上的增加。确实没办法了可以选择CMOS型的LDO器件。或采用高效的DC/DC电源管理电路,以提高效能利用。关于以上几项,MC430F44开发板在设计都是基于这些原则上设计的,同时兼容了通用器件的使用。也就是说两种类型的器件都可以用。

软件方面:

[1]你要了解MSP430的4种不同模式下的时钟与模块使用情况,这样你才控制好整个设计的功耗管理。

[2]若不是很需要很高精度的时钟的话尽可能不要外部晶振,尽可能使用内部的DCO作为MCLK。当程序中需要在串口时,这时可以开启所需的时钟源以得到精度的波特率,不用时则要关闭掉时钟和串口模块。如果不是高速响应处理任务的话尽可能不要用选择外部晶体时钟作为MCLK。

[3]在进入低功耗模式前,尽可能将MCLK改为DCO模式。因为DCO模式在进入功耗模式后,在得到中断唤醒时是最速度启动工作的时钟源。这样可以大大减小在唤醒时节省能源。如果唤醒后确实需要高速度时钟源,此时可以再转换到高速度的时钟源上使用。

[4]系统在每隔xxx秒唤醒时启动ADC一次转换,同时使能ADC12IFG中断,当中断后读出ADC12MEMX中的结果存储,然后休眠。ADC采样率满足10次谐波要求条件下取小些。