s3c2440存储器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

S3c2440的存储控制器
1、什么是存储控制器
存储控制器是创建和控制其他存储设备的一种设备。

S3C2440中存储控制器的起始地址为0x48000000结束地址为0x48000030。

通过配置存储控制器提供的13个寄存器的具体数值来达到访问外围设备的目的。

2、如何得到外围设备的访问地址
在说明得到外围设备地址之前,先说明一下什么是片选信号。

读过微机原理的同志应该很清楚了。

在S3C2440中分为nGCS0~nGCS7,共8个片选信号。

分别对应了BANK0~BANK7,当需要访问外围设备的空间时(即访问BANKx 时),nGCSx 引脚输出低电平信号,这样选择相对应的BANKx外围设备来访问。

(注:nGCS0~nGCS7在S3C2440手册中可以查找到相应的地址分配表)
BANK访问地址=BANK起始地址+地址线地址。

3、存储控制器中寄存器的使用
3.1、存储控制器提供的13个寄存器
BWSCON,BANKCONx(x=0~7),REFRESH,BANKSIZE,
MRSRBx(x=6~7),共13个寄存器。

在这些寄存器的配置中,当配置BANK0~BANK5的时候,只需要配置BWSCON和BANKCONx(x=0~5)即可。

由于BANK6和BANK7嘤糜谕饨覵DRAM,所以配置的时候除配置BWSCON和BANKCONx(x=6~7)外,还需要配置REFRESH,BANKSIZE,MRSRB6和MRSRB7等4个寄存器。

BWSCON(R/W B us W idth & Wait S tatus Con trol,位宽和等待寄存器)
BWSCON共32位,BWSCON的高4位对应了外设的BANK7,然而BWSCON是每4位对应一个BANK,所以依次类推可以得到其余BANK6~BANK0的对应位数。

STx(x= 0~7):启动/禁止SDRAM数据掩码引脚。

对于SDRAM此位为0,对于SRAM此位为1。

一般为0。

WSx(x= 0~7):是否使用存储器的WAIT信号。

通常设为0。

/*0 = WAIT disable*/
DWx(x= 0~7):用2位来设置对应BANK位宽(数据总线宽度),00=8-bit;01=16-bit;10=32-bit;11=reserved
其中,比较特殊的BANK0,它没有ST0和WS0,且DW0[2:1]为只读,由硬件电路跳线决定01=16-bit;10=32-bit。

BANKCONx(x= 0~5):用来控制外接设备的访问时序,默认设置0X0700可以满足使用需求。

BANKCONx(x= 6~7):只有BANK6和BANK7可以用来外接SRAM或SDRAM,所以在配置BANK6~BANK7会有所不同。

MT[16:15]位:用来标识外接的设备是ROM/SRAM,还是SDRAM。

/*00 = ROM or SRAM;01 = Reserved;10 = Reserved;11 = Sync.DRAM */
当MT=0b00时(即外接ROM):此时设置与BANKCONx(x= 0~5)并无多大差异。

当MT=0b11时(即外接SDRAM):
Trcd[3:2]:T ime of R AS to C AS d elay(内存行地址传输到列地址的延迟时间)
/*00 = 2 clocks;01 = 3 clocks;10 = 4 clocks*/
SCAN[1:0]:表示SDRAM列的地址,可根据具体芯片情况设置/*00 = 8-bit;01 = 9-bit;10= 10-bit*/
REFRESH:刷新控制寄存器。

REFEN[23]:使能控制SDRAM刷新功能。

/*0 = Disable;1 = Enable (self or CBR/auto refresh)*/
TREFMD[22]:SDRAM刷新模式。

/*0 = CBR/Auto Refresh;1 = Self Refresh (休眠模式)*/
Trp[21:20]:T ime of SDRAM R AS p re-charge(RAS预充电时间)。

/*00 = 2 clocks;01 = 3 clocks;10 = 4 clocks;11 = Not support*/
Tsrc[19:18]:T ime of SDRAM S emi R ow c ycle(半行周期时间)。

/*00 = 4 clocks;01 = 5 clocks;10 = 6 clocks;11 = 7 clocks*/ 注:Reserved[17:11]:Not used.
Refresh Counter[10:0]:SDRAM refresh count value(刷新计数值)。

BANKSIZE寄存器:
BURST_EN[7]:ARM core burst operation enable(ARM内核心突发操作使能)。

/*0 = Disable burst operation;1 = Enable burst operation*/ 注:Reserved[6]:Not used.
SCKE_EN[5]:SDRAM power down mode enable control by SCKE。

(SCKE power down模式使能)/*0 = SDRAM power down mode disable;1 = SDRAM power down mode enable*/
SCLK_EN[4]:SCLK is enabled only during SDRAM access cycle for reducing power consumption. When SDRAM is not accessed SCLK becomes 'L' level(低电平). /*0 = SCLK is always active. 1 = SCLK is active only during the access (recommended).*/
注:Reserved[3]:Not used.
BK76MAP[2:0]:设置BANK6~BANK7的大小。

/* 010 = 128MB/128MB;001 = 64MB/64MB;000 = 32M/32M;111 = 16M/16M;110 = 8M/8M;101 = 4M/4M;100 =
2M/2M */
MRSRBx(x= 6~7):SDRAM模式设置寄存器。

能做修改的只有CL[6:4]:代表SDRAM时序的一些参数。

/*000 = 1 clock;010 = 2 clocks;011=3 clocks;Others: reserved*/。

相关文档
最新文档