搜索
bottom↓
回复: 15

如何解决单片机IO口电流倒灌的问题

[复制链接]

出0入0汤圆

发表于 2012-5-14 19:34:33 | 显示全部楼层 |阅读模式
我在单片机结合外围设备模块使用时,有时会遇到一种很奇怪的现象:1、我给单片机正常上电时,整个单片机最小系统和外围设备模块能按照要求正常运行、、、、、、
                                                              2、但当单片机最小系统断开电源时(声明:我的外围设备模块和单片机最小系统是分别各自独立供电的,都是+5V),而通过IO口与单片机系统连接的外围设备模块没有断电,可是我发现此时单片机竟然还能工作,我百度了解知道这种现象叫做电流倒灌,可是百度上的解决方案笼统不一,有哪位大侠前辈遇到过这种情况的给讲解下造成这种倒灌现象的原因,如何解决?谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-5-14 19:52:49 | 显示全部楼层
光耦隔离。或者用其他的芯片隔离一下。就可以了。

出0入127汤圆

发表于 2012-5-14 20:07:27 | 显示全部楼层
这是正常现象,如果不隔离则不可能避免(CMOS电路中的MOS内部有体二极管)。一般没你这么设计的吧,最多的是关掉外围电路让MCU工作,你这个反而是关掉MCU让外围工作,就算低功耗设计这种理念也是不对的

出0入0汤圆

发表于 2012-5-14 20:30:14 | 显示全部楼层
datasheet有sink current和source current,就是拉灌电流,设计在范围之内就行了

出0入0汤圆

 楼主| 发表于 2012-5-14 23:24:05 | 显示全部楼层
tiancaigao7 发表于 2012-5-14 19:52
光耦隔离。或者用其他的芯片隔离一下。就可以了。

我用了PC817光耦,可是不行,我的外围模块式红外对射管,当有物体挡住了对射管的时候起输出低电平,我设计的光耦隔离原理如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-5-14 23:28:21 | 显示全部楼层
llssr 发表于 2012-5-14 20:07
这是正常现象,如果不隔离则不可能避免(CMOS电路中的MOS内部有体二极管)。一般没你这么设计的吧, ...

嗯,大哥说的对,这样确实是不按常规的错误,但是既然遇到这种情况了,那就说明我的电路设计得还是不够完美,这个错误刚好折射出我在信号隔离这块还是做得不到位

出0入0汤圆

 楼主| 发表于 2012-5-14 23:31:38 | 显示全部楼层
kydl2345 发表于 2012-5-14 20:30
datasheet有sink current和source current,就是拉灌电流,设计在范围之内就行了

那你的意思是说:我应该把外围模块输到单片机IO口的电流改小点么?不解,您能说明白点么?谢谢

出0入0汤圆

发表于 2012-5-15 06:58:36 | 显示全部楼层
zhenyifei 发表于 2012-5-14 23:24
我用了PC817光耦,可是不行,我的外围模块式红外对射管,当有物体挡住了对射管的时候起输出低电平,我设 ...

你说说按照上图设计的电路,当单片机一侧的VCC变成0之后,外设一端如果有信号的话,在单片机一侧的光耦依然可以检测到高电平?你确定外设和单片机部分的电源是独立的?

出0入0汤圆

发表于 2012-5-15 07:40:19 来自手机 | 显示全部楼层
新手想不明白 灌到io口的电流怎么会让单片机工作 请各位前辈指点一下

出0入0汤圆

发表于 2012-5-15 07:50:48 | 显示全部楼层
请参考一下MCU的规格书IO口部分,如果规格书中没有详细说明IO口结构,可以参考其他MCU的。一般来说,只要不是太低档的MCU,IO都有ESD保护电路,等效电路就是一对二极管,分别反向接到GND和VCC;楼主说的那种情况,极有可能是电流通过ESD保护二极管流向了VCC。

出0入0汤圆

发表于 2012-5-15 08:01:03 | 显示全部楼层
如何解决?


simple:

1) read the mcu datasheet;
2) take a class on Ohm's law.
3) if you still have no clue, go back to 1).

出0入0汤圆

 楼主| 发表于 2012-5-15 12:10:40 | 显示全部楼层
tiancaigao7 发表于 2012-5-15 06:58
你说说按照上图设计的电路,当单片机一侧的VCC变成0之后,外设一端如果有信号的话,在单片机一侧的光耦依 ...

单片机和外设肯定是分别各自独立供电的,肯定没有错,因为我是分模块化做的,每个模块有各自的电源接口,当单片机一侧VCC变为0,外设没断电的情况下依然是有信号输出的,这个我敢肯定,大哥提的有一点我觉得启发了我,我认为这个光耦如此接法根本起不了隔离的作用,因为光耦右端始终受左端控制,不知道我的看法对不对,大哥认为呢?

出0入0汤圆

 楼主| 发表于 2012-5-15 12:15:58 | 显示全部楼层
millwood0 发表于 2012-5-15 08:01
simple:

1) read the mcu datasheet;

OK,thank you!

出0入0汤圆

 楼主| 发表于 2012-5-15 12:21:33 | 显示全部楼层
wuyya 发表于 2012-5-15 07:50
请参考一下MCU的规格书IO口部分,如果规格书中没有详细说明IO口结构,可以参考其他MCU的。一般来说,只要不 ...

嗯,我没看过MCU的IO口资料,我的单片机是AT89S52,我觉得应该是我的信号隔离做的不好,我觉得只要我把信号隔离的好,倒灌就不是问题,MCU的内部架构已经定死了,我们只能完善自己,不可能改变MCU,您觉得对吗?

出0入4汤圆

发表于 2012-5-15 12:38:07 | 显示全部楼层
zhenyifei 发表于 2012-5-14 23:24
我用了PC817光耦,可是不行,我的外围模块式红外对射管,当有物体挡住了对射管的时候起输出低电平,我设 ...

你確定你的電源有分開的嗎?
按你畫的圖,光耦兩邊使用的電壓都是VCC?817接MCU這邊的應該使用MCU的電源吧,使用同一電源,光耦一樣工作,該流到MCU的電流一樣流。使用雙電源,一邊沒電了光耦不工作應該不會有電流再流到MCU。

出0入0汤圆

 楼主| 发表于 2012-5-15 12:57:31 | 显示全部楼层
sniper.q 发表于 2012-5-15 12:38
你確定你的電源有分開的嗎?
按你畫的圖,光耦兩邊使用的電壓都是VCC?817接MCU這邊的應該使用MCU的電源 ...

对,我没注意到这个,受教了,谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表