ARM与SDRAM芯片的联接
S3C2440通常外接32位64MBytes的SDRAM,采用两片16位256Mbits的SDRAM芯片(如HY57V561620),SDRAM芯片通过地址总线、数据总线、若干控制线与S3C2440芯片相连。
S3C2440的地址总线:27根地址线----ADDR[26:0]。
S3C2440的数据总线:32根数据线----DATA[31:0]。
S3C2440的SDRAM控制线:
1、SDRAM片选----nGCS6(对应ARM的地址0x3000 0000);nGCS7(对应ARM的地址0x3800 0000),每一根片选可联接128MBytes内存。现在扩展64MBytes内存,只需一根片选线,通常为nGCS6。
2、nWE----写使能。
3、nSRAS----SDRAM行地址开关。
4、nSCAS----SDRAM列地址开关。
5、写字节使能四根线----nWBE[3:0]。4个字节共32位,为一个数据单元。
6、SDRAM时钟两根线----SCLK[1:0]。两根线分别联接两个SDRAM芯片。
7、SDRAM时钟使能----SCKE。
S3C2440与两片HY57V561620联接时,用到的地址线是15根:13根行列复用地址线,两根Bank线。
S3C2440 HY57V561620
ADDR2----------------------------A0
ADDR3----------------------------A1
-----------------------------------------
ADDR14---------------------------A12
ADDR24-------------------------- BA0 Bank0
ADDR25---------------------------BA1 Bank1
Bank相当于块,一个HY57V561620内有四个内存块,每块16*4Mbits内存单元。
每地址对应16bits,共有4M (2的22次方)地址范围,因此应该有22位地址线,寻址时22位的地址分两次(行地址和列地址)输入SDRAM芯片,nSRAS有效时,ADDR[2:14] 输入的是行地址,nSCAS有效时,ADDR[2:14]输入的是列地址。所以寻址一个内存单元至少需要两个时钟时间,第一个时钟行地址,第二个时钟列地址,然后才能找到对应内存单元。
地址线从ADDR2开始使用,而不是ADDR0开始使用,因为一个地址单元对应32位数据,也就是四个字节,ADDR[1:0]是最低2位地址,对应四个字节,在32位数据(四个字节)包含中,所以不需专门联接ADDR[1:0]。同时用nWBE[3:0]四根线区分一个32位内存单元的四个字节。
S3C2440的数据线32根,其中DATA[15:0]这16根联接第一块HY57V561620芯片,DATA[31:16]这16根联接第二块HY56V561620芯片。
其他控制线很好理解,就不用多说了。
学习Linux的朋友们可以找到ARM开发板的电路原理图,看看ARM芯片怎么与SDRAM芯片联接,知道原理后就很好理解。这也是为深入学习Linux打下基础。
ARMSDRAM芯片联 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)