如何解决PIC单片机硬件死锁的问题

控制/MCU

1878人已加入

描述

1、频繁插拔电时,PIC单片机容易死机。用一个10K电阻并在LM7805的5V输出端到地。

2、单片机的复位端的电容不能太大。

使用PIC单片机去设计工控电路,最头痛的问题,就是 PIC 单片机在受干扰后经常硬件死锁,大部份人归咎于“CMOS的可控硅效应” 因而产生死锁现象,一般都认为“死锁后硬件复位都是无效的,只有断电”。但是一个成熟的商品,那须要你去断电呢? 就好像一台电冰箱,压缩机一启动,产生干扰, CPU 受干扰因而‘硬件死锁’,死机在那儿,假如发现了,可以马上拔掉电源插头,隔几秒再插回,如此的动作可以接受吗? 假如死机时没发现,死机几十天,你猜它会如何呢? 应该是供给CPU电源的稳压IC烧毁了。


 

PIC单片机为什么会硬件死锁,PIC单片机在受干扰后经常硬件死锁,那么PIC要‘看门狗’有何用,有没有人深入去探讨其原因,在各 PIC 单片机论坛也提得很多,各有各的观点,总具体的原因不外是“CMOS的可控硅效应”而产生死锁现象, 依我各人的观点,应与 “CMOS的可控硅效应”无关,但很多大虾皆认为是“CMOS的可控硅效应”所引起的,所以一直以来我也不方便提出,说不定是我的观点错误,提出来反而误了大家,但至今,针对PIC 单片机产生死锁现象,都还没有详细的原因说明及对应之道,在别的PIC 单片机论坛也还在提此问题,我就将本人找寻PIC ‘死锁现象’的经过提供大家参考。

许久年前,PIC16C5x刚出产一两年,(PICxxxx 原先只有165x,属于NMOS结构,大量用于通用-GI的选台器、有线电视解锁器,后来改为CMOS结构,更名为16C5x),当时只有 16C54、55、56、57 四个型号,仿真器只有顶尖公司制造的 16C5x DOS版仿真器(第一代),它也是 Microchip 第一个OEM仿真器厂。16C5x 当年为最省电的OTP、QTP 单片机,价格又比其它的单片机便宜,只是它很容易受干扰死机,很多大厂不敢使用它。有一天,有位朋友要我兼差帮他们公司设计汽车防盗器,当时市场上的汽车防盗器都还用CD40xx的逻辑电路去设计,各个时控都须一组RC电路,电路板上十几个IC(加上遥控解码IC),至少有7~8个VR,调整时非常复杂,当时我就以一个16C55+一个ULN2003+一个解码IC (当时技术未成熟,还没用PIC程序解码,后期的已将解码IC省略),总计三个IC就解决,电路方面有某些是依书本上的电路移植过来(重置电路也由一本 PIC 应用的书本移植过来),样品出来后,当时对方存着很多疑问,电路怎么这样简单,同时间内有4、5个‘计时器’在计时,又要做那么多的I/O侦测工作,时控能准确吗? 性能如何呢? 稳定性? 。..。..。 总体而言, CPU所设计的电路, 对于功能-绝对是比逻辑电路所设计的好太多了,时控的准确性-我为它保证所有的时控误差在1%之内, 至于稳定性----当时的样品时常当机、死机,CPU 发烫,也就是大家所谈的PIC的硬件死锁。

为了此问题(大家最怕的问题),找遍所有的资料,都毫无所获,在PIC的书上都没有看到类似讯息,只好自己单打独斗的去奋斗、去找原因。我花了几天的时间,模拟了各种状况,做了各式各样的实验,制造各种干扰,用示波器测量各点所发生的异常波形。

其中一个简单的实验,(/MCLR 的接脚上,接一个提升电阻至 V+,接一个 0.1uf至地,接一个按键开关至地),让我得到一个我所需要的答案,实验时我多次的按按键开关,应该只是重置而已,但很容易进入所谓的‘硬件死锁’,连续测试,都会重覆发生,机率非常高,最后得到一个答案,PIC晶片的MCLR硬件设计有问题,与其他I/O脚无关联,不是 I/O 脚受干扰, 而是/MCLR 在重置或受干扰时,/MCLR 脚会产生一个振荡信号,当/MCLR 脚的外部接有电容时,它就永在发振,而PIC晶片内部某种硬件原因,导致于VDD与VSS之间产生很大的电流,所以VDD与VSS像短路一样,CPU因而发烫,当把电容移开后, CPU就重新工作,耗电流也就恢复正常了,所以我就认为PIC它不是硬件死锁 ,它没CMOS的可控硅效应,可能是大家还没找出原因,而怀疑是PIC内部CMOS的可控硅效应。而此问题解决方式,我当时也反应给Microchip公司反应,之后Microchip晶片内部有无修改就不得而知。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分