SDRAM的调试总结
1 概述
实验平台: JZ2440
CPU: S3C2440
SDRAM型号: EM63A165TS-6G
2 SDRAM的一些基本概念
2.1 引脚分配
2.2 引脚描述
A0-A12 :地址线
DQ0-DQ15 :数据线
LDQM、UDQM :数据屏蔽控制
BA0-BA1 :L-BANK地址线
CLK :时钟
CKE :时钟使能
CS# :片选
WE# :写使能
CAS# :列地址选通脉冲
RAS# :行地址选通脉冲
VSS、VSSQ :地
VDD、VDDQ :电源
2.3 内部框图
2.4 基本概念
初始化完成之后,想要对一个L-BANK的阵列进行寻址,需要经过片选、选择L-BANK、激活对应的行,选择对应的列并发送读写命令,完成对应操作。
2.4.1 行(Row)有效
确定要操作的行,使之处于激活(Active)状态;行有效操作与片选、L-BANK地址同时进行。
2.4.2 列(Column)寻址
行有效后,经过一定的时间间隔后[Trcd(RAS to CAS Delay)],进行列寻址操作,确定要操作的存储单元;列寻址与读写命令同时进行。
2.4.3 数据输出(读)
从CAS与读取命令发出,到第一笔数据输出到数据总线上,有一段时间间隔,这个时间间隔成为[Tcl(CAS Latency,CAS潜伏期)];从数据总线上有数据输出之前的一个上升沿开始,数据已被触发,经过一定的驱动时间,最终被传向数据总线上,这段驱动时间,被称为[Tac(Access Time from CLK,时钟出发后的访问时间)],每个数据读取时,都有Tac,包括连续读取,只是在第一个数据传输的同时,就开始了第二个数据的Tac。
2.4.4 数据输入(写)
数据写入也是在Trcd之后进行,数据与CAS同时发送,即写入延时为0,但是为了保证数据的写入可靠,都会留出足够的写入、校正时间[Twr(Write Recovery Time)],这个操作也被称作写回(Write Back);注意,预充电与写操作不能同时进行,并且在写操作完成后,等待Twr的时间间隔,才能执行预充电操作。
2.4.5 突发(Burst)
突发是指同一行中,相邻的存储单元连续进行数据传输的技术,连续传输所涉及的存储单元(列)的量,就是突发长度(Burst Length, BL);只要起始列地址和突发长度,内存就会依次地自动对后面相应数量的存储单元进行读写操作,而不需要控制器连续地提供列地址。
Full Page突发传输:L-BANK里,对某一行中所有存储单元按顺序连续传输。
顺序传输:从指定起始单元开始,按顺序传输。
交错传输:按照指定规则,进行数据传输。
2.4.6 预充电(Precharge)
L-BANK关闭现有工作行,准备打开新行的操作,就是预充电操作。实际上,预充电就是对工作行中所有存储单元进行数据重写,并对行地址进行复位,以准备新行的工作。地址线A10控制着读写之后,是否进行自动预充电操作。
在发出预充电命令之后,要经过一定时间才能发送行有效命令打开新的工作行,这段时间为[Trp(Precharge command period),预充电有效周期]。
2.4.7 刷新(Refresh)
刷新的意义在于保存数据。在刷新过程中,所有L-BANK都停止工作,所有的工作命令只能等待而无法执行,刷新完成后,才会重新进入工作状态。
刷新分为两种:自动刷新(Auto Refresh, AR)和自刷新(Self Refresh, SR)。
自动刷新:在正常工作状态下,芯片周而复始地自动刷新,以保存临时存储地数据。
自刷新:在休眠状态下(在发出AR命令后,使CKE置于无效状态,重新使能CKE可退出),芯片内部自动刷新,以保证数据不丢失。
2.4.8 刷新与预充电地区别
预充电是对一个或所有L-BANK中的一个工作行进行重写操作,是不定期的;刷新是对所有行进行重写操作,以保留那些久久未被重写的存储单元的数据。
2.4.9 数据掩码
屏蔽不需要的数据。在读取数据时,DQM发出,两个时钟周期后生效;在数据写入时,DQM立即生效。
2.4.10 几种读取时可能出现的情形
a、页命中(PH, Page Hit)
要寻址的行与L-BANK是空闲的,直接发送行有效,再发送列寻址,即可完成读写操作。
b、页快速命中(PFH, Page Fast Hit)
要寻址的行正好是前一个操作的工作行,即寻址的行已处于选通有效状态,可以直接发送列寻址,即可完成读写操作。
c、页错失(PM, Page Miss)
要寻址的行所在的L-BANK中已经有一个激活的工作行(寻址冲突),这时必须先对激活的工作行进行预充电操作,关闭激活的行,再对新行发送行有效,页寻址,才能完成读写操作。
交错式内存控制:一个L-BANK进行工作时,对下一个要工作的L-BANK进行预充电操作。
3 EM63A165TS
3.1 时序
模式寄存器位映射关系
3.4 AC特性
4 S3C2440芯片配置说明
4.1 原理图说明
这是一种两个16位位宽的SDRAM芯片拼接成一个32位位宽的模组接法。
注意,A0连接CPU的哪根地址线,是由模组的数据位宽决定的。由于CPU是按字节寻址的,而SDRAM模组是按字寻址的,所以应该进行地址转换。
4.2 寄存器设置(clocks = 10ns)
4.2.1 BWSCON
说明
[27]
0:把对应的引脚映射为写字节使能,该位的作用是,对写入数据,屏蔽不需要写入的字节,实现单个字节写操作。
1:把对应的引脚映射为字节使能,该位的作用是,对读入数据,屏蔽不需要读取的字节,实现单个字节读操作。
[26]
如果CPU速度远远大于SDRAM速度,当CPU向SDRAM发送读取命令时,SDRAM未能及时准备好数据,可以使能该位,设置等待,保证能读到数据。
4.2.2 BANKCON6
4.2.3 REFRESH
4.2.4 BANKSIZE
4.2.5 MRSRB6
5 参考文档
《S3C2440用户手册》
《EM63A165TS Datasheet》
《高手进阶——高级内存技术指南》
《嵌入式Linux开发完全手册》