rkrkrkrk 发表于 2008-1-2 17:47:08

求救SN74HC595级联扩展IO控制继电器

问题出在系统上电和掉电的一瞬间,595总是有随机输出。
我在MCU开始工作的第一时间就把OE控制置到高位,但是还是有输出。
该怎么办?请有经验的朋友帮帮忙

woodtower 发表于 2008-1-2 18:22:24

OE加个上拉电阻行的不?

qhdz 发表于 2008-1-2 19:00:24

http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_196492.jpg

qhdz 发表于 2008-1-2 19:03:18

上电延时 RST置高 OE置低

rkrkrkrk 发表于 2008-1-2 20:06:08

OE我加了上拉,但没什么作用。
上电的时候595的所有输出脚上都有个脉冲。
我现在用4个IO控制595,SER,OE非,RCLK,SRCLK分别控制。
上电的时候好象完全控制不住。
真是苦恼啊。。。

woodtower 发表于 2008-1-2 20:10:56

这样看行不,OE用三极管做一级反向····

yaya001 发表于 2008-1-2 22:16:10

留爪关注

woodtower 发表于 2008-1-2 22:40:40

楼主595后面是不uln2003之类的,有没有可能不是因为595的输出电平而是595的驱动问题,尽管达林顿给点电压就行,给595输出上拉试一下。

rkrkrkrk 发表于 2008-1-2 22:57:53

我是用两片595级联,以前也经常用到,但是由于是控制数码管,所以要求也不是很严格。
这次需要控制16个继电器,因此绝对不能有非正常的吸合动作。

仔细看了下PDF,里面意思可以在上电过程中通过OE转换到高阻状态,然后移入数据,再使能输出。

但是问题就是,就算我在mega64复位后的立即拉高OE,也不能阻止Q1-Q7上出现一个毫秒级的脉冲。

怎么办,再次求助大家。

rkrkrkrk 发表于 2008-1-2 23:01:22

我现在595后面就接了16个LED做为示意,其他什么都没接。

sky1234567 发表于 2008-1-2 23:44:22

595的上电时间就是电压从0到5v的时间有多长?加一个rc延时一下,确保OE先被拉到高电平。在上电时变化率最好再快点。

martinstone 发表于 2008-1-2 23:44:24

或许你加了驱动电路、继电器后情况会好一些,几毫秒级的脉冲可能对继电器并没有影响:继电器线圈是电感性原件,电流不能突变,所以这么短的时间不足以使继电器导通。另外你是不是应当检查一下单片机程序,让OE在尽可能短的时间内拉高。如果用其它方法解决不了问题,试一试下面的方法:

用一个PNP的三极管控制继电器线圈的供电电源。在单片机没有起振、595加电前,保证这个PNP三极管是关闭的。而在掉电前(需要考虑掉电吗?如果系统掉电,所有的继电器都应当断开啊!),也同样是保证这个PNP三极管先关闭。待595稳定后,再控制PNP三极管导通。当然用场效应管也是可以的。

jiayushu 发表于 2008-1-3 00:06:19

我做的时候也是这个问题.当时没解决,希望楼主解决把方法说下.

jintongshuai 发表于 2008-1-3 09:25:27

常见问题,使用门控即可

rkrkrkrk 发表于 2008-1-3 11:27:50

jintongshuai 金统帅
能不能讲详细点?麻烦说下,十分感谢。

dfzcx 发表于 2008-1-3 20:18:00

采用继电器延迟供电即可解决

xiaobendan 发表于 2008-1-3 20:34:29

我用164做过输出,由于移位问题产生的抖动,通过在输出光藕的初级并联一个104电容解决的。595应该没有移位问题,至于楼主的问题是不是也可以这样解决?

feiyue 发表于 2008-1-4 10:01:58

楼主的问题,1楼的办法是可以解决的。上电的时候,OE被上拉高电平,此时595输出端为高阻状态,单片机复位启动后,送595指定串行数据后,然后再使能595OE(送低电平)。随机输出问题,也可能是继电器驱动电路产生的,楼主再查一查!

hujh3116 发表于 2008-1-4 14:50:55

OE脚并一个104电容到地,加上拉;或者用74HC14反相两次

rkrkrkrk 发表于 2008-1-10 15:59:10

OE上拉按道理是可以的,但是在我的板子上通不过,上电瞬间595输出端并不是高阻。

用了个霸蛮的办法解决,多用了一个IO控制595的VCC。

donkey 发表于 2008-1-10 20:31:36

用示波器看过没有?没有的话还是看看,感觉不是595的问题

fugeone 发表于 2008-1-10 20:53:03

兄弟,你看看TPIC6B595试一试,在输出前搞个达林顿控制继电器的电源端(也就是16楼说的延时供电),稳定后再给电源什么的。。。6B595只在输入数据为1的时候,输出低电平。。。我们产品绝对不允许任何误触发,因为控制的是晶闸管。。。现在用的就是6B595
用74HC595确实会出现这样的问题,而且我也没有找到好的办法,改用6B595是绝对没有这个问题的,不过前提是低电平控制外部信号。

点击此处打开ourdev_200314.pdf(文件大小:146K)

stevenlu 发表于 2008-1-11 09:29:55

我也在用74HC595,也一直存在这个问题。还好关系不大

Feeling_MCU 发表于 2008-1-11 09:39:23

