5832|15

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教一个基于51单片机外扩RAM的问题! [复制链接]

我的系统基于8051单片机,外扩了32K SRAM,其地址空间为0x0000-0x7FFF,因此只要15根地址线就够了,我把A15(P2_7)作为片选信号,扩展了2路IO(驱动继电器,带隔离了)和其它的一些用途的输出。也就是说,若要去操作继电器的话,就要用到最高位的地址线A15,否则若只是使用32K SRAM,则A0-A14就够了,因此A15应该一直是低电平。

在实际应用的过程中,遇到了问题。程序运行起来之后,在不操作继电器的情况下,使用示波器测量A15,主要为高电平,偶尔被拉低成方波信号(每次低电平的持续时间大约有600ns)。另外,就是继电器会无规则地吸合和断开(根本没有去操作继电器),经过几十秒之后,最后结果有2种情况:
1,导致外扩的32K SRAM采用动态方法分配失败,但程序仍在运行(我在程序中设置,动态内存分配失败,则通过串口不断打印某字符,程序停在此处)。测量A15为高电平,信号有较小的干扰。

2,程序完全死掉。测量A15为高电平,信号有较小的干扰。

我的疑惑是,没有去操作继电器,就不会用到A15,它应该一直为低电平,怎么反而是高电平了?再就是继电器怎么会无规则地吸合和断开了?

请各位高手指点!
另外,谁若有外扩RAM的电路,能否给我一份?(在回复中贴个图了),最好除了扩展RAM之外,还通过A15扩展IO和其它一些信号的电路。谢了先!

若需要其它的测试信息,请在回复中提出!

最新回复

回楼上的,是加了锁存的。 问题已经解决,结贴了。 十分感谢各位的指点!  详情 回复 发表于 2009-6-29 08:56
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
看你的描述,觉得硬件问题的可能性比较大,不是很懂硬件。

软件方面你可以考虑主动去拉低A15,如果这样的话,你的A15的状态还是跟你的描述一样,那应该就是硬件的问题了,你就得找个硬件的高手问问了,看是不是有感应电压或者干扰回路什么的。
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
多些楼上的回复!

我尝试用软件把A15引脚拉低。做法是这样的,定义一个指针,指向0x7000,因此A15=0,A14=1,A13=1,A12=1,其它地址线均为0,然后把此地址赋值,然后把找个值读出来,通过串口发送回来。

然后用示波器测试,发现:
A15为高电平,偶尔被拉低;
A14,A13,A12始终为高电平;
A11-A8和A15一样,一般为高电平,偶尔被拉低。
由于A7-A0是和数据线复用的,测试无意义。

不知我把A15拉低的做法,是否恰当?请高手指点!

觉得很奇怪,A11-A8怎么会和A15一样,一般为高电平,偶尔被拉低。应该一直为低才对啊。不知道单片机对高8位的地址线是怎么处理的。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
我现在怀疑,单片机对高8位的地址线的处理,在不使用的时候,是不是一般为高,当被使用(即寻址要用到这个地址线)时,才会被拉低了?(那位高手能帮我确认一下这个问题)

因此是不是电路上,需要对A15-A8加一个下拉电阻了?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
我在A15上加了一个下拉,测试发现,A15一般为低电平,但偶尔被拉高为高电平,被拉高的时间很短,但强度较大,信号几乎被拉高为最大值(即电源电平)。

另外,我的电路结构是,在A15之后加了一个与非门,与非门内部通过一个反向的二极管到地。
单片机P2口内部是带强的上拉的,那么看来若要是P2口为低,那是否真的需要一个下拉了?
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

6
 
是否对单片机P2口有别的操作?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

7
 
P2口只是作为地址线的高位,没有做别用途。另外,只是把A15相当于作为一个片选信号来使用。

不知道我这种做法是否对阿?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
建议上个完整的原理图,我是做硬件的,但是你很多含糊的表达我不明白
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

9
 
公司管的比较严,我拿不到原理图。有什么不明白的,请在回复中提出!

其实电路挺简单的,我也不知道为什么会出这种错误。外扩RAM一般都是这么做的啊。
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

10
 
换快板子试试。看是不是个案。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

11
 
p2 口 有内置的上拉电阻, 初始状态为 0xFFH, 若要使用低电平,那么需要 软件置 零
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

12
 
10楼加上3楼LZ自己的理解,应该是解决问题的思路。
单片机的P2口确实只有在寻址操作的时候才会有动作,当然前提是没有程序对它有其他操作。
不知道你用的是什么单片机,可以考虑禁止A15上的内部上啦,然后外部加个下拉电阻。软件里先回避使用7FFF以上的地址,观察A15上还有否误动作。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

13
 
我是用C写的程序,编译器应该会自动做这些操作吧。

另外,程序指定对某个地址进行操作,应该会自动被处理吧。
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

14
 
LZ你要不这样,A15脚,你接一个和地与的门再到你的SRAM

这样的话你的A15是什么东西,RAM都不会出问题了

然后,再把A15取出来控制继电器

按理说纳秒级的东西,不会让继电器在吸合或放开的稳定状态下误动作

 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

15
 
"A15(P2_7)作为片选信号,扩展了2路IO",不知何种方式扩展的,有锁存吗?

P2_7作为地址总线的A15只有在寻址操作时才有高低电平变化,P2_7平时作为IO口默认是高电平。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

16
 
回楼上的,是加了锁存的。

问题已经解决,结贴了。

十分感谢各位的指点!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表