打印

51单片机总线扩IO难题

[复制链接]
2839|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
古道热肠|  楼主 | 2007-4-30 11:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
古道热肠|  楼主 | 2007-4-30 11:43 | 只看该作者

抛码引玉

  如果要求上电为低电平,使用74HC273就能实现,该芯片带复位引脚。

使用特权

评论回复
板凳
maychang| | 2007-4-30 12:07 | 只看该作者

楼主是否考虑用三态输出的芯片如74HC573,输出加上拉电阻

该芯片输出允许端加电阻电容(类似51单片机复位电路),时间常数够大,使得上电时该芯片输出为高阻态。单片机开始工作后,先锁存数据,再使该芯片允许输出。

使用特权

评论回复
地板
xwj| | 2007-4-30 12:08 | 只看该作者

1、输出加或门与复位信号相或;2、输出加上拉,/OE脚接复位

其他,你自己慢慢想...

使用特权

评论回复
5
chunyang| | 2007-4-30 12:28 | 只看该作者

HC377

    总线要加上拉,G端连复位,不过得试试,能否可靠要看总线的逻辑1和复位的逻辑1谁先建立了,该方法甚至可能与IC生产商有关。另一类方法是用三态输出的锁存器或用锁存器+驱动器的结构,上电输出呈高阻,然后外加上拉,必要时再加一级缓冲,但此类方法仍可能存在暂态问题,要仔细分析。
    电路设计的合理性应该总体考虑,在某些需严格避免暂态影响的应用中,最佳方法是在传输通道上加一道逻辑“锁”,如要求特定组合逻辑序列(例两个IO必须按序输出10,而其它组合如01、11、00等无效,位数越多越可靠)甚至特定时序逻辑系列(可用移位寄存器等配合逻辑电路实现)才能打开这道“锁”。

使用特权

评论回复
6
古道热肠|  楼主 | 2007-4-30 12:45 | 只看该作者

难题背景说明

  该系统原使用的并行串口扩展芯片GM16C450,并使用了其DTR、RTS、OUT1、OUT2作为4路通用IO输出,此芯片的复位脚与MCU复位脚相连,上电复位时,GM16C450就为高电平输出,现在不想用此芯片了,简化电路,诸位所述方案不太理想。

使用特权

评论回复
7
古道热肠|  楼主 | 2007-4-30 12:54 | 只看该作者

4楼的办法也许可行

   3楼所提用阻容控制三态门的OE脚,如果一直按复位键,输出就会不确定啦!4楼朋友提供的第2种办法理论上可行,只是IO输出串联1K电阻后直接驱动8050三极管,上拉电阻用10K肯定太大,用1K上拉是否又太小,而且复位完成后,锁存器的内容立即输出,如果此时单片机出了故障,没有发出锁存FF的指令,输出的内容还是不能确定,会失控的。

使用特权

评论回复
8
chunyang| | 2007-4-30 12:57 | 只看该作者

没有空余IO又想简单单芯片解决不容易

试试377吧,只要复位的逻辑1稍滞后于上拉的逻辑1即可。

使用特权

评论回复
9
古道热肠|  楼主 | 2007-4-30 14:24 | 只看该作者

8位锁存器带预置的是否有?

  MCU的IO口线是全部用完了,不能动了,楼上推荐用377锁存器,想问上电时377锁存器如果Q输出端为低电平,上拉又有何用,灌电流很大的,会拉低电位。诸位是否用过带预置功能的8位锁存器,2位的倒有现成的如74HC74,实在不行,准备用此来试试了。

使用特权

评论回复
10
maychang| | 2007-4-30 14:52 | 只看该作者

居然要用74HC74,真不知道楼主怎么想的

那要用几片?
看来电路板面积有余。

使用特权

评论回复
11
conwh| | 2007-4-30 16:04 | 只看该作者

简单问题简单处理,在硬件加一级延时控制,以避开MCU在上电时

不稳定状态.其他的没有看明白

使用特权

评论回复
12
古道热肠|  楼主 | 2007-4-30 16:25 | 只看该作者

可靠的设计,上电与下电一定要可靠,简单处理不行的

    系统原来使用串口芯片16C450的4个控制口,用74HC74,用2片,是不爽。只是找不到好的办法呀!

使用特权

评论回复
13
chunyang| | 2007-4-30 17:42 | 只看该作者

上拉是在输入即总线上

377的使能端为高时,其输出不是高阻而是锁存器当前的内容,在芯片上电暂态时,接在总线上的输入、接在复位上的芯片使能和接在MCU IO上的锁存端均存在一个上升沿,只要使能端的上升沿稍滞后,其输出就为高,但这只是理论上的,而且正常工作态按下复位,377的输出将是当前值,不能保证全1。变通的办法可用双输入或门如HC32配合锁存器实现,双输入或门的一输入接锁存器输出,另一输入接复位,相当于加了一道单输入的逻辑“锁”,但此电路需用3片IC才能实现,占用PCB面积较大。

使用特权

评论回复
14
chunyang| | 2007-4-30 17:50 | 只看该作者

还有个办法

用HC845、2845、29845等,带预置逻辑,只是未必好买,但其逻辑可轻松用一片GAL实现。

使用特权

评论回复
15
古道热肠|  楼主 | 2007-5-5 10:19 | 只看该作者

感谢诸位,最后的方案

   HC377的G端为输入锁存允许脚,chunyang 的方案我理解了。感谢诸位出谋画策,提出了这么多好的建议,经过多方考虑,最后决定用HC573作为锁存器,输出上拉,HC573的OE脚接公开高电平复位端,根据chunyang的建议,采用"逻辑锁"方式将输出再加一级由单片机控制的门控电路,实现了双保险,虽然不能与原系统完全兼容,但可靠性和简洁性大大提高。

使用特权

评论回复
16
将军令| | 2007-5-7 09:41 | 只看该作者

这个简单极了

用MCU的复位信号,再用CPLD来扩展IO
复位信号不要用RC的那种电路,要用专门的复位IC电路

使用特权

评论回复
17
woshansi| | 2014-1-28 08:42 | 只看该作者
没有细看呢,不知道每个脚加一个反相器可否,

使用特权

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

本版积分规则

284

主题

6411

帖子

16

粉丝