遇到一个奇怪的现象,请专家帮忙分析原因。MSP430F5510,按键通过IO中断检测。进入LPM3后,通过IO中断唤醒,并开启定时器A,计时按键时间,短按,则关闭定时器A,重新进入LPM3。长按开机。但是在短按3次后,也就是第3次开启关闭定时器A后,芯片的功耗忽然增加。此时仍然进入了LPM3,但功耗却大了好几倍。在前两次开启关闭定时器A时,电流正常。请帮忙分析一下原因。还有,定时器A模块怎样才算是关闭了?TACCR0 = 0; 和进入停止模式(MC_0),是停止计数了,还是关闭整个模块了? 谢谢!
Charles Wu:
先回答TimerA关闭的问题。TimerA作为一个数字外设,其实和比较器,AD等模拟外设是不同的。数字外设的电流消耗主要是由clock信号震荡在芯片内部杂散电容上的消耗造成的,所以数字外设一般没有on/off的设置,只需要关闭它的clock信号即可。而联系到你的设计,MCU进入的是LPM3,若TimerA3的clock source是低频时钟,则TimerA是否停止,系统的功耗不会有太大的变化。
Charles Wu:
回复 Charles Wu:
能否给出系统在正常情况和功耗变大的情况下具体的电流值来帮助分析?从你系统如此好的一致性(每按3次就发生?),感觉问题还多是出在程序逻辑上,是否按三次后就错误的打开了某一外设,或者GPIO口的输出发生改变,从而造成功耗增加?