This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!我是初学者,想咨询一个问题。我现在使用的单片机型号是msp430f2370,遇到一个问题是单片机工作时电流会突然变得很大。正常工作时是uA级别的,有时候会突然变成10mA或者几十mA级别。请问这种情况一般会是什么原因引起的?单片机程序没有问题。
MPS430系列电流偏大,这个问题比较多的客户反馈过,基本都是一些不需要使用的模块没有开启引起的。常见的列表未关闭模块如下:
1、USB
2、PMM (supply supervisors and monitors)
3、REFO standing in for XT1 (AM through LPM3)
4、Watchdog Timer
其他诸如ADC, timers之类的也需要检查。
引用网友
1、将不用的I/O引脚设置为高或者低状态,不要让其悬空。
2、在不需要运行时间严格要求的任务,如UART通信或精密脉冲时钟时序等,尽可能使用内部时钟,这通常是低功耗的首选。
3、关断所有不使用的外设:如PWM模块、AD转换器等等。
4、尽可能在程序代码中使用查找表,而不是让CPU去计算结果。
5、检查所有外部元器件的功耗,减少那些驱动外设,如EEPROM或者外部模拟电路的I/O数目。
软件方面:
[1]你要了解MSP430的4种不同模式下的时钟与模块使用情况,这样你才控制好整个设计的功耗管理。
[2]若不是很需要很高精度的时钟的话尽可能不要外部晶振,尽可能使用内部的DCO作为MCLK。当程序中需要在串口时,这时可以开启所需的时钟源以得到精度的波特率,不用时则要关闭掉时钟和串口模块。如果不是高速响应处理任务的话尽可能不要用选择外部晶体时钟作为MCLK。
[3]在进入低功耗模式前,尽可能将MCLK改为DCO模式。因为DCO模式在进入功耗模式后,在得到中断唤醒时是最速度启动工作的时钟源。这样可以大大减小在唤醒时节省能源。如果唤醒后确实需要高速度时钟源,此时可以再转换到高速度的时钟源上使用。