miraclelife 发表于 2008-1-16 11:29:21

PIC 的硬件死锁

使用 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 晶片内部有无修改 就 不得而知。
    问题找出之后,赶紧通知 '汽车防盗器制造公司',修改了硬件电路,顺利的将 PIC 控制的 '微电脑汽车防盗器'上市,这也就是 台湾 第一部由 CPU 控制的 汽车防盗器 (这是我朋友所说的),之后,其他公司也深受压力,赶紧跟于后面,使出各种方法 陆续的推出 '微电脑汽车防盗器',而我以后所做的 PIC 控制电路,也就不曾有过 ‘硬件死锁’。
    结尾 给大家一个建议,一般书本上的电路图及程序,有很多错误,只让你去参考,不能太过于信任,要多参考几样,不要原版照抄,否则出问题 也无法解决。

miraclelife 发表于 2008-1-16 11:50:25

什么是 “CMOS的可控硅效应”

刚才在论坛上看到有人说起这个词,自己不懂就搜索了一下,发到这里供大家学习

故事要从CMOS电路说起。CMOS是Complementary Metal Oxide Semiconductor互补金属氧化物半导体的简称,是当今主流IC制造工艺。因为采用参杂制造工艺的原因,CMOS电路中必然存在一种PNPN的4层结构,这种结构恰好与可控硅的4层结构类似,故同样具有可控硅的传输特性,所以称之为寄生可控硅。
    在正常情况下,这些PN结都是反偏的,电流只能受控向一个设计方向流动,反向则处于高阻状态。在特殊情况下如:输出端有较大电压过冲、输入端存在过高ESD电压以及器件通电前有低内阻信号加在输入端上等,换句话说,耦合至器件IO的ESD、浪涌电压或噪声尖峰所产生的任何过高的电压瞬变,都有可能使带电粒子越过PN结势垒,从而触发这个寄生可控硅——这是一种物理上的单粒子效应,或者因加在寄生可控硅两端过高的电压瞬变dv/dt值也会导致寄生可控硅的触发(这也是触发可控硅导通的一种方法)。而触发一旦发生会导致一个再生过程而引起电荷注入,从而使寄生可控硅的导通维持下去,其较低的内阻会导致很大的内部短路电流,轻则锁死电路使器件无法工作,重则摧毁器件甚至供电回路等,这种现象就是所谓的闩扣现象。
    闩扣现象一旦发生,撤除的办法只能是降低寄生可控硅的导通电流使其脱离自维持导通状态如采取断电等措施,对系统的影响重大。所以,良好的电路设计包括采取有效的ESD抑制手段等是电路可靠性保障中的重要一环。

carsio 发表于 2013-8-27 13:26:30

好,学习了!

LVmcu 发表于 2013-11-7 12:21:21

学习!!!

jackdu 发表于 2014-11-15 15:51:34

Latch-up (硬件死锁)解析

fangyjuny 发表于 2014-11-19 17:18:20

没听说过,学习了

lushanlq 发表于 2014-11-20 22:20:57

太高深了,还没有遇到过这样的问题

pic_flash 发表于 2014-11-27 08:39:29

多年前,曾经碰过16F887 被锁死, 死到很死, 看门狗不能恢复, MCLR 重置也不可以。。只有断电。。
当时百思不得其解, 今天看到这个文章, 明白可能我碰到的是同样的问题。

即便是比较新颖的16F887, 也还面对这个问题。。 汗~{:sweat:}

EMC菜鸟 发表于 2014-11-27 08:50:44

PIC的片子用了N久了,从来没遇到过这个问题 ......

cjt5132 发表于 2014-11-27 08:57:30

学习了                        

lyl3257 发表于 2014-11-27 10:01:30

一直在用也没有碰到这种情况

hcqqlin 发表于 2014-11-27 10:27:09

学习了,这个问题碰到过。

hejunhua 发表于 2014-11-27 13:24:47

什么场合有这么大干扰,一直都没见过
页: [1]
查看完整版本: PIC 的硬件死锁