强顶,马上要用到这东西,还不知道有这问题,麻烦了

Feeling_MCU 发表于 2008-1-11 11:12:34

还有一种方法,就是做电源管理,用mos去控595

rkrkrkrk 发表于 2008-1-11 15:16:56

谢谢指点,我去试试6B595

jeoge 发表于 2008-1-13 14:58:43

做一個mos管的595的電源開關用單片機來控制它,上電啟動延時開啟.

fangmcu 发表于 2008-1-13 17:31:24

我也是觉得最后没办法,就用控制595的电源的硬方法吧!!

qhdz 发表于 2008-1-14 09:08:52

我的办法是可以的 是用了5个I/O

xiaobendan 发表于 2008-1-14 13:05:44

我也在用HC的,找个6B的试试

channalv 发表于 2008-1-15 10:48:09

我用的是3楼的办法!

xiaobendan 发表于 2008-1-19 10:18:22

拿到了6B595的样片了,比74595多了4个脚,暂时没法用了,要做PCB了,是DIP的
全称是:HM6B595N

xiaobendan 发表于 2008-1-19 10:21:58

还有从资料上看,输出是OC的,这样看来用的话还是有不少麻烦的。

fugeone 发表于 2008-1-19 10:54:33

会麻烦么?反正你是控制继电器而已

Feeling_MCU 发表于 2008-3-13 11:34:52

有朋友做过这方面实验没?

我也要用595扩展IO口,现在开始设计原理图了,手上暂时没条件做实验,不知道做上拉加电容到底有没有效?

如果还是不能解决上面的问题,那只有加一个IO口做电源控制了.

已经用在实际项目的朋友指点指点啊

Elex 发表于 2008-3-13 12:25:53

可以用电容加电阻控制OE的方式,电容要大一点使得充电时间大于MCU初始化完成的时间。

capron 发表于 2008-3-13 12:35:22

方法1:给OE的那个上拉电阻并上一个电容
方法2:用阻容延时供电法给595供电,目的是MCU先上电,595后上电.

seanlz 发表于 2008-5-18 12:04:56

我也是刚好在我的产品里解决完这个问题,如果595的OE设计为直接接地的话,IC就会一直有输出,而由RAM特性可知,595的8个RAM数值是随机的,在一上电瞬间,单片机正在复位,根本无暇进行控制,于是在595对应为1的管脚上继电器有瞬间吸合,解决办法是在595 OE管脚上接RC延时网络,注意让其时间大于单片机的复位时间即可完美解决

hiangel 发表于 2008-7-19 11:27:08

我也遇到同样的问题,我的解决方法是既然595无法解决,可以在继电器端解决,如上电时使继电器电源为断开,595正常工作后,再打开继电器电源

fjhcpu 发表于 2010-7-25 19:12:45

我用的就是38楼的方法,不错

lou0908 发表于 2010-7-25 19:42:48

正想用595,学习了

odqqdo 发表于 2010-7-25 20:05:54

听起来38楼的郊果最好

zhangjw 发表于 2010-7-27 11:01:48

标记.

yzeng 发表于 2011-5-21 08:58:45

mark

zsdshuai 发表于 2011-10-28 16:34:31

正确的接法应该是有个初始化延时的RC电路接在SCLR上,同时要做好数据线上下拉,保证上电瞬间,处理器运行程序之前输出端口固定

xiaodongenter 发表于 2011-10-28 19:34:57

我的电路加上拉就Ok了,没有那么多问题,我用的51单片机,还有每个器件供电脚加一个10uf电解并联104

ylei12 发表于 2011-10-28 20:39:45

回复【36楼】Elex 阿甘
可以用电容加电阻控制oe的方式,电容要大一点使得充电时间大于mcu初始化完成的时间。
-----------------------------------------------------------------------

这个正解,以前用4094的时候上电时,数码管会乱码一下,用电容充电来解决,电阻电容都大点,延长充电时间

semonpic 发表于 2011-10-28 21:19:05

输出加上啦,且上拉电阻1K,甚至个小点

zyw19987 发表于 2012-3-26 11:28:33

我扩展后只用了595的低6位,我将Q7接OE脚并接上拉电阻

dfzcx 发表于 2012-3-26 22:35:19

其实这个问题完全可以用软件来解决,单片机上电复位后先发n*8个0,595输出不就正常了,而这个瞬间继电器不会响应的

king1314 发表于 2013-3-26 19:22:47

dfzcx 发表于 2012-3-26 22:35 static/image/common/back.gif
其实这个问题完全可以用软件来解决,单片机上电复位后先发n*8个0,595输出不就正常了,而这个瞬间继电器不 ...

你这个方法不行的
有两个问题:1: 595 优先单片机初始化完成在单片机上电还没初始化的瞬间,你如何输出八个0??
            2:如果按你的方法,我复位单片机,你会听到吸合的声音,我是深有体会

   请指教

tangleon 发表于 2013-3-26 19:46:53

如果单片机在运行过程中,看门狗复位了,595会保持原来的输出不变吗?!
单片机看门狗复位后重新运行,595会保持原来的输出不变吗?

zishiquan 发表于 2013-12-6 17:17:46

qhdz 发表于 2008-1-2 19:00


我也出这个问题   我加过 可以的你试试是不是加上拉 或下拉加的控制线 都试试
页: [1]
查看完整版本: 求救SN74HC595级联扩展IO控制继电器