串口总死掉

[复制链接]
 楼主| ZLSWRH 发表于 2010-12-28 17:05 | 显示全部楼层 |阅读模式
现象:程序运行3天后或者更长时间,主程序正常运行,但串口死掉了,重新给CPU上电,恢复正常!
问题:有那些情况导致,请高手赐教!
chunyang 发表于 2010-12-28 17:11 | 显示全部楼层
往往是闩扣效应所致,说明干扰较强,需要加扛干扰电路,比如串磁珠,加钳位等等。
NE5532 发表于 2010-12-28 17:27 | 显示全部楼层
后面是232还是485?挂示波器确认芯片有没有输出,就是区分是界面芯片死还是MCU死
 楼主| ZLSWRH 发表于 2010-12-28 20:22 | 显示全部楼层
是232芯片,MCU收到数据,就是无回答,主程序的循环未死!
NE5532 发表于 2010-12-28 20:37 | 显示全部楼层
如果你能用示波器之类确认232芯片输出有数据,且单片机的主循环没死,那多半都是程序问题,有小概率发生的时间造成了程序流程“飞”。
 楼主| ZLSWRH 发表于 2010-12-28 21:07 | 显示全部楼层
有小概率发生的时间造成了程序流程“飞”。但还能回来,真让人难解!
NE5532 发表于 2010-12-28 22:00 | 显示全部楼层
注意你是重新上电后恢复的,不是自动恢复的。我有8层把握是你软件上的问题。
zhaoyu2005 发表于 2010-12-29 09:36 | 显示全部楼层
先换个正品的232看看(仿232,有不稳定的),如果还是这个问题,那就是程序的问题
chunyang 发表于 2010-12-29 12:30 | 显示全部楼层
是闩扣效应还是软件bug很容易判断,出故障时不要重新上电,人工给个复位信号,如果恢复正常就是软件问题,否则是硬件问题。
yangxh2005 发表于 2010-12-29 15:25 | 显示全部楼层
这个问题不难查,先静下心来,按chunyang的办法看看是不是软件问题,如果不是,用示波器看232接收的输入输出端信号是否一致,应该能找到原因了
 楼主| ZLSWRH 发表于 2010-12-29 15:58 | 显示全部楼层
产品装在机柜里,无法实现人工给个复位信号.232收到数据是通过我设计好的指示灯看出的(而且加了隔离电源)!
示波器也无法观察!
acute1110 发表于 2010-12-29 16:01 | 显示全部楼层
的确如Chunyang所说,这么查能比较快的定位问题的根源,如果是硬件问题还需要通过一系列的方法来验证具体的问题源,为了快速复现你可以提高串口的baudrate来提高复现的几率
1,出故障后看看能否用软件将uart寄存器的值读出来分析一下。然后重新初始化看看能否恢复。
2,如果还不能恢复,看看能否采用非上电复位的方法来试试。即按reset键。
3,如果还不能恢复,再查uart的外围硬件电路,加TVS,串电阻阻做保护等等。
ocon 发表于 2010-12-29 16:37 | 显示全部楼层
如果是新设计的系统,八成是软件的BUG,比如通讯出错时忘记清除出错标志位之类的。
 楼主| ZLSWRH 发表于 2010-12-29 16:50 | 显示全部楼层
uart的外围硬件电路已有RXD和TXD对地加P6KE18CA,并串联10/2W电阻的保护!
acute1110 发表于 2010-12-30 08:47 | 显示全部楼层
10/2W的电阻有个屁用(不小心粗口了),换100ohm到1K都可以啊。不要2W的 1/4就可以了
 楼主| ZLSWRH 发表于 2010-12-30 21:10 | 显示全部楼层
LS!请讲明原因!?
acute1110 发表于 2010-12-31 17:30 | 显示全部楼层
10ohm的电阻吸收的能量有限。
qwqwqw2008 发表于 2010-12-31 19:01 | 显示全部楼层
八成是软件的BUG ,应该是的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

45

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部