zdming 发表于 2009-11-5 14:21:21

atmega16+hc573+uln2003+继电器上电抖动。

原理如图,
用atmega16+hc573锁存,驱动uln2003+12V继电器。以前用avr直接驱动uln2003,没有问题。如今io口不够了,用hc573扩展一下,发现问题(上电瞬间继电器会动作一下。)请大家讲讲其中奥妙,呵呵。http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_500021.jpg
原理图 (原文件名:未命名.jpg)
1---hc573的LE高电平输入出导通,低电平锁存,在avr程序中上电立即初始化hc573,但是也解决不了继电器抖动。
2---可能是573上电后输出即为高电平吗?此时间要比atmega16上电后执行几句程序快(目测可能200ms左右),所以才有这种现象,不知理解对不对。
3---atmega16从5v上电到执行第一句指令大约多少时间呢?难道是由于C编译器在初始化的时候增加了许多代码?
4---我试过更改熔丝位的BODEN,SUT1,0这些影响复位时间的设置,均没有作用。
5---以上理解都不对,难道我的电源回路(LM2575)建立时间过长啊?

zdming 发表于 2009-11-5 14:22:11

在二楼谢谢大家了。

zdming 发表于 2009-11-5 14:25:55

明天改用hc574试试。

cqfeiyu 发表于 2009-11-5 14:53:33

OE接上拉后由单片机控制

zdming 发表于 2009-11-5 15:14:15

楼上的,这招我也用了,OE上电由单片机置高(片选无效),也没有用。谢谢

cqfeiyu 发表于 2009-11-5 15:24:09

OE=1是输出无效,及三态的高阻态,OE接上拉电阻,不是由单片机置高,单片机上电时IO口也是高阻的,要输出时由单片机置低

cqfeiyu 发表于 2009-11-5 15:33:57

5楼的方法还不行的话,在2003的输入端接排阻到地试试看排阻阻值小点的1K

lusson 发表于 2009-11-5 16:47:33

选带复位引脚的锁存器,我原来用过的是74HC273。/MR脚用阻容复位,让它的复位时间大于单片机控制时间。
顺便传上PDF
点击此处下载 ourdev_500121.pdf(文件大小:153K) (原文件名:74HC273.pdf)

zdming 发表于 2009-11-5 16:57:35

1---多谢楼上。有同感啊,前面说改用574试试,就是和273原理是一样的,只不过用574管脚可替代目前的573,273好像和373封装是一样的。
2---5楼的cqfeiyu ,OE接单片机,OE接上拉电阻接单片机,OE直接接5V,都试过了,刚刚试过。我就是故意让573不工作,然而也不如 意啊。
3---你的另外一个方法我明天试一下,然后贴出来。多谢。
3---其实这个电路在工作的时候是好的,数据输出,锁存。只是在刚上电一瞬间会出高电平。一闪。很奇怪。

lusson 发表于 2009-11-5 17:22:37

因为刚上电573输出的状态不确定,而有复位引脚的锁存器在复位时输出是固定状态。
没看到574有复位功能。

刚想了下,其实你也可以在/OE上做文章,刚上电时让/OE为高。。。

zdming 发表于 2009-11-6 08:19:14

我感觉也是573上电输出不稳定。OE我都接过VCC,不行。
我再好好看看pdf

lusson 发表于 2009-11-6 08:39:38

用/OE就是你在它恢复低电平有效的时间内得对它进行初使化。。所以最好的方法还是用带复位功能的。

zdming 发表于 2009-11-6 12:29:38

574也不行啊。
咳!小结一下,如果大家用avr+573锁存输出的话(特别是带继电器),要注意573输出一定是低电平有效驱动继电器。否则驱动2003这种管子只能导致上电误动。除非将573的输出用光耦转换成低有效电平,或者驱动PNP的三极管灌电流驱动。上面这个原理图不可取啊。
单片机初始化的速度根本赶不上573上电工作速度。

zxq6 发表于 2009-11-6 13:01:52

难得的教训,谢谢楼主分享。

dengxiaofeng 发表于 2009-11-8 10:22:24

呵呵 我的系统和楼主的几乎一样,只不过我控制的是16个5V继电器,呵呵,我也遇到过类似的问题,解决方法就是20脚和一脚之间加一个10K电阻,就是一个上啦!问题就解决了!

haizhilan 发表于 2009-11-12 16:32:53

顶!

lv998127 发表于 2009-12-7 09:44:34

ding

zdming 发表于 2009-12-16 10:56:43

哈哈,我是楼主。前几天出差,回来后在573输出加了个非门,结果上电是随机的。有时闪,有时不闪。
回论坛看到14楼的帖子,试了试,我靠!神了。OE受单片机控制置高--不好使,但是接个10K电阻,问题解决了!!!
(上哪儿说理去?)

jetlzd 发表于 2010-1-28 16:33:42

在1脚与20脚之间接一个10K的上拉电阻就可以,

“OE接单片机,OE接上拉电阻接单片机,OE直接接5V,都不成”
有这样的事?!

楼主可以试试五楼的方法再报告一下嘛。

OE=1是输出无效,及三态的高阻态,OE接上拉电阻,不是由单片机置高,单片机上电时IO口也是高阻的,要输出时由单片机置低

inzaghi 发表于 2010-1-28 16:49:51

我觉得OE在单片机运行之前已经被选中了,所以才会出现误动作的现象,可以接一个10UF解电容到vcc,再接个10k下拉电阻,之后送到OE试试看,这样上电由于电容效应不片选,充满后,片选~ 赶在充满前,io口线输出需要的电平

laojiang1111 发表于 2010-4-28 15:08:38

mark

cocacc 发表于 2010-7-3 22:26:07

这个问题我也遇到了,你反一下就可以了,单片机上电后输出脚会有一次高电平的时候,是在开始执行程序前的。
所以在I/O口默认拉高电平,锁存器用低电平开启继电器,控制脚按照常规逻辑控制就可以了。
这样上电的时候输出怎么都是高电平的,就不会有闪烁的问题了,然后低电平输出后开启继电器。

hellospring 发表于 2013-11-21 11:02:38

顶一个!

pengshipower 发表于 2014-3-27 14:33:58

实用资料
页: [1]
查看完整版本: atmega16+hc573+uln2003+继电器上电抖动。