历史上的今天
今天是:2025年02月12日(星期三)
2020年02月12日 | PIC单片机的硬件死锁
2020-02-12 来源:eefocus
使用 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 仿真器厂,Microchip 当时还隶属于 通用电子厂的子公司 -- 高雄电子厂,我当时也买一部仿真器,约人民币壹万五千元,16C5x 当年为最省电的OTP、QTP 单片机,价格又比其它的单片机便宜,只是它很容易受干扰死机,很多大厂不敢使用它,pic 我学了几个月后,有一天,有位朋友要我 兼差 帮他们公司设计汽车防盗器,当时市场上的汽车防盗器都还用 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 晶片内部有无修改就不得而知。
结尾 给大家一个建议,一般书本上的电路图及程序,有很多错误,只让你去参考,不能太过于信任,要多参考几样,不要原版照抄,否则出问题 也无法解决。
史海拾趣
|
。 15、修改别人程序的修养 ----------- 当你维护别人的程序时,请不要非常主观臆断的把已有的程序删除或是修改。我经常看到有的程序员直接在别人的程序上修改表达式或是语句。修改别人的程序时,请不要删除别人的程序,如果你觉得别人的程序有 ...… 查看全部问答> |
|
来自EEWORLD合作群:arm linux fpga 嵌入0(49900581) 群主:wangkj 我用着用着菜单变了,不知道进入什么模式了,连new都没有 … 查看全部问答> |
|
现在开发一个使用WIN CE的PDA,本人想通过点击某个按键来弹出一个已经设定的界面,这怎么设置啊请问! 作为一个奄割版,智能设备窗体和创建WINDOWS窗体太不一样了!… 查看全部问答> |
|
我现在又一个项目是用ZIGbee技术实现数据传输 项目刚开始 我完全不懂啊 求教 我应该选择什么芯片啊?我都需要什么MCU和射频发射器?都是什么东西 看不懂头疼死我了。。哪位大虾能指点一下啊!… 查看全部问答> |
|
各路大神: 下午好! H桥电路结构如图1电路所示,桥臂是IRF5210和IRF1010N对管。通过PWM调制控制H桥输出的电压 u1 在5~40V之间, u1加载在1:9的变压器上,即u2范围在50~400v之间,次级输出接负载。 现在遇到的问题是:如图1下方的波形所示,脉 ...… 查看全部问答> |
|
大家好: 我现在用的 DDS 是 AD9833,如上图所示,输出用一个反向放大器放大正弦波, 可是发现波形会有锯齿成分,请问有哪一种滤波器可以消除锯齿成分使波形更圆滑一点? 要用低通还是带通?而截止频率应该设计为多少呢?谢谢。… 查看全部问答> |




