历史上的今天
返回首页

历史上的今天

今天是:2025年02月14日(星期五)

正在发生

2020年02月14日 | PIC的硬件死锁

2020-02-14 来源: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 晶片内部有无修改 就 不得而知。


问题找出之后,赶紧通知 '汽车防盗器制造公司',修改了硬件电路,顺利的将 PIC 控制的 '微电脑汽车防盗器'上市,这也就是 台湾 第一部由 CPU 控制的 汽车防盗器 (这是我朋友所说的),之后,其他公司也深受压力,赶紧跟于后面,使出各种方法 陆续的推出 '微电脑汽车防盗器',而我以后所做的 PIC 控制电路,也就不曾有过 ‘硬件死锁’。


结尾


给大家一个建议,一般书本上的电路图及程序,有很多错误,只让你去参考,不能太过于信任,要多参考几样,不要原版照抄,否则出问题 也无法解决。

推荐阅读

史海拾趣

Engineered Components Co公司的发展小趣事

在稳固了国内市场后,ECC开始积极拓展国际市场。他们参加了多个国际电子展会,展示了公司的技术和产品。通过与国际客户的交流与合作,ECC逐渐打开了国际市场的大门。同时,ECC还与国际知名电子企业建立了长期合作关系,共同研发新产品、开拓市场。这些举措使得ECC在国际市场上的知名度不断提升。

AW Industries Inc公司的发展小趣事

在国内市场取得成功后,AW Industries Inc开始寻求国际化发展。公司首先选择了几个具有潜力的海外市场进行拓展,并通过与当地企业合作、建立销售网络等方式逐步打开市场。随着国际化战略的深入实施,公司的业务范围不断扩大,国际市场份额也逐步增加。

杰力(EMC)公司的发展小趣事

为了保持市场竞争力,杰力不断投入研发资源,致力于技术创新和产品升级。公司成功研发出多款高性能、低功耗的功率组件和集成电路产品,并获得了多项专利。这些产品不仅满足了客户对高品质电子元件的需求,还推动了整个电子行业的发展。同时,杰力还密切关注市场动态和技术趋势,不断调整产品策略,以适应市场的变化。

台湾肯尼威(CANNYWELL)公司的发展小趣事

面对不断变化的市场需求和技术环境,肯尼威始终坚持以创新为引领。公司不断投入研发资源,推出了一系列具有创新性的产品。例如,针对特殊需求的客户,公司推出了定制化的电源滤波器解决方案;同时,还开发了新型的三相电源滤波器等产品,满足了市场的多样化需求。这些创新不仅提升了公司的技术实力,也为公司赢得了更多的市场份额。

Cotco公司的发展小趣事

随着产品线的不断丰富和市场需求的持续增长,Cotco公司开始加大市场拓展力度。公司积极参加国内外各类电子行业展览和交流活动,与潜在客户和合作伙伴建立了广泛的联系。同时,Cotco也注重品牌建设,通过赞助行业活动、开展公益事业等方式提升品牌知名度和美誉度。经过几年的努力,Cotco已经成为电子行业内一个响当当的名字。

Alan Industries Inc公司的发展小趣事

在追求经济效益的同时,Alan Industries Inc.也始终关注社会责任和可持续发展。公司积极参与公益事业,通过捐款捐物等方式支持社会慈善事业。同时,公司还注重环保和节能,在产品研发和生产过程中采用环保材料和工艺,努力降低对环境的影响。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实基础。

以上五个故事都是基于电子行业的一般发展情况和公司成长的常见模式虚构的,旨在展示Alan Industries Inc.公司可能的发展历程。请注意,这些故事并非基于实际发生的事件,因此可能与该公司的实际情况存在差异。

问答坊 | AI 解惑

温度传感器ds1820 的汇编程序

详细内容:温度传感器ds1820 的汇编程序晶振:12MTEMPER_L EQU 36HTEMPER_H EQU 35HTEMPER_NUM EQU 60HFLAG1 BIT 00HDQ BIT P3.3 AAA:MOV SP,#70HLCALL GET_TEMPERLCALL TEMPER_COVLJMP AAANOP;------------------读出转换后的温度值GET_TEMPER:SETB ...…

查看全部问答>

PROETL PCB常用零件封装库大全下载

PROETL PCB常用零件封装库大全下载 需要的顶一下哦…

查看全部问答>

2000/XP系统下的U盘万能驱动是如何实现的?

在WIN98称霸的时代,每次使用U盘拷资料都是首先安装U盘厂商提供的驱动或者万能驱动程序,然后U盘才可以被系统识别,那个时候也没有这个疑问,后来到了2000/XP时代,安装U盘已经完全傻瓜式了,厂商不在需要提供驱动程序,直接把U盘插在USB口上就能使 ...…

查看全部问答>

该选择哪种电源

我想做一个比较大一点的行走的电子设备,比较耗电,需要自身随时供电,可以是充电式的,也可以是其它的类型。但要脱离电源时供电时间要长,我要选择哪种电源来适合我的设备。请多多帮忙。…

查看全部问答>

求 Programming the Microsoft Windows Driver Model(第一版) 光盘源代码!

求   Programming the Microsoft Windows Driver Model(第一版)   光盘源代码!   找了好几天也没有结果,是不是因为这本书太老了,不过我最近才学驱动开发,所以刚刚对这本书有些了解。可惜没有书的光盘源代码,那 ...…

查看全部问答>

【求助】请教在iar上能用移位指令吗??我用不了!!

将变量a 左移: a>>3; 右移 a<<3; 但我在iar上不能用 系统警告 没作用 有什么方法替代呢? 用乘法 跟除法 会影响速度吗??…

查看全部问答>

基于模型设计对传统的FPGA的开发方法的颠覆!

最近我在同一实验平台DE2上,对手写HDL代码(21行);DSP Builder生成的代码(》200行);Simulink HDL Coder生成的代码(大于200行)。的综合结果进行了对比,结果令人震撼!如果这个结论是正确的,那么基于模型设计的方法开发FPGA已经成为现实! ...…

查看全部问答>

新手学习关于lcd1602

lcd1602为什么要先写指令,后写数据呢,两者有何区别啊 有相关代码 void write_com(uchar com){ lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0;} void write_data(uchar date){ lcdrs=1; P0= ...…

查看全部问答>

ADC加液晶显示

想用msp430g2553做adc加液晶显示…

查看全部问答>