搜索
bottom↓
回复: 75

n个74HC595驱动8n个继电器。在avr复位期间怎么保证继电器不误动作

[复制链接]

出0入0汤圆

发表于 2008-8-1 22:37:50 | 显示全部楼层 |阅读模式
搜遍了论坛看了有这个在avr上电复位期间74hc595输出随机数据。这个比较麻烦。那位兄弟有实际的操作经验。交流一下。我的74HC595驱动一个三极管。三极管驱动继电器。小继电器。信号继电器12v动作,电流20ma不到。

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2008-8-1 23:15:46 | 显示全部楼层
以前是控制总的电源了!有过类似的经历!

出0入0汤圆

 楼主| 发表于 2008-8-1 23:18:27 | 显示全部楼层
哦 没其他办法 有什么好办法 控制总电源

出0入0汤圆

发表于 2008-8-1 23:25:08 | 显示全部楼层
上电时锁住OE,延迟一段时间后放开。

出10入10汤圆

发表于 2008-8-1 23:29:12 | 显示全部楼层
试试这样行不行:三极管基极并联合适的电解电容到地,单片机上电初始化后先发送数据使595输出为零。

出0入0汤圆

 楼主| 发表于 2008-8-1 23:31:45 | 显示全部楼层
估计一个试不出来效果吧 要不自己焊个万能板试试。手头有板的也可以试试

出0入0汤圆

 楼主| 发表于 2008-8-1 23:32:06 | 显示全部楼层
上电时锁住OE,延迟一段时间后放开。 怎么锁????

出0入0汤圆

 楼主| 发表于 2008-8-1 23:32:43 | 显示全部楼层
采用低电平导通的pnp的三极管驱动继电器是不是安全点。

出0入0汤圆

发表于 2008-8-2 01:07:28 | 显示全部楼层
595的“OE”脚为高电平时,输出呈高阻。
可用个单稳或简单的RC,复位时让OE为高,复位结束后延迟一段时间变低。

出0入0汤圆

发表于 2008-8-2 01:45:11 | 显示全部楼层
借8楼图一用。

AVR的一个I/O接OE,OE接一个5K到VCC。AVR上电过程中I/O为输入高阻态,OE由5K电阻拉高,595的输出也是高阻三态。

595的每个输出接10K到地,上电期间,由于OE为高,595输出高阻三态,但被10K拉低,不能驱动后面的三极管。

上电初始化后,AVR串出8个0,然后控制OE为低电平。595输出全部为0,继电器不会动。

后面进入正常控制。

出0入0汤圆

发表于 2008-8-2 08:54:41 | 显示全部楼层
如果595的控制线距离有10米,控制继电器的个数有约100个,这样的工作能够稳定可靠吗?

出0入0汤圆

发表于 2008-8-2 09:10:07 | 显示全部楼层
595控制线为10米要加驱动的

出0入0汤圆

发表于 2008-8-2 09:19:14 | 显示全部楼层
可以先供595的电源,然后供继电器的电源

出0入0汤圆

发表于 2008-8-2 10:02:09 | 显示全部楼层
学习下!

出0入0汤圆

发表于 2008-8-2 10:14:27 | 显示全部楼层
信号继电器的速度要快过单片机复位后的第一件事:初始化IO并给与确定电平?

出0入0汤圆

 楼主| 发表于 2008-8-2 18:44:20 | 显示全部楼层
应该是的,这样才能保证可靠。为了控制1000多个继电器。

出0入0汤圆

 楼主| 发表于 2008-8-2 18:46:48 | 显示全部楼层
machao老师这个办法可靠不。加上拉下拉电阻,在初始化的时间给一个确定的电平。

出0入0汤圆

 楼主| 发表于 2008-8-2 18:49:50 | 显示全部楼层
为驱动这个1000个继电器。我会48个继电器用一个单片机控制,然后组网来控制。联网用485比较好点。每个分机总线控制595的都用245做驱动。

出0入0汤圆

 楼主| 发表于 2008-8-2 22:50:46 | 显示全部楼层
还是加电阻最简单。

出0入0汤圆

发表于 2008-8-3 11:44:53 | 显示全部楼层
加一个上电时序控制芯片,

出0入0汤圆

发表于 2008-8-3 11:57:43 | 显示全部楼层
machao 的方法是最好的.我感觉.

出0入0汤圆

 楼主| 发表于 2008-8-3 19:45:01 | 显示全部楼层
我是要做板子实验一下这个办法。控制1024个继电器玩玩。

出0入0汤圆

发表于 2008-8-3 20:33:36 | 显示全部楼层
TPIC6B595

出0入0汤圆

 楼主| 发表于 2008-8-3 20:43:16 | 显示全部楼层
【23楼】 fugeone  你用过了 驱动继电器 上电不会乱跳继电器。

出0入0汤圆

发表于 2008-8-3 21:20:10 | 显示全部楼层
①.9楼machao老师的方法是很可靠的,由CPU控制等所有位清零之后再放开OE。
②.俺在8楼的图是考虑了处理器和被控的595离得较远,其间连线希望尽可能少的情况,于是在本地处理OE,但R、C简易做法不太适合于可靠性要求高的场合。

