现在有个小产品用的MSP430F149,走的RS485信号,总线上共挂了6个设备(A地点)。另外在B地点也有同样的应用(A地和B地不在同一个地方,B地点无死机),现在A地会有设备死机现象,输入电源为12V,板上电源有两极稳压,一级为PWM电源芯片,二级为LDO;485信号没有隔离(刚开始485芯片用的是国产的,死机更频繁,现在换成进口485芯片,死机次数减少,但是偶尔还有)。所以初步怀疑是死机为干扰造成。硬件使用外部8M晶振,阻容复位;程序在定时器中喂狗(1毫秒定时器,在定时器中30秒指示灯闪烁一次,以指示定时器工作),主循环定义一变量,每次循环都清零,此变量在定时器中累加,当超过一定值后MUC复位,用来保证主循环运行。
目前我的A地点有死机现象,死后30秒时间到灯未闪烁,说明定时器不工作;此时应该无法喂狗,系统应该复位重新运行,但是就是保持死机状态。此时把复位脚和电源地短路(手动复位)后,调备能重新启动。基于以上现象,我是否可以得出以下结论: (1)死机由于外在干扰所致(电源有两极稳压,所以干扰源及有可能由485线上进入设备); (2)死机后MSP430F149片内看门狗不起作用; (3)MSP430F149的抗干扰能力不强(是否可以换加的型号?);
因为在B地点无死机现象,所以软件应该没有问题。我现在计划使用独立的看门狗芯片。485芯片是5V工作电压(MAX3082),若要在线上使用瞬态二极管,不知道用哪种型号好点(要贴片封装的)? 另外问一下各位高手,我现在应该如何解决是好?是否能帮忙分析一下原因?谢谢
|