pcb_pcb_ok 发表于 2008-7-18 13:06:15

mega48 外部中断干扰如何解决

最近用MEGA48做一个方案,里面需要掉电检测然后保存数据
具体做法是:用一个二极管从+VDD接过来再加一个大电容给
单片机供电,然后+VDD串一个10K电阻到INT1,当掉电时INT1
会产生跌落,而单片机由于有大电容所以还会继续工作,然
后保存数据!

但是,实际INT不会产生跌落中断,后来在INT0引脚又加了一
个对地电阻(相当于分压了,这里有点不解!),一切功能
正常!但是我发现INT很容易受到干扰,我随便用万用表
的一个探头碰一下INT就会产生中断,但是用手摸又不会有
问题,而且只要是金属的碰到INT脚都会受到干扰!

各位能解释一下:
1:为什么要从INT接一个电阻到地才会产生中断?
2:为什么INT会受到金属的干扰?
3:怎么解决以上两个现象!

machao 发表于 2008-7-18 14:03:49

INT脚要配置成输入方式,上拉有效。如果仅配置成输入方式,需要外部加上拉电阻。

如果INT脚为输入高阻,外部又没有上拉,那么肯定容易受到干扰了,原因就不讲了,是最基本的概念。

如果要求抗干扰好的话,应该这样设计:INT脚配置成输入方式,外部上拉5-10K电阻(内部上拉是弱上拉为50K),同时对地加0.01-0.1的电容。下降沿触发中断。

pcb_pcb_ok 发表于 2008-7-18 14:16:02

加电容这些方法我试过!是一样的!
另外,我的INT本来就是检测的电源
电压,已经相当于是接一个上拉了呀!

machao 发表于 2008-7-18 15:01:23

上拉是接工作电源,不是接检测电压。你按我讲的试过吗?

pcb_pcb_ok 发表于 2008-7-19 08:21:37

可能没有描述清楚,
我把检测部分画了一个简图,请马老师分析一下!
谢谢!
http://cache.amobbs.com/bbs_upload782111/files_10/ourdev_352074.JPG
INT简图 (原文件名:INT.JPG)

machao 发表于 2008-7-20 13:51:14

第3图中的2个电阻值是多少?二极管后用100欧姆,对地用2K试试。

zsmbj 发表于 2008-7-20 14:15:48

最好加一个电压检测芯片,接在电源前端。输出接单片机的int。这样比较可靠。

manbkk 发表于 2008-7-20 23:51:37

pin-INT1本身弱上拉,二极管阴极电压下降不等于INT1电压下降,二极管阳极成了浮空状态,当然极易感应干扰;换句话说pin-INT1没有直流回路,欧姆定律不成立;应把二极管阳极接被检测电源,阴极接pin-INT1,pin-INT1接一上拉电阻,该电阻接电源VDD,才能形成回路,无浮空点.
另外,为什么要接二极管呢?没有意义,接一阻容网络滤除高频干扰更稳定.

pcb_pcb_ok 发表于 2008-7-21 09:17:23

很感谢各位出的建议,现在基本上没有问题了!但真正问题还是得不到合理解释!

我具体的做法是:二极管后面的电阻加150R,对地电阻接20K,再在对地电阻上并一个电容!
想了一下,干扰可能还是和引脚断电后的浮空有关,如果是这样的话我把对地电阻接在二
极管后面应该也可以才对,但是实际试了过后还是不行!又陷入了强烈的郁闷中。。。。。

按我现在可以的方案,这样接其实相当于是分压了,但是它又确实可行!

希望各位能分析出真正的原因,便于以后,也便于大家避免类似问题!

machao 发表于 2008-7-21 22:48:42

这样分析吧:

中间的接法:
如果INT没有上拉为输入高阻,那么掉电时二极管截止(电阻非常大),INT为悬浮状态,电平不确定,易被干扰。没有掉电,由于INT为高阻,二极管也没有电流通过,易被干扰。如果INT上拉,那INT总为高电平。