不过,上述两种做法都可能遇到一个问题,即假如收发分为两处,而且两处可能不同时上电时,OE处理无效。如是这种情况,推荐用另一种办法:再加一个D触发器芯片,如74、273等,4020也可以。
③.仍沿用收发间不加线,在本地处理OE的做法。但RC只是复位D触发器,然后把给595的锁存信号作为D触发器的时钟,使之至少收到2次锁存之后再打开OE。

出0入0汤圆

发表于 2008-8-3 22:48:05 | 显示全部楼层
我根本没有考虑长距离的控制应用。因为我决不会使用5V逻辑电平的传送方式应用在长距离的系统中,尤其是工业控制系统中!

参考一下RS232吧,与UART的通信逻辑相同,但采用+-15V的负逻辑,而且也就几十米,距离越远,还要bps越低。

再远就要使用差分方式传送的RS485了。

UART ==》 RS232 ===》RS485,为何?

出0入0汤圆

 楼主| 发表于 2008-8-4 09:13:13 | 显示全部楼层
我这个控制继电器的板子和单片机的板子是分开的,但是距离不远,最远不超过10米。输出我要加245做驱动。应该问题不大。

出0入0汤圆

发表于 2008-8-4 09:27:08 | 显示全部楼层
拉10米的线,应优先考虑光耦。

出0入0汤圆

发表于 2008-8-4 09:30:52 | 显示全部楼层
8楼的图是很实用的,虽然不能完全解决,偶尔还是有轻微的抖动,但是效果是最明显的。

出0入0汤圆

发表于 2008-8-4 15:10:48 | 显示全部楼层
不用那么复杂。74HC595不是有个异步清除引脚SRCLR吗?把这个引脚接到AVR的一个脚上,并用一个10k下拉电阻接地,OE可以直接接地。

AVR复位期间,引脚呈现高阻态,这时候,RCRCLR被下拉电阻强制拉低,74HC595内部寄存器被异步清除,Q0-Q7输出统统强制为0,它们所驱动的三极管基极电平为0,进入截止状态,自然继电器就不会动作了。

AVR复位完成后,初始化程序将引脚设定为输出,然后驱动RCRCLR为高电平"1" ,异步清除信号解除,74HC595就可以正常驱动了。这个方法电路简洁,省去了595每个输出脚上的下拉电阻。而且,三极管是被595强驱动导致截止的,比下拉电阻产生的弱下拉产生的截止更可靠;同时,595上电后的状态为确切的0,也省去了软件设置初始状态的工作

出0入0汤圆

发表于 2008-8-4 15:45:14 | 显示全部楼层
楼上未考虑2个问题:
1、SRCLR引脚只对第1级触发器清零,却不能清除第2级(如图)。
2、看楼主的意思是想拉较远的距离(10m)呢,用什么信号连接尚不清楚,处理器和595之间与其加臃肿的连线,还不如多用个便宜的器件在本地解决。

出0入0汤圆

 楼主| 发表于 2008-8-4 16:12:37 | 显示全部楼层
要用74HC594他两级的移位寄存器都带了清理端子。我的电路基本搞好了。请大家指点一下。

(原文件名:a.JPG)
信号VIN是给继电器用的。IN是来自74HC595的。74HC595的OE端子加了上拉电阻。继电器控制板的电路如下:
点击此处下载 ourdev_368413.pdf(文件大小:33K) (原文件名:relay.pdf)
上面的继电器板会级联起来。6个板子一组。会有一个单片机来驱动它们。单片机通过485接口和主机联系起来。

出0入0汤圆

 楼主| 发表于 2008-8-4 21:50:23 | 显示全部楼层
顶一下

出0入0汤圆

发表于 2008-8-4 22:16:42 | 显示全部楼层
电源处理得不错。
基极串330Ω阻值似偏小了点,让595活得好累。
远距离传送俺仍旧认为用光耦或差动较合适些,你这可是没有校验的,只要错一位继电器就乱套了。

出0入0汤圆

发表于 2008-8-5 15:01:22 | 显示全部楼层

出0入0汤圆

发表于 2008-8-5 17:12:29 | 显示全部楼层
TPIC6B595这个芯片怎么样?我查了下大概3.5元一片,如果性能比74HC595好,那还不如用TPIC6B595省心

出0入0汤圆

 楼主| 发表于 2008-8-5 20:29:52 | 显示全部楼层
TPIC6B595会比较好,我要用几百个。估计价钱不错。对哦 。我的通讯协议会加上crc16的。我那个原理图电源有问题的。给继电器供电的12v没经过二极管,我应该改了原理图。我的继电器一个时刻就一个导通,电流不大。我把所有的OE信号都处理了一下。从机出来的信号都加上上拉电阻。

出0入0汤圆

发表于 2008-8-6 22:28:04 | 显示全部楼层
记号

出0入0汤圆

发表于 2009-4-13 17:30:05 | 显示全部楼层
MARK
学习了!!!

出0入0汤圆

