TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430 外部低速晶振不稳定导致程序跑飞了

请问下,

现象:就是我在使用MSP430FR5887单片机的ESI功能时候,当手碰触到低速晶振时候,导致晶振不稳定,感觉程序运行跑飞了,没有在主循环中运行。

1、我怀疑的是,因为我ESI使用的外部低速的晶振32.768KHZ,其他功能都关闭了,所以手碰触到晶振后,会导致进入ESI中断,我用调试模式有印证有进入ESI中断。

2、然后我怀疑可能原因是频繁进入ESI中断,然后在进入中断前关闭总中断,退出时候再打开,但是用手碰触,发现还是跑飞了。

3、我去掉ESI,运行,用手碰触,看功耗,有进入芯片休眠模式,然后我在醒来的后面有做点平输出,发现有电平输出。那应该就是外部低频不稳定,导致ESI频繁中断,然后导致芯片跑飞了。

以上就是我做的步骤,问下芯片晶振不稳定时候,可以有什么方式使其复位吗?我记得其他单片机当出现不稳定的时候会复位的。

灰小子:

勘误手册里有个ESI的bug,你看看是不是掉这个坑里了

user3877568:

回复 灰小子:

应该不是这个坑,因为我在ESI中断里面就只有清除中断,感觉是手碰到晶振后,程序跑飞了,我用示波器看了晶振的振荡和ESI振荡都正常,但是程序运行就是不正常

user3877568:

现在我处理方式是在ESI中关闭总中断,然后在ESI中判断CSCTL5中的LFXTOFFG是否为1,如果为1,则清空,并重新配置振荡寄存器,这样效果上会好很多,但是碰触晶振还是偶尔出现电流大的情况。正常工作休眠功耗在7uA左右,但是如果碰触晶振,有时候会达到40uA。这时候芯片肯定是休眠的,但是LFXTOFFG这个我猜测应该是为1的,晶振振荡用示波器看恢复了正常。但是电流没有降下来,这个是不是芯片起振时候的BUG

gaoyang9992006:

回复 user3877568:

好多单片机都是不可以手摸晶振的,都容易引起停振和跑飞。实际的产品,你也是摸不到晶振的。

user3877568:

回复 gaoyang9992006:

就是产品是电池类的产品,就是放入外壳的时候就已经上电运行了,这时候组装的人万一碰触,这时候也不好检测功耗,这样不是会带来产品的不稳定性。

我的设想是晶振碰到没关系,只要能碰触后复位或者什么措施让他重新进入低功耗休眠就可以了。但是现在是进入休眠,但是功耗没下去,应该是晶振振荡带来的,我有试过在休眠时候大电流后,强制一个定时器唤醒源,  HWREG8(CS_BASE + OFS_CSCTL5) &= ~(LFXTOFFG);判断清空这个标志位,再进入休眠后电流就降下来了,所以几乎可以判断芯片外部低频晶振当有错误标志的时候,导致的功耗上去休眠功耗在36uA左右。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430 外部低速晶振不稳定导致程序跑飞了
分享到: 更多 (0)