第3种接法,二极管后面接R1=100欧姆,INT对地使用R2=2K(并上电容)。这样流过二极管电流约(5-0.7)/2.1k = 2mA,在R2上的电压为4v,对于INT为高电平。掉电时,二极管截止,INT被R2接地为0。如果INT内部有上拉,掉电时,按内部上拉电阻为50K,2K * 5V/(50k+2k) = 0.2V ,也是低电平。

“我把对地电阻接在二极管后面应该也可以才对,但是实际试了过后还是不行”换成2K,内部上拉可能就可以了,20K太大。可参考上面的进行估算。就是欧姆定律。

pcb_pcb_ok 发表于 2008-7-22 10:45:24

马老师,我你的推理是非常好,但是我按这样试的结果还是不行
这里出现的干扰条件是,我用手拿着金属的东西接触INT!

如果我用手直接接触INT它不会产生干扰!

而且我如果用手拿金属物体的时候,将手与金属用纸或者其他
绝缘物体隔离开再用金属去接触INT也不会产生干扰!

这样看来是人体,和金属串联后产生的一种干扰?

pcb_pcb_ok 发表于 2008-7-22 10:47:40

我如果脚不接触地面,然后用手直接拿着金属去接触INT,也不会有干扰!

machao 发表于 2008-7-22 17:20:43

这个具体非常复杂,如过你需要手拿着金属的东西接触INT不产生影响,那么你的分压电路中的电流要>10毫安,也就是说,全部串接的电阻小于500欧姆。

你试试20欧姆和380欧姆。注意二极管需要使用整流二极管。

xiaobendan 发表于 2008-7-22 19:42:38

LZ这种干扰是不可避免的,通过软件的处理是可以解决的。象马老师说的那样加大电流的方法能在一定程度上解决,如果你用开关电源供电的话更严重一些。图2中的当然不行了,没有低电平的条件啊。加下拉的方式好用,我就是这样用的,保存的数据为一个INT型是没有问题的。

pcb_pcb_ok 发表于 2008-7-23 15:34:27

按照马老师的方法,增加分压电路中的电流,是完全可以!
谢谢了,还想请教一下,那个10MA的值是如何得出来的,
数据手册上好像找不到!

13楼提出了另外一种用软件处理的方法,能讲讲具体方法?
因为是采用的中断,实在想不出如何用软件去干扰;除非不
用中断,把他当成按键去抖程序来写,但是这样的话,无疑
会要求我的电容容量增加很多!这样才能保证单片机工作到
将数据保存完整为止!

zlei 发表于 2008-7-23 15:54:32

我采用加下拉的方式,没有太大的问题。

machao 发表于 2008-7-23 20:28:19

那个10MA的值是如何得出来的?

理论基础 + 实践 + 积累 = 经验。

pcb_pcb_ok 发表于 2008-7-24 08:42:40

我还以为有一定的算法公式!
又从马老师这里学了一点,谢谢!

xiaobendan 发表于 2008-7-24 10:33:32

10MA电流用4148也没有问题吧。如果是用大功率的开关电容,那两个Y2电容的原因,这个情况会很明显的。我用的下拉电阻是4.7K的倒是没有试过用手拿镊子去碰,因为我对电流很敏感,会比较难受的。但是我用老办法,就是用接触器线圈接线绕板子的方法也能看到明显的干扰。用软件加点延时一般能应付,比如100US左右。

machao 发表于 2008-7-24 12:41:54

我提供的方法,只是可以消除“手拿镊子去碰”这样的干扰,是最简单的方法,不是万能的抗干扰措施。对于不同的干扰,措施和处理办法是不同的,电路设计也不同。

huangjiyue 发表于 2009-3-3 01:12:37

强啊!

huangjiyue 发表于 2009-3-3 01:14:28

很不错哦!

hpdell 发表于 2010-9-11 11:47:06

不错!!!!!!!!我现在也遇到这样的问题,可以借鉴一下!!!!!!!!!

cc1987 发表于 2019-4-23 10:14:07

标记下,也遇到镊子产生中断干扰的问题了

liudingding 发表于 2019-8-8 15:16:27

有些光耦次端电流十几毫安,看来有道理的
页: [1]
查看完整版本: mega48 外部中断干扰如何解决