|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
PIC 的硬件死锁 ?? |
作者:sxl_72 栏目:单片机 |
2楼: | >>参与讨论 |
作者: bolofeng 于 2006/3/17 21:54:00 发布:
看过你几篇帖子,不错! (/MCLR 的接脚上,接一个提升电阻至 V+,接一个 0.1UF 至地,接一个'按键开关'至地),让我得到一个我所须要的答案,实验时 我多次的按 '按键开关',应该只是'重置'而已。 按键接到/MCLR上吗?没串电阻?什么叫“重置”? 俺关心的是你怎么解决“死锁”问题的,能否赐教。 |
3楼: | >>参与讨论 |
作者: lockma 于 2006/3/18 9:51:00 发布:
测试电路 测试电路 |
4楼: | >>参与讨论 |
作者: bolofeng 于 2006/3/18 13:01:00 发布:
这个电路有问题吧! 上拉改成4.7K,MCLR端串一100欧姆的电阻,这样还会出现“死锁”吗? |
5楼: | >>参与讨论 |
作者: lockma 于 2006/3/18 14:15:00 发布:
MCLR端串电阻 上拉电阻一般不要太大就可以,MCLR端串一个电阻防止 MCLR内部 产生振荡,这就是解决的方法,也就是 电容不能直接接 MCLR脚,某些人将 MCLR 直接接电源,最好也要避免。 PIC 晶片产生此现象,应不要称为“死锁”,因它不是真正的“死锁”,而是内部 激振而产生过电流 所引起的,只要将电容屏蔽,它就不会继续振荡,也就没有 过电流 产生,比较早期的 RESET 电路 都是用上图所示的接法, MCLR端串一个电阻 这是后期特地为 PIC系列 而更改的方式(早期的电路无此电阻),在别的 MCU, 上面的电路图接法是正确的. |
6楼: | >>参与讨论 |
作者: lockma 于 2006/3/18 14:52:00 发布:
早期 重置电路. 早期 PIC datasheet 的 重置电路. |
7楼: | >>参与讨论 |
作者: yuntian 于 2006/3/18 17:02:00 发布:
如此大方,可以. |
8楼: | >>参与讨论 |
作者: zhaoys 于 2006/3/21 13:09:00 发布:
不要电容不就可以了 我以前遇到一种现象,就是Vdd和Vss短路了,我不知道是不是你们说的死锁现象,我是新手,请多多指教 |
9楼: | >>参与讨论 |
作者: child_hood 于 2006/3/23 13:01:00 发布:
16F系列 16F系列还有这种现象吗? |
10楼: | >>参与讨论 |
作者: hotpower 于 2006/3/24 2:11:00 发布:
感觉和初始化程序也很有关系,有些疑问 可以将此测试电路用于任何程序而"死锁"吗??? 否则只能证明你的程序有问题,若全部"死锁",则证明正确. |
11楼: | >>参与讨论 |
作者: yewuyi 于 2006/3/24 11:12:00 发布:
同意HOTPOWER观点 个人感觉如果16C57真有这个问题的话,也只是因为内部没有LVS模块造成的上电复位不良。 我用PIC16C57至少1500K了,而且基本上都是工业环境中电子产品,没有见过你说的问题…… 我用的时候,电阻为5.1K,电容为104,早期都没有串接200欧姆电阻,后期加上,但不管早期后期,都没有发现阁下说的问题。 如果确实是MCL发生震荡,那么断开MCL是否可以解除震荡? 在我们实验室强行诱发的“硬件死锁”现象中,断开MCL,或者是拉高拉低MCL都无效。 |
12楼: | >>参与讨论 |
作者: martin 于 2006/3/24 12:50:00 发布:
关于latch up 用CMOS工艺制造的芯片(单片机和其他芯片),都无法完全避免latch up现象,现代的芯片设计,在片内都有针对latch up的保护电路, 具体应用时,电路里也可能需要加必要的保护性措施,然后使整个系统可以在某个标准的测试下,不会出现latch up的问题。 关于latch up,MICROCHIP的网站上有一篇文档做了详细的解释。 http://ww1.microchip.com/downloads/en/market_communication/emcissue1nov04.pdf 楼主怀疑MCLR管脚,是因为MCLR脚内部少了一个上钳位二极管(这是因为MCLR脚编程时会加上13V的编程电压),所以这个脚如果外电路不 当,更容易从这里导致latch up。对于有上下钳位二极管的IO(一般只有MCLR和RA4没有上钳位),如果瞬间超压或者负压导致上或下钳位 二极管正偏,而且正偏电流过大时,容易引起latch up现象。针对这个原理,解决问题的一个很好的办法是,在靠近单片机IO的地方,串 入一个100欧左右的小电阻,当然,合理的电路设计和PCB设计也非常重要。 判断是否latch up的方法:当芯片因为某种原因(可能是ESD,EFT测试,强干扰,或者人体静电等)芯片停止工作,可能伴有芯片发热现 象,而且MCLR外部手动复位不起作用,只能断电再上电,芯片才能恢复正常工作。这种情况下,可以判定是Latch up现象。但究竟是从哪 个IO导致的latch up,只能通过对系统的分析来确定,或者通过对烧毁后的芯片剖开后的电镜观察判定。 |
13楼: | >>参与讨论 |
作者: fsy1001 于 2006/3/26 11:36:00 发布:
PIC16F716 用上面这个片子的时候我碰到了 但是不知道是什么原因,烧了好多片子 用他控制日光灯,点亮的时候发生 最后给cpu电源做了一个电流检测才没有问题了 但是好象没有这么做的,cpu供电加电流限制电路 |
14楼: | >>参与讨论 |
作者: rad.zhu 于 2006/3/26 20:51:00 发布:
对楼主的帖子深感敬佩 对楼主的帖子深感敬佩,虽然对问题的分析不敢苟同,但是PIC发生死锁的现象真的是时有发生,最近一次是偶在使用PIC16F914的时候遇到的。 |
15楼: | >>参与讨论 |
作者: hotpower 于 2006/3/27 1:14:00 发布:
"死锁"几乎都是自己编程手法有问题... |
16楼: | >>参与讨论 |
作者: martin 于 2006/3/27 9:15:00 发布:
如果是编程问题,是不能称为Latch up或者“死锁”的。 Latch up通常都是因为硬件设计引起的,特别是在做ESD测试的时候很容易观察到这个现象。前一阵子刚在朋友那儿看到8KV ESD测试时,单片机、液晶驱动芯片、温度传感器等都“死锁”的现象,三颗芯片都发热,这时编程可解决不了问题。后来都是靠串电阻临时解决问题,当然那块板子的PCB要重布了。 |
17楼: | >>参与讨论 |
作者: lockma 于 2006/3/27 11:49:00 发布:
‘死锁’与‘死机’?? PIC 的 所谓的‘硬件死锁’不同于‘死机’,死机 的因素很多,原因有 程序设计、Watch Dog 设定、杂讯干扰,它会导致于程序错乱 而在某处 死巡回,但它没有‘电源短路’ 的现象,但‘硬件死锁’跟 程序 就无关连,因为它在‘死锁’时,PIC 的 VDD 与 VSS 像短路一样,(其实是消耗大电流,并不是真正短路),它导致于 供给 PIC 电源的稳压管 输出如同接地,稳压管 会因而烧毁,当时我作过很多的测试,都会仔细的探讨原因,也许很多人把‘死机’当做‘硬件死锁’,这两个"现象"差异很大的,不能混为一谈,大家应还没有在‘硬件死锁’发生时,使用示波器去测量各点的波形及探讨其原因,也不知道真正的原因, MICROCHIP 16C5x 十几年前在 台北 被退了几K的货 (PIC16C5x刚初产几年),也就是‘硬件死锁’的原因, MICROCHIP 当年也派出多位 工程师、多次 去了解原因、去解决问题,但都无功而返,最后 带着几K的退货回厂,这是鲜为人知的小事。 |
18楼: | >>参与讨论 |
作者: bolofeng 于 2006/3/27 12:14:00 发布:
死锁很明显的现象就是芯片发烫! 俺碰到过,重布线路板,该问题解决。同样的软件测试。 由于干扰瞬间产生大电流,软件是不太可能处理该问题的。 |
19楼: | >>参与讨论 |
作者: martin 于 2006/3/27 13:08:00 发布:
建议不要只说PIC有硬件死锁 建议不要只说PIC有硬件死锁,打击面太小了。前面我也说了,只要是CMOS工艺制造的芯片,都会出这个现象,而我们现在用的大多数集成电路都是CMOS工艺的。我看到的别的品牌的单片机出Latch up问题的多了去了,这也不能作为贬低别人的依据,毕竟这个现象是有根据,可以通过一定手段避免的。 |
20楼: | >>参与讨论 |
作者: gower 于 2006/3/27 14:17:00 发布:
PIC16F716也存在死琐问题 最近我在设计一款摩托车点火器DCI,用到PIC16F716, 在点火干扰下,有时也会出现单片机异常"死机",无任何输出,大电流,芯片发热,此时我测电源已降为2.7V(电源用78L05供电),手动短路复位脚没用,必须上电复位, 起初我一直以为 自己程序问题,为了排除我程序的原因,我重新写了段小程序,经多次测试,我认为是芯片的问题, 结果来这里一看, 原来就是大家所说的"死锁"! 但是我用楼主的办法,去掉那个电容,或增加一个电阻连接到复位脚,但还是解决不了该问题, 谁还有更好的办法可以避免该问题? 推荐下,谢谢! |
21楼: | >>参与讨论 |
作者: david4383 于 2006/3/27 15:18:00 发布:
我用12F629发现这个问题比较多, 芯片发热很大,只有断电,使用群脉冲或者静电测试仪很容易产生这种情况.有一个问题:629使用内部复位串个100的电阻能起做用吗? |
22楼: | >>参与讨论 |
作者: lockma 于 2006/3/27 15:40:00 发布:
PIC 并没有 真正的‘死锁’ 我要说的是 PIC 并没有‘死锁’,而是晶片内部设计的问题 产生类似‘死锁’的现象,只是大家都称它为"硬件死锁",我在做实验时,若 /MCLR端 不直接接上电容,基本上是不会产生‘死锁’现象 (也从我设计过的几十种工控电路所得到的经验),我在一个测试电路 ‘死锁’现象发生过程中,将电容剪断,电路立即重置,重新恢复工作,若是真正的‘死锁’,将 /MCLR端 的电容剪断,应还是维持‘死锁’的,而它能恢复工作 就代表它不是 ‘死锁’, bolofeng 所发生的干扰问题,若 /MCLR 的重置电路正确,其受干扰时,应只"重置"或是"死机" 而已,而不会有‘死锁’的现象,从我发觉问题、电路经改良后 至今,我的电路还未再发生‘死锁’现象. |
23楼: | >>参与讨论 |
作者: gower 于 2006/3/27 16:14:00 发布:
如果没有干扰自然不会出现死琐 如果没有干扰自然不会出现死琐, 重新布板可增强MCU的抗干扰能力, 但并不能根本解决该问题,我所做的点火器DCI项目,我现在已经把该复位电容取下,在正常运行中,倒不会出现"死琐",不过我考虑到以后摩托车工作过程中可能出现的问题,我人为增加其干扰,即把连接点火线圈的线靠近PIC单片机晶振处,"死琐"仍然出现. 按常理MCU在强干扰下,应该复位而不应出现这种现象! 楼主lockma所说的去掉电容,干扰并没有加强吧? 你试加大干扰试试? |
24楼: | >>参与讨论 |
作者: bolofeng 于 2006/3/27 16:47:00 发布:
lockma说的现象值的关注 martin已经说明了死锁和死机的区别了。 你剪断电容脚时,芯片是否发烫?按你说的现象,可能不是死锁,而是死机。 没有干扰,怎么会发生死机或死锁,除非硬件或软件本身设计有问题。 我的复位电路很简单,上拉电阻4.7K至VCC,发生在我的产品中的死锁现象是 芯片发烫,/mclr拉低无作用,手都不能碰,当然复位现象也很频繁。重新布板后无此现象,IO口做了一些处理。不敢说产品没问题,但到目前为至,还没发生死机或死锁现象了。 通过以上EMC试验 国家继电器监督检验中心 震荡波抗扰度 3级 静电放电抗扰度 4级 射频电磁场辐射抗扰度 3级 电快速瞬变脉冲群抗扰度 4级 |
25楼: | >>参与讨论 |
作者: bolofeng 于 2006/3/27 17:05:00 发布:
死锁不一定发生在/MCLR端! 也有可能由其它IO口引起的。 |
26楼: | >>参与讨论 |
作者: fineasy 于 2006/3/28 12:45:00 发布:
PIC的还不错了,台湾的就更掺了! |
27楼: | >>参与讨论 |
作者: xieyuanbin 于 2006/3/28 19:36:00 发布:
说两句. 我碰到某品牌的PIC兼容机,在频繁上电和掉电时非常容易进入"死锁"状态,反复修改复位电路和电源供电电路没有效果,低电压复位如同摆设,后来不敢用了. 不过最近有些PIC的新型号也有点那个,只是情节不那么严重.开了低电压复位一般就可解决. 另外布线问题一直是个人技术问题.个人建议布线尽量宽.不要为了抢时间,节省板材而缩小线宽,特别是电源线.尽量采用有网络表的PCB布线,多使用铺铜. |
28楼: | >>参与讨论 |
作者: judge 于 2006/3/31 21:13:00 发布:
这真是好文章啊 我们这些视死如归的人们,向您致敬. 读一贴胜吃一车的肘子。 各位分析的太好了, 强烈的顶一下。 |
29楼: | >>参与讨论 |
作者: yewuyi 于 2006/4/1 8:49:00 发布:
楼上比较有趣…… judge 发表于 2006-3-31 21:13 PIC 单片机 ←返回版面 这真是好文章啊 我们这些视死如归的人们,向您致敬. 读一贴胜吃一车的肘子。 各位分析的太好了, 强烈的顶一下。 |
30楼: | >>参与讨论 |
作者: liht1634 于 2006/4/3 10:20:00 发布:
一直用PIC,目前没碰到过死锁现象 MCLR端接有电源下降保护电路 |
31楼: | >>参与讨论 |
作者: 陈双君 于 2006/4/4 8:25:00 发布:
是不是市面上的那种硬件锁啊 我也不太清楚你讲的这个硬件锁.我想应是现在市面上讲的那种比较常见的硬件锁. |
32楼: | >>参与讨论 |
作者: 张明峰 于 2006/4/5 23:31:00 发布:
偶然来一次,别嫌我多嘴啊 和用什么芯片无关。个人认为楼主出示的复位电路在实际印版上就有可能存在问题,死锁还真是CMOS-LATCHUP造成的。光看元器件好像没有问题,仔细推敲一下在实际的印版上按下复位按键时此电路就可能成为一个串连谐振电路。电感哪里来--电容引入的串连等效电感,PCB走线分步电感等(看你用的电容品质和布板水平了),参看贴图交流等效电路。瞬间谐振时会对芯片引脚产生致命的负电压,这是造成COMS-LATCHUP的根本原因。 去掉电容,没有了激活串联谐振的储能;减小上拉电阻,亦即增大了谐振电路的阻尼;在去芯片引脚中间串一电阻,限制了负压造成的电流。这些都是解决办法。 夜路走多了撞见鬼不奇怪。前段时间刚刚处理了一起类似的案例,IO引脚外接按键的按键动作造成芯片死掉,最后查明原因就是如此。用示波器抓了波形一清二楚。 信不信由你。 |
33楼: | >>参与讨论 |
作者: yewuyi 于 2006/4/6 8:23:00 发布:
张工说的很深刻 受教…… |
34楼: | >>参与讨论 |
作者: yellowland 于 2006/4/6 11:30:00 发布:
不管怎么样 不管怎么样,长线悬空要不得.错误的路千万条,正确的路就那么几条 |
35楼: | >>参与讨论 |
作者: sam zheng 于 2006/4/7 16:12:00 发布:
本人也未碰到这样的问题 我总觉得PIC的东西不错啊,你们的问题怎么这么多呢??? |
36楼: | >>参与讨论 |
作者: fungvy 于 2006/4/11 10:54:00 发布:
头一回听说pic死锁,学习一下! 头一回听说pic死锁,学习一下! 敝人实在是孤陋寡闻,以前光听说LPC系列ARM死锁,ZLG还专门发布了一个电源图纸。 强烈向各位大虾学习! |
37楼: | >>参与讨论 |
作者: hhdz_ghj 于 2006/4/12 15:58:00 发布:
以前同样遇到过 在MCLR出现高于VCC的电压或负电压,PIC就进入LATCHUP状态,不管是否有电阻或电容,解决的办法只有从电路入手增强抗干扰措施(在一次MC开研讨会时也问过他门的工程师,也说不出解决办法,光说所有的CMOS电路都有同样的问题) |
38楼: | >>参与讨论 |
作者: lilei01 于 2006/4/12 20:00:00 发布:
初始化s52单片机 怎么初始化s52单片机? |
39楼: | >>参与讨论 |
作者: libirdie 于 2006/5/29 18:43:00 发布:
太好啦! |
40楼: | >>参与讨论 |
作者: zhang_na 于 2006/5/31 12:35:00 发布:
这个说法基本上是在乱吹!! 硬件死锁,,可怕的笑话!!!! |
41楼: | >>参与讨论 |
作者: linqing171 于 2006/6/6 19:51:00 发布:
学习 学习,呵呵. 第一次听说这种现象. |
42楼: | >>参与讨论 |
作者: zcxhe 于 2006/6/7 12:24:00 发布:
应该是各种芯片都会,双极型也会, 就算是模拟放大器也都有这个问题存在,所以不要老怪程序,跟程序是无关的,只是一种物理现像,几年刚接触单片机时碰到过,了解了一下,那时有专家建议在电源串入一个小电阻可以防止或减小这种情况发生,后来我在IO及复位端加入电阻,从那之后就再也无缘与闩锁碰面了。 |
43楼: | >>参与讨论 |
作者: leonline 于 2006/6/17 23:32:00 发布:
正遇到此问题!关注 |
44楼: | >>参与讨论 |
作者: buct_zxz 于 2006/7/2 8:23:00 发布:
正遇到这样的问题 我采用的芯片是12F629,正常工作的时候,很少死机(概率可能是千分之1吧),当休眠时(休眠——唤醒——休眠),没有任何IO口输出操作时,大约为1/3的死机,每次死机时,总会发现GP0的电源锁定在1.9v左右(电源电压为3.3V)正常时候,GP0做为输出管脚是3.3V和0V左右。对于复位管脚,我采用的内部复位,MCLR管脚接了100K的上拉电阻到电源VCC上,另外MCLR直接与一个低压检测芯片XC61的输出相连。我测试了140个样品,平均每天都会有一个死机,死机时,强行令MCLR接地都没有用,必须重新上电,才能正常工作。大家帮我分析一下什么原因? |
45楼: | >>参与讨论 |
作者: xianru 于 2006/7/13 15:15:00 发布:
我在16F54上发现过 |
46楼: | >>参与讨论 |
作者: feifan570 于 2006/7/19 9:11:00 发布:
今天我也遇到了同样的问题? 我用的是PIC16F73,上电不久,我闻到了一种味道,我以为是其他的元件烧毁了,量了一下电源电压,正常!我用示波器看单片机输出的波形,并非我所要的。我复位一下,还是那样,我摸了一下单片机,很烫,赶紧断电了,心有余悸!!! |
47楼: | >>参与讨论 |
作者: feifan570 于 2006/7/19 9:46:00 发布:
今天我也遇到了同样的问题? 我用的是PIC16F73,刚上电,我就闻到一种不好的味道,我开始以为是板上某个元件烧坏了,量了一下电源电压,正常!我看了CPU输出的波形,并非我所要的。我复位一下,还是那样。我摸了一下CPU,很烫,赶紧断电。心有余悸!! |
48楼: | >>参与讨论 |
作者: sam zheng 于 2006/8/6 13:41:00 发布:
好象没见过! |
49楼: | >>参与讨论 |
作者: georgegdut 于 2006/8/8 16:29:00 发布:
谢谢楼主的妙招 我是刚从大学出来的,刚开始接触PIC不久,差不多半年时间,发现过这样的问题,没有很好的解决,多谢楼主提点. |
50楼: | >>参与讨论 |
作者: jimsboy 于 2006/8/12 1:35:00 发布:
在RESET脚串一个可恢复保险管试一下呢 |
51楼: | >>参与讨论 |
作者: bin2bin 于 2006/8/14 23:25:00 发布:
未遇到,遇到程序突然跑不了,重烧就好了? |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |