(嵌入式)关于arm中的存储控制器(二)

关于存储控制器(memory controller)的寄存器使用:
接上一篇继续:
S3C2440芯片有Bank0~Bank7,8个块。存储控制器有13个寄存器,Bank0~Bank5只用BWSCON(BUS WIDTH & WAIT CONTROL REGISTER)和BANKCONx(BANK CONTROL REGISTER x为0~5)两个寄存器。 
Bank6和Bank7外接SDRAM时,除上面两种寄存器,还需要用到REFRESH、BANKSIZE、MRSRB6、MRSRB7等四个寄存器。
13个寄存器如下:
BWSCON   (Bus Width & Wait Control Register)
BANKCONx (Bank Control Register  x=0~7)
REFRESH  (Refresh Control Register刷新控制寄存器)
BANKSIZE (Banksize Register)

MRSRB6/7 (SDRAM Mode Register Set Register) 


1.位宽和等待控制寄存器


BWSCON寄存器中每4位控制一个BANK,从高往低一次类推BANK7~BANK0。

STx:启动/禁止SDRAM的数据掩码引脚。对于SDRAM此位为0,对于SRAM此位为1。

WSx:是否使用存储器的WAIT信号,通常都设为0。

DWx:用来设置相应的BANK位宽。

2.BANK控制寄存器(BAN0~BANK5)。

                          BANK CONTROL REGISTER (BANKCONN: NGCS0-NGCS5)


这几个寄存器用来控制BANK0~BANK5外接设备的访问时序。设置的时候具体需要参考外接芯片的手册中时序图。针对我们这个开发板我们使用0x0700即可。

3.BANK控制寄存器(BAN6、BANK7)。



在8个BANK中只有BANK6和BANK7可以外接SRAM或SDRAM,因此这俩个BANK控制寄存器和上面的不太相同。

MT:确定这个BANK外接的设备是什么芯片,由于我们外接SDRAM,所以设置为0b11。

Trcd:推荐值0b01。

SCAN:列地址位数,我们这里是设置为9位,即0b01。

其它的和BANK0~BANK5一样设置。

4.刷新控制寄存器(REFRESH CONTROL REGISTER )。


REFEN:使能/禁止 SDRAM刷新功能

TREFMD:SDRAM刷新模式,我们这里使用0b0。Self Refresh(一般在系统休眠时使用)。

Trp:设置当SDRAM中RAS(列地址信号)需要重新寻址时,要隔多久时间才能开始下次的寻址动作。理论上越短越好,我们这里设置为0b00。

Tsrc:SDRAM半行周期时间,我们这里设置0b11。

Refresh Counter:SDRAM刷新的计数值。HCLK即为SDRAM时钟频率

刷新周期=(2^11-刷新计数值+1)/HCLK  所以 刷新计数值=2^11+1-刷新周期*HCLK

我们这里通过查阅SDRAM芯片手册知道 Refresh period=64ms/8192=7.8125us

设HCLK=12MHz,所以refresh_count=2^11+1-12*7.8125=1955。

综上:我们这里的这个寄存器设置为0x008C0000+1955(0x7A3)=0x008C07A3。

5.BANKSIZE寄存器


BURST_EN: 使能/禁止 ARM核的突发传输。

SCKE_EN: 禁止/使能 通过SCKE信号让SDRAM进入省电模式。

SCLK_EN: 0: 一直使能SCLK信号 1:只有当使用SDRAM时才使能SCLK信号(推荐)

BK76MAP:设置BANK6/7的大小。

BANK0~BANK5的地址空间大小都是固定不变的128MB,而BANK6/7的大小是可变的,以保持这两个空间的大小连续,即BANK7的起始地址会随它们的大小变化。我们用的SDRAM是64MB,所以设置为0b001。

6.SDRAM模式设置寄存器(MRSBx)


通过上面我们可以看到能修改的只有一个CL:CAS(列地址信号)延迟,我们这里设置为0x30。

》》》》》》》》 至此,关于本实验中所有的存储控制器相关的寄存器学习完毕,那么接下来。就是最后一步了。写代码《《《《《《《《

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值