原创 S3C2440与SDRAM的地址连线分析

2010-3-9 11:39 3993 4 5 分类: MCU/ 嵌入式

S<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3C244027根地址线ADDR[26:0]8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx的地址空间,ngcsx引脚为低电平,选中外设。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


2^27=2^7 * 2^10 * 2^10 = 128Mbyte


8*128Mbyte = 1Gbyte


所以S3C2440总的寻址空间是1Gbyte


市面上很少有32位宽度的单片SDRAM,一般选择216SDRAM扩展得到32SDRAM.


 


选择的SDARMHY57V561620F4Mbit * 4bank *16,共32Mbyte


首先了解下SDRAM的寻址原理。


SDRAM内部是一个存储阵列。可以把它想象成一个表格。和表格的检索原理一样,先指定行,再指定列,就可以准确找到所需要的存储单元。这个表格称为逻辑BANK。目前的SDRAM基本都是4BANK。寻址的流程就是先指定BANK地址,再指定行地址,最后指定列地址。这就是SDRAM的寻址原理。存储阵列示意图如下:


85c727ce-f014-4436-be45-697a51fce3a7.gif


 


查看HY57V561620F的资料,这个SDRAM


13根行地址线   RA0-RA12


9根列地址线    CA0-CA8


2BANK选择线 BA0-BA1


 


SDRAM的地址引脚是复用的,在读写SDRAM存储单元时,操作过程是将读写的地址分两次输入到芯片中,每一次都由同一组地址线输入。两次送到芯片上去的地址分别称为行地址和列地址。它们被锁存到芯片内部的行地址锁存器和列地址锁存器。/RAS是行地址锁存信号,该信号将行地址锁存在芯片内部的行地址锁存器中;/CAS是列地址锁存信号,该信号将列地址锁存在芯片内部的列地址锁存器中。


 


地址连线如下图:


点击看大图


点击看大图


SDRAMA0S3C2440ADDR2,很多初学者都对这里又疑问。A0为什么不接ADDR0


要理解这种接法,首先要清楚CPU的寻址空间中,字节(8位)是表示存储容量的唯一单位。


2HY57V561620F扩展成32SDRAM,可以认为每个存储单元是4个字节。因此当它的地址线A1:A0=01时,处理器上对应的地址线应为ADDR3:ADDR2=01(因为CPU的寻址空间是以Byte为单位的)。所以SDRAMA0引脚接到了S3C2440ADDR2地址线上。


同理,如果用1HY57V561620F,数据线是16位,因为一个存储单元是2个字节,这时SDRAMA0要接到S3C2440ADDR1上。


 


也就是说SDRAMA0S3C2440的哪一根地址线是根据整个SDRAM的数据位宽来决定的。


 


上面的接线图上,BA0,BA1ADDR24,ADDR25,为什么用这两根地址线呢?


BA0~BA1代表了SDRAM的最高地址位。因为CPU的寻址空间是以字节(Byte)为单位的,本系统SDRAM容量为64MByte,那就需要A25~A064M=2^26)地址线来寻址,所以BA1~BA0地址线应该接到2440ADDR25~ADDR24引脚上。


13根行地址线+9根列地址线 = 22根。另外HY57V561620F一个存储单元是2个字节,相当于有了23根地址线。BA0,BA1是最高地址位,所以应该接在ADDR24,ADDR25上。


 


也就是说SDRAMBA0,BA1S3C2440的哪几根地址线是根据整个SDRAM的容量来决定的。


 

文章评论1条评论)

登录后参与讨论

用户212254 2010-3-17 09:49

受益匪浅
相关推荐阅读
用户1035191 2012-05-18 16:36
根据年月日计算星期
在门禁系统中要用到星期,但是在设置时间的时候,一般只设置年月日时分秒,不会去设置星期,那么如何根据年月日来得到星期?有一个公式: (年+年/4+年/400-年/100-年基数+月基数+日)%7...
用户1035191 2012-05-09 12:40
串口扩展芯片VK3214使用总结
最近一个项目需要用到3个串口,但是用的MCU只有2个串口,选择多串口的单片机成本太高,最后打算用串口扩展芯片VK3214扩展2个串口。 VK3214可以用单片机的一个串口扩展出4个子串口,每个...
用户1035191 2011-10-12 17:54
STM32串口发送时序图分析
下面是STM32使用手册上的串口发送时序图:1、 使能串口发送TE,此时USART_DR为空,此时应查询TXE是否置1,TXE置1,TX脚先发送一个空闲帧,把F1帧写入USART_DR,TXE被清零。...
用户1035191 2011-09-30 14:52
STM32的RTC实现日历功能程序
STM32的RTC只有一个32位的计数器用来计时,没有寄存器来存年月日时分秒等。通过设置可以让这个计数器1秒加1,从0-0XFFFFFFFF大概可以计时136年。程序要设置一个时间起点表示0,一般设...
用户1035191 2011-09-14 17:30
C语言计算时间差
以前曾写过一篇文章C51计算时间差,采用的算法是网上查到的,虽然测试没有问题,但是感觉那种算法不便于理解。最近重新考虑了一种算法。 用2个BCD码数组存储进场时间和出场时间: unsigned ch...
用户1035191 2011-08-24 17:06
C51扩展外部RAM释放P2口
51单片机经常要使用一些外部器件,有些器件内部有寄存器,一般都把这些寄存器当做外部RAM读写。以IC卡读卡芯片RC500为例,这个芯片有D0-D7共8个数据线,接在51的P0口,D0-D7既做>...
EE直播间
更多
我要评论
1
4
关闭 站长推荐上一条 /7 下一条