单片机开发,有时候不只是软件开发,硬件出了问题,也很麻烦,我之前遇到过一个奇怪的问题,分享给大家。
开发了一个项目,51硬件电路(电源、复位、晶振)都是用的之前多次量产过的,从来没出过问题。电路板生产出来了,焊上元器件,单片机代码也写好了,调试了二天,功能都没有问题,老化了二天,一直没有问题,总共做了五台样机。
开发主管也亲自测试没问题后,把电路板文件,单片机烧录文件,元器件参数全部发给了客户,客户自己去批量生产。
一个月以后,客户反映有一些设备死机了,有的重新关掉电源再上电又可以,有的重新上电还是死机,有的在工作中突然死机。我们所有人听到这个情况,都觉得是软件问题,所有人开始查软件代码,没人能查到软件代码有问题,为了验证是不是软件的问题,又重新写了一个代码,但是客户烧录新代码后反映还是一样的故障。应该可以排除软件的问题了,决定过去现场查原因。
电路板应该没有问题,如果有问题的话,所有的设备都会是一样的有故障,单片机的线路图也是用的之前测试过的。所以查了一下新的电路(没有验证过的那部分),也没有查出问题来。问题奇妙的是,有问题的设备,重新上电,有时又没有问题,所以很不好查。
终于找到一台经常出现故障的设备,测量电压都是正常的,不管是出现了故障还是没有故障,所以电源电路应该没有问题。检查单片机周边的虚焊或者漏焊的情况,也没有发现。
没有招了,用示波器接在单片机的晶振上,发现只要设备一出现故障,晶振的频率是零,估计是晶振这个元件不稳定,换一个其它品牌的,故障解除,是客户买的晶振这个元件有问题。
晶振电路
就一个小小的晶振,害我们不停的怀疑是软件有问题,没有人怀疑晶振有问题,所以单片机开发的项目是一个系统,出了问题,要全面的查找。一般从事单片机开发工作,软件和硬件知识都要精通,可以偏向软件一点,但是硬件不懂的话,出了问题很麻烦,客户会认为是你的软件代码写的有问题。把这个实例分享出来,大家碰到这种情况,也会有经验。
原创文章,禁止转载和抄袭。
领取专属 10元无门槛券
私享最新 技术干货