文章目录
在学习SDRAM之前,最好看一遍这篇经典的关于SDRAM工作原理的介绍:
高手进阶,终极内存技术指南——完整.pdf
链接:https://pan.baidu.com/s/1XPwdu-Gcd7j8YLHbOH53yg
提取码:judz
然后再去配置S3C2440上的内存控制器就会觉得很简单。
S3C2440的内存地址映射
地址 | 非NAND启用 | NAND启动 |
---|---|---|
0X40000000 | Boot internal SRAM (4KB) | ------ |
0X38000000 | SROM/SDRAM(nGCS7) | SROM/SDRAM(nGCS7) |
0X30000000 | SROM/SDRAM(nGCS6) | SROM/SDRAM(nGCS6) |
0X28000000 | SROM(nGCS5) | SROM(nGCS5) |
0X20000000 | SROM(nGCS4) | SROM(nGCS4 |
0X18000000 | SROM(nGCS3) | SROM(nGCS3 |
0X10000000 | SROM(nGCS2) | SROM(nGCS2) |
0X08000000 | SROM(nGCS1) | SROM(nGCS1) |
0X00000000 | SROM(nGCS0) | Boot internal SRAM (4KB) |
启动方式 | OM[1:0]=01,10 | OM[1:0]=00 |
JZ2440上的SDRAM大小为64M,挂载在BANK6上,片选引脚为nGCS6。
内控控制器的配置
BWSCON
BWSCON的全称是BUS WIDTH & WAIT CONTROL REGISTER,用于内存带宽和等待信号的配置。用到的SDMRAM在BANK6上,因此只需配置ST6、WS6、DW6三个域。
ST6:当使用SRAM时才考虑这个域的配置,使用SDRAM时按默认配置就好。
WS6:等待信号的使能,由于现在的内存速度足够快,在读数据时不需要内存控制器等待,选择0。
DW6:BANK6的带宽,选择32位。
BANK7没有用到,可以配置为和BANK6一样,也可以不配置。
最后BWSCON=0X22000000或0X02000000
BANKCON0~BANKCON5
不需要配置
BANKCON6
MT:BANK6的存储类型,用的是SDRAM,选择11B
配置MT=11B后就只需要关注BANKCON6的低4位了。
Trcd:这个域的配置表示的是发送行有效命令到列有效命令之间的时间间隔。
在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟),可以理解为行选通周期,这应该是根据芯片存储阵列电子元件响应时间(从一种状态到另一种状态变化的过程)所制定的延迟。