原来单片机反复复位死机的凶手是它….

发布时间:2018-10-19 阅读量:1139 来源: 我爱方案网 作者: cicyxu

相信也有一些单片机工程师也遇到过这样的问题:明明自己设计的项目能够正常工作,软件程序反复检查也没问题,但是单片机运行一段时间后却反复死机。把自己的项目从头到尾检查一遍,仍然没有头绪。其实很多时候都是当局者迷,一旦陷入了误区,很难从迷局中走出来。所谓旁观者清,何不站在另外一个角度看自己的设计,说不定有意外的收获。今天借助网友fnual在设计项目中获得的一个教训,给广大单片机工程师也提提醒,告诫大家以后也不要犯类似的错误。

事情是这样的.....

朋友委托fnual给他们做一个小型控制器,由于工期催得紧,没有时间做线路板。fnual根据客户提出的要求,在原有成型产品的基础上进行修改。控制器的工作过程很简单,只需要把传感器传上来的数据分别传送到两块数字表上显示,然后根据传感器传上来的数据确定两个出口固态继电器的动作。这里用到3个按键,3个指示灯,2个出口固态继电器和485通讯。fnual用ATMEG8做控制芯片,用内部8M RC振荡器做时钟,内部看门狗。问题来了,同事拿着这个控制器去操作箱上安装配线,调试说装置死机了。

已经配置了看门狗,正常程序出错是可以复位的。把装置拿回来通电测试没反应,重新烧写程序还能正常工作。当时第一反应觉得是静电搞得鬼,因为这个装置原来是没有按键的,这次的按键是在操作箱上接3个按钮到装置的CPU管脚上,没有保护措施,加上冬天空气干燥,很容易产生静电。于是给3个按钮都加上了光耦隔离,改好之后再进行测试,还是死机啊。

开始怀疑是静电原因,可是加了隔离之后依然没有改善,难道是软件程序问题?可是将死机了的芯片擦了,重新烧录程序却还能正常工作,这就奇怪了。经过反复的实验发现是和数字表通讯之后死机的,更进一步的确认是跟数字表通讯以后修改控制器的EEPROM以后死机的。去掉控制器,写EEPROM程序就不再死机。反复试验了十几次发现规律,只要是自动状态的1号状态再和数字表通讯就复位,又怀疑是485通讯没加隔离。于是我们不仅仅增加了485隔离,还增加了隔离电源。OMG,结局还是那么惨,依然复位,死机。。。

软件经过反复的检验,从C语言换成汇编语言,依然无法找出原因,最后同事建议找找硬件问题。于是拿示波器一查,CPU的5V电源在复位的时候是个大低谷,持续大约50毫秒…

搞了半天,原来凶手是它——电源,一直被我们忽略的东西。因为电源的质量不好,当有继电器动作,通讯时,电源就挺不住了。最后给电源变压器增加容量后,再也不复位了,终于圆满结束了。

围绕电源的质量这么小的一个问题,让单片机饶了一大圈,又是改程序,又是加隔离的。今天把这个教训分享出来,就是想提醒广大单片机工程师千万一定要把电源弄好,不然因小失大哦!





相关资讯
无源晶振YSX321SL应用于高精度HUD平视显示系统YXC3225

在现代汽车行业中,HUD平视显示系统正日益成为驾驶员的得力助手,为驾驶员提供实时导航、车辆信息和警示等功能,使驾驶更加安全和便捷。在HUD平视显示系统中,高精度的晶振是确保系统稳定运行的关键要素。YSX321SL是一款优质的3225无源晶振,拥有多项卓越特性,使其成为HUD平视显示系统的首选。

拥有卓越性能的高精度超薄低功耗心电贴—YSX211SL

随着医疗技术的进步,心电监护设备在日常生活和医疗领域中起到了至关重要的作用。而无源晶振 YSX211SL 作为一种先进的心电贴产品,以其独特的优势在市场上备受瞩目。

可编程晶振选型应该注意事项

对于可编程晶振选型的话,需要根据企业的需求选择。在选择可编程晶振的时候注重晶振外观、晶振的频率、晶振的输出模式、晶振的型号等等,这些都是要注意的,尤其是晶振的频率和晶振输出模式以及晶振的型号都是需要注意的。

性能高的服务器—宽电压有源晶振YSO110TR 25MHZ,多种精度选择支持±10PPM—±30PPM

在现代科技发展中,服务器扮演着越来越重要的角色,为各种应用提供强大的计算和数据存储能力。而高品质的服务器组件是确保服务器稳定运行的关键。YSO110TR宽电压有源晶振,作为服务器的重要组成部分,具备多项优势,成为业界必备的可靠之选。

差分晶振怎么测量

其实对于差分晶振怎么测量方式有很多种,主要还是要看自己选择什么样的方式了,因为选择不同的测量方式步骤和操作方式是不同的。关于差分晶振怎么测量的方式,小扬给大家详细的分享一些吧!