发表于 2009-4-15 09:16:06 | 显示全部楼层
12楼兄弟正解!

出0入0汤圆

发表于 2009-11-12 16:28:54 | 显示全部楼层
顶!

出0入0汤圆

发表于 2009-11-12 20:20:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-11-12 23:50:13 | 显示全部楼层
好贴

出0入0汤圆

发表于 2009-11-13 00:34:28 | 显示全部楼层
之前遇到过同样的问题,阅贴收获不少,mark,mark!

出0入0汤圆

发表于 2009-11-13 01:10:01 | 显示全部楼层
好贴 学习

出0入0汤圆

发表于 2009-12-2 13:59:50 | 显示全部楼层
8楼的方法应该可行

出0入0汤圆

发表于 2010-1-14 14:37:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-14 15:51:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-2-17 21:59:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-2-17 22:44:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-2-17 23:15:33 | 显示全部楼层
学习。

出0入0汤圆

发表于 2010-3-19 22:36:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-3-19 23:02:59 | 显示全部楼层
信号传输应该用光电隔离,继电器的驱动做在远端的继电器这边。

出0入0汤圆

发表于 2010-3-20 00:52:15 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-4-1 21:11:44 | 显示全部楼层
学习了

出0入0汤圆

发表于 2010-4-28 15:00:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-28 15:54:39 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-4 00:42:12 | 显示全部楼层
换成 74HC594,加个上电复位电路,不就行了嘛

出0入0汤圆

发表于 2010-10-12 21:11:50 | 显示全部楼层
标 记

出0入0汤圆

发表于 2011-5-20 10:53:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-1 11:03:48 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-10-13 09:59:11 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-18 01:17:28 | 显示全部楼层
不用什么延时电路,先确定avr的启动输出电平是高还是低,不要去尝试改变这个电平,你改变他,就意味着有电平变化,就会误动作。只需控制所有595的oe脚电平,这个电平为低就输出,所以保证oe脚为高不管其他引脚如何变化,都不会有输出的。然后看avr电平启动如果是高就不用改变,等待正常只需再去改变输出电平,如果为低,就直接硬件加非门的电路,比如4069,启动时输出低,非门反向是高,595的oe就一定是高了,为高阻,绝对不会输出,其他引脚电平可以不去理睬了,怎么变化都是高阻,只是正常运行后要输出595,就要对所有输出进行一次复位后再输出。我实际应用时的做法相当有效,没有使用rc电路。

出0入0汤圆

发表于 2012-2-18 04:11:07 | 显示全部楼层
setting OE doesn't work as it puts the output into tri-state -> depending on your driver set-up, the relays will most likely change state.

the right approach is to lock in the storage register: by holding it low during power transitions. With this approach, whatever state was previously in the shift register is preserved and the output drivers will not change state.

出0入0汤圆

发表于 2012-2-18 10:02:15 | 显示全部楼层
mark 2

出0入33汤圆

发表于 2012-3-8 10:10:12 | 显示全部楼层
技术贴 收藏

出0入0汤圆

发表于 2012-3-8 11:37:03 | 显示全部楼层
mark之

出50入4汤圆

发表于 2012-3-8 11:53:26 | 显示全部楼层
实际应用 :
【8楼】 holycat 仙猫 的方法很管用,但是100K 好像小了点,还是有误动作,换成200K。。。非常好用

出0入0汤圆

发表于 2012-4-27 13:56:14 | 显示全部楼层
好贴啊,

出0入0汤圆

发表于 2012-5-4 18:18:06 | 显示全部楼层
Mark! 学习了!!!!!!

出0入0汤圆

发表于 2014-4-1 19:48:04 | 显示全部楼层
标记,学习一下。

出0入0汤圆

发表于 2014-8-15 15:53:38 | 显示全部楼层
holycat 发表于 2008-8-4 15:45
楼上未考虑2个问题:
1、SRCLR引脚只对第1级触发器清零,却不能清除第2级(如图)。
2、看楼主的意思是想拉 ...

我明白他的意思,它强制复位595内部移位寄存器,当上电电压上升时,相当于进行了一次锁存输出,这样的话Q0-Q7就是拉低了

想法应该不错,可能不是最可靠的办法,最可靠的还是OE脚控制办法,但是这样就多了一个io口占用

我现在就打算这么用了,rst端阻容复位的用在led显示这种地方,oe端控制的就用在绝对保证无误的地方。我的应用中需要先释放显示控制,初始化后才开关键输出

出0入0汤圆

发表于 2014-8-15 16:01:37 | 显示全部楼层
myxiaonia 发表于 2014-8-15 15:53
我明白他的意思,它强制复位595内部移位寄存器,当上电电压上升时,相当于进行了一次锁存输出,这样的话Q ...

挖坟啊兄弟

出0入0汤圆

发表于 2014-8-18 20:41:37 | 显示全部楼层
machao 发表于 2008-8-2 01:45
借8楼图一用。

AVR的一个I/O接OE,OE接一个5K到VCC。AVR上电过程中I/O为输入高阻态,OE由5K电阻拉高,595 ...

对用上这个OE

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-6-3 10:06

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

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