打印

【有奖征文活动】调试过程中发现的74HC595级联问题

[复制链接]
11735|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小星2008|  楼主 | 2009-8-29 15:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一次调试公司新改的单片机板,用3个74HC595级联驱动24个LED灯(见下图)发现每当驱动信号跨过第一个芯片时,LED灯就会出错乱闪,当时以为是程序问题但是参考了原来老板子程序,在LED灯驱动方面程序并没有改动。于是找了块老板子调试发现原来的板子也存在同样问题,不知道原来的板子是没人发现问题还是没找到办法解决?(呵呵!公司内部的事情在此就不讨论了)
      既然发现了问题作为一个技术人员当然就不能置之不理啦!于是偶就打开了百度输入74HC595级联问题,发现74HC595级联还真是问题网上也有不少人反映遇到过同样的问题,有用来驱动数码管的有用来驱动LED显示屏的都说级联后会乱闪,有说法是干扰引起的得在芯片电源脚加滤波电容,看看我的板子每个芯片电源脚都加了滤波电容啊!应该不是干扰引起的。再看一贴说是单片机驱动电流不够的原因得加上拉电阻,说用示波器看RCK和SCK的信号,上升沿时是爬行上升的,单片机驱动电流不够导致输入时钟信号失真,有可能-看看自己的板子DATA、RCK、SCK管脚均没加上拉电阻,于是加了个10K的上拉电阻再调-不行,换个5K的再调-还不行,再换个1K的再调-OK!:-)驱动信号跨芯片时LED灯再也不会乱闪了,至此LED灯乱闪问题得到圆满解决,剩下的就是改PCB图加上拉电阻了。


       回头来总结一下,74HC595级联理论上来说并没有问题,但实际应用过程中往往会遇到驱动能力、时延等问题,正验证了“实践才是检验真理的唯一标准”。书本上的知识终究只是纸上谈兵没经过实践的检验终究是行不通的。以后在设计单片机系统时一定要考虑单片机管脚的驱动能力,能避免设计过程中产生许多莫名奇妙的问题。
      新手第一次发帖参与请高手多包涵啊!发得有点迟但我想迟到总比不到好但愿版主能够看到。“一个苹果交换一个苹果,每个人还是只有一个苹果。而如果一个思想去交换另一个思想,则就可以获得两个思想。” 但愿大家都能够得到两个思想o(∩_∩)o...

相关帖子

沙发
auzxj| | 2009-8-29 16:03 | 只看该作者
我级联164的也出过类似问题,一直以为数据串行的长了就会丢数据呢,原来是酱紫啊~~学习了

使用特权

评论回复
板凳
因特网用户| | 2009-8-29 16:38 | 只看该作者
mark

使用特权

评论回复
地板
沈洁| | 2009-8-29 17:58 | 只看该作者
兄弟用的是什么单片机啊,不会还是51吧,如果是51确实需要怎么干,否则速度不够的说啊

使用特权

评论回复
5
ningling_21| | 2009-8-29 20:06 | 只看该作者
51可以加片245做驱动....

使用特权

评论回复
6
小星2008|  楼主 | 2009-8-29 20:28 | 只看该作者
TO:沈洁
我用的是福星晓晨的一款电能计量芯片内含51的内核

4# 沈洁

使用特权

评论回复
7
gaohq| | 2009-8-29 23:14 | 只看该作者
好贴我就顶。

使用特权

评论回复
8
叶红-落叶| | 2009-8-30 08:11 | 只看该作者
顶。

使用特权

评论回复
9
古道热肠| | 2009-8-30 10:29 | 只看该作者
哈哈,单片机的IO口带载重的话是要加线路驱动器的,常用HC244或HC245,一个HC245带8个HC595绝对没问题,LED单片板都这样做的.
见过一个用HC595做时钟的成品,用的是HC04,功能也是一样的
还有一个办法软件解决方法可试试,降低到HC595的CLK的频率,加宽高低电平的宽度,仅用于HC595作静态驱动时有效.

使用特权

