嘿嘿,没想到回复得这么快。
其实提问之前应该先自己百度一下的才对,这不我找到了一篇:
http://hi.baidu.com/hisic/blog/item/da26aa191d2444bc4aedbcc3.html内容如下:
2440+SDRAM(K4S561632H*2)总结:
1. 为什么2440只有27根地址线?
答:2440地址空间分为8个bank,每个bank为128M(即为2^27),nGCS[0:7]作为bank的片选信号,总的寻址空间为128M*8=1G。
2. 为什么SDRAM的物理地址是0X3000 0000?
答:在2440memory map中,SDRAM属于bank6、bank7,而bank6的物理地址为0X3000 0000。怎么让SDRAM属于bank6?简单,将nGCS6作为SDRAM的片选信号即可。
3. 为什么2440与SDRAM地址线错两位相连?
答:错两位是为了32位对齐(地址为8位数据地址,2440位宽为32,错两位,一次跳4byte)。
4. 为什么SDRAM的地址线只有13位+2位bank?
答:SDRAM行、列地址线复用,RA0~RA12(13根行线)+CA0~CA8(9根列线)=22。所以每个bank为2^22=4M(16Bit)。K4S561632H为4M*16Bit*4bank。
5. 为什么两片SDRAM接了相同的地址线?(引用Gdatasheet回复)
答:至于两块sdram 的并联,我的理解如下
c U1 U2
0 0123456701234567 0123456701234567
1 0123456701234567 0123456701234567
2 0123456701234567 0123456701234567
3 0123456701234567 0123456701234567
两个16位的拼成一个32位的
cpu读 0那行的时候,通过nBWEx 控制UDQM, LDQM选择高低 半字 ,然后传数据到数据线上
虽然地址线共享,但数据线没有共享,所以我猜 他是同时的,只是通过nBWEx的控制对高低 半字分开读取,再传到相应的数据线上。
分时(或同时,具体也不清楚,只是个人猜测)
关于2440访问16bitSDRAM有一篇gooogleman总结的blog:
http://blog.csdn.net/gooogleman/archive/2008/11/12/3283075.aspx