pigjiang 发表于 2007-12-22 20:57:03

请问大家一个M128扩展62256的问题

电路如图,问题就是62256的片选CS应该始终接地还是应该接到M128的A15引脚?这两种接法有什么区别吗?另外,比较好买的3.3V的62256有什么型号?谢谢!
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_192152.jpg

machao 发表于 2007-12-24 20:33:42

已经看到过类似的帖子,此贴也有2-3天了.

想看看其它网友的解答,奇怪的是很少回答这类硬件类的帖子.硬件设计可是电子工程师的看家本领之一.是太难还是太简单?

下面我做个分析解答.

1.CS是片选,通常与译码电路的输出连接.硬件上的设计应该是,当MCU对该芯片对应的物理地址空间操作时,译码电路输出低电平,选通该芯片.当CS为"0"时,OE=0,IO0-IO7为输出,WR=0时IO0-IO7为输入(OE和WR不能同时为0),其它IO0-IO7为高阻.

2.由于你的电路只扩展一片62256,因此可以不用译码电路.将CS直接接地和接A15都可以.

3.CS接地.62256一直处于选通状态,A0-A14为15根地址线,空间为32KB.
优点:
a) A15可以作为通用I/O使用.
b) 由于M128芯片内部占用了4352个RAM地址(32+64+160+4096),所以外部扩展存储器的寻址空间地址是从0X1100开始的。在对0X0000-0X10FF范围的RAM地址空间操作时,实际是对芯片内部的SRAM或寄存器操作,而对相应的处在这段地址范围的外部扩展存储器没有影响(RD和WR不动作)。这样62256的低4352个单元好象没有用处了.但在实际应用中,可以把这段地址范围的外部扩展存储器“移”到RAM地址空间的高端使用: 尽管15根地址线的寻址范围为32K(0X0000-0X7FFF),但用户程序可以对0X8000-0X90FF寻址操作,此时实际是对外部存储器RAM芯片的0X0000-0X10FF操作。即将62256的前4352个单元“移”到32K地址空间后面了,因此系统总的有效RAM地址为线形连续的36.25KB(32K+4352)。

4. A15接CS.上面2个优点没有了.M128对0X0000-0X7FFF的操作,前4352个对内部,后面对62256,但最大到0X7FFFF.因为只有0X0000-0X7FFF这一段A15为"0",超过该范围A15为"1",62256不会被选通.62256内部低4352个单元肯定浪费掉了.
   但如果你外部还要并行扩展一个器件,如8255,这样的接法可以简化译码电路.在A15上接个非门,非门的输出就作为8255的片选.这样0X0000-0X7FFF是62256,而0X8000以上就是8255了.

不知道能理解吗?

shalixi 发表于 2007-12-24 20:59:48

留下

lanshuitianxia 发表于 2007-12-24 21:03:58

拜读了 讲的真详细啊

migzan 发表于 2007-12-25 00:16:55

马老师讲的很好

尽管我明白,但是还是很仔细的看看了

jj3055 发表于 2007-12-25 00:56:28

问一个很BC的问题,62256速度跟得上AVR吗,比如AVR工作在16MHz以上?
很少见到它的资料.不同的片子好象速度也不一样,我以前在51上跑24MHz(12时钟模式)以上有点怕,在AVR上没用过.

powerful 发表于 2007-12-25 07:32:33

速度当然不一样了,我试过61系列RAM 速度-15的在18M多没问题

pigjiang 发表于 2007-12-25 09:02:20

感谢马老师的详细讲解!
我前2天刚买了您的那本书,《AVR单片机嵌入式系统原理与应用实践》上面对这个内容有很详细的解答。
时下单片机嵌入式之类的书很多,但是像您这样“言传身教”的书还是很少的:)

再次感谢马老师,我会经常来马老师专栏的。有您这样的老师,是华东师大电子系学生的福祉^_^。

tozzz 发表于 2007-12-30 14:44:21

记号

zxq6 发表于 2008-1-14 23:09:28

谢谢,

avr_c 发表于 2008-1-14 23:24:15

对马老师的建议的看法,

CS接地 因为RAM 一直片选,增加耗电量,受干扰的几率增大。

zxq6 发表于 2009-2-25 11:00:02

以前一直不明白,今天因为设计需要,重新阅读,终于明白了。

kyughanum 发表于 2009-2-25 15:15:20

b) 由于M128芯片内部占用了4352个RAM地址(32+64+160+4096),所以外部扩展存储器的寻址空间地址是从0X1100开始的。在对0X0000-0X10FF范围的RAM地址空间操作时,实际是对芯片内部的SRAM或寄存器操作,而对相应的处在这段地址范围的外部扩展存储器没有影响(RD和WR不动作)。这样62256的低4352个单元好象没有用处了.但在实际应用中,可以把这段地址范围的外部扩展存储器“移”到RAM地址空间的高端使用: 尽管15根地址线的寻址范围为32K(0X0000-0X7FFF),但用户程序可以对0X8000-0X90FF寻址操作,此时实际是对外部存储器RAM芯片的0X0000-0X10FF操作。即将62256的前4352个单元“移”到32K地址空间后面了,因此系统总的有效RAM地址为线形连续的36.25KB(32K+4352)。

马老师这段的这句:“可以把这段地址范围的外部扩展存储器“移”到RAM地址空间的高端使用”怎么理解啊?我还想不通。能否详细讲解一下啊?多谢了

machao 发表于 2009-2-25 17:10:00

我想已经够明白了吧。

aozima 发表于 2009-2-25 17:28:24

请楼上的楼上算下当MCU访问0X8000-0X90FF和0X0000-0X10FF时的地址线的状态(假定MCU内部没有RAM)

climber 发表于 2009-3-7 15:20:52

谢谢,马老师,说的太好了
页: [1]
查看完整版本: 请问大家一个M128扩展62256的问题