评论回复
10
NE5532| | 2009-8-30 10:45 | 只看该作者
不过楼主注意一个细节,你说是有数据的时候乱闪,1k的上拉电阻已经够小的了,除非是你的线太长了。

使用特权

评论回复
11
有风| | 2009-8-30 12:11 | 只看该作者
汗,
刚好有个东西要这样做...

使用特权

评论回复
12
程序匠人| | 2009-8-31 12:59 | 只看该作者
迟来的爱也是爱呀。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
古道热肠 + 2
13
snow88| | 2009-9-2 11:20 | 只看该作者
我用245的两个脚并联驱动过20个595,没有问题

使用特权

评论回复
14
救火车| | 2009-9-2 11:26 | 只看该作者
楼主把程序也贴出来呀。

使用特权

评论回复
15
宇容创行| | 2009-9-2 11:42 | 只看该作者
51的驱动不至于这么弱吧

怀疑楼主时序上存在问题

使用特权

评论回复
16
awmc_m| | 2009-9-2 13:32 | 只看该作者
如果线过长,可以在cs和clk线上对地接个几百p的电容试试

使用特权

评论回复
17
awey| | 2009-9-3 02:40 | 只看该作者
楼主应该注明一下用的是什么单片机?IO口的结构是怎样的?这样才完善。
如果IO口是图腾柱输出结构的,这个根本就不是问题。
另外,也有10楼NE5532同样的疑问。

使用特权

评论回复
18
小星2008|  楼主 | 2009-9-4 00:11 | 只看该作者
首先感谢大家的热心关注提出了许多有效的解决方法,在此深表感谢!
TO 10楼、17楼问题:
PCB板上布线不是很长大概8cm左右,线宽0.2mm
我用的福星晓晨的PL3105 SOC芯片,内含51单片机内核,芯片手册如下
PL3105芯片手册.rar (1.58 MB)
芯片I/O口不是图腾柱输出,国产芯片手册不是很详细,我用的是p2.4p2.5p2.6三个I/O口
17# awey

使用特权

评论回复
19
小星2008|  楼主 | 2009-9-4 01:18 | 只看该作者
本帖最后由 小星2008 于 2009-9-4 01:20 编辑

TO:14楼、15楼问题
因程序比较长有4、5千行,这边只把跟LED相关部分程序贴出来望前辈多多指教,程序如下

                       LED_DIS1              EQU    3CH
                       LED_DIS2              EQU    3DH
                       LED_DIS3              EQU    3EH

                       HC595_LED_DATA  BIT     P2.4
                       HC595_LED_SHCP  BIT     P2.6
                       HC595_LED_STCP  BIT     P2.5
;******************************************************************************************
************************
;    用户指示灯显示函数
; 入口ED_DIS1,LED_DIS2,LED_DIS3
; 使用:A,R0
;******************************************************************************************
************************
LED_DISPLAY:  PUSH ACC

                        CLR HC595_LED_SHCP
                        CLR HC595_LED_STCP
  
                        XRL LED_DIS1,#0FFH
                        XRL LED_DIS2,#0FFH
                        XRL LED_DIS3,#0FFH

                        MOV R0, #24
LED_DISPLAY1: CLR C
                        MOV A,LED_DIS1
                        RLC A
                        MOV LED_DIS1, A
                        MOV A,LED_DIS2
                        RLC A
                        MOV LED_DIS2, A
                        MOV A,LED_DIS3
                        RLC A
                        MOV LED_DIS3, A
                        MOV HC595_LED_DATA,C
                        CLR HC595_LED_SHCP
                        NOP
                        NOP
                        NOP
                        NOP
                        SETB HC595_LED_SHCP
   
                        DJNZ R0, LED_DISPLAY1

                        CLR HC595_LED_SHCP   
                        SETB HC595_LED_STCP
                        NOP   
                        NOP   
                        NOP   
                        NOP   

                        POP ACC
                        RET

14# 救火车

使用特权

评论回复
20
dengm| | 2009-9-7 18:40 | 只看该作者
在Q7` 们上接 102 电容们到地

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

60

帖子

1

粉丝