微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > SDRAM工作原理及S3C2410 SDRAM控制器配置方法

SDRAM工作原理及S3C2410 SDRAM控制器配置方法

时间:11-09 来源:互联网 点击:

初始化状态

ST6

27

这个位决定SRAM在Bank6上是否采用UB/LB
0:不采用UB/LB(引脚对应nWBE[3:0 )
1:采用UB/LB(引脚对应 nBE[3:0])

0

WS6

26

这个位决定Bank6的WAIT状态
0:WAIT禁止
1:WAIT使能

0

DW6

25~24

这2位决定Bank6的数据总线宽度
00:8位 01:16位 10:32位

0

2、BANKCONn寄存器的设置

S3C2410X有8个BANKCONn寄存器,分别对应着Bank0~Bank7。由于Bank6~Bank7可以作为FP/EDO/SDRAM等类型存储器的映射空间,因此与其他bank的相应寄存器有所不同,其中MT位定义了存储器的类型。BANKCONn寄存器在Bank6和Bank7上的位定义如表4-2所示。

表4-2 BANKCONn寄存器在Bank6和Bank7上的位定义

BANKCONn

描述

起始状态

MT

16~15

这2位决定了Bank6和Bank7的存储器类型
00:ROM或SRAM 01:FP DRAM
10:EDO DRAM 11:SDRAM

11

MT的取值又定义该寄存器余下几位的作用。当MT=11(即SDRAM型存储器)时,BANKCONn寄存器余下的几位定义如表4-3所示。

表4-3 BANKCONn寄存器在MT=11时的相关位定义

Trcd是从行使能到列使能的延迟,根据S3C2410X的HCLK频率(100M)及HY57V561620T-H的特性(见下图),此项取01,即3CLKS。SCAN为列地址线数量,此项根据HY57V561620特性取01,即9位(A0~A8)。

3、REFRESH寄存器

REFRESH寄存器是DRAM/SDRAM的刷新控制器。位定义如表4-4所示。

表4-4 REFRESH寄存器位定义

4.BANKSIZE寄存器

表4-5 BANKSIZE寄存器定义

BANKSIZE

描述

初始状态

BURST_EN

[7]

ARM 内核猝发操作使能
0 =禁止猝发操作
1 =使能猝发操作

0

保留

[6]

不使用

0

SCKE_EN

[5]

SCKE 使能控制
0 = SDRAM SCKE禁止
1 = SDRAM SCKE使能

0

SCLK_EN

[4]

只有在SDRAM访问周期期间,SCLK才使能,这样
做是可以减少功耗。当SDRAM不被访问时,SCLK
变成低电平
0 = SCLK总是激活
1 = SCLK只有在访问期间(推荐的)激活

0

保留

[3]

未用

0

BK76MAP

[2:0]

BANK6/7的存储空间分布
010 = 128MB/128MB 001 = 64MB/64MB
000 = 32M/32M 111 = 16M/16M
110 = 8M/8M 101 = 4M/4M
100 = 2M/2M

010

初始化时,BURST_EN可以取0或1,为了提高效率,最好设置为1。SCKE_EN设置为1。SCLK_EN设置为1。BK76MAP设置为2。

5、MRSR寄存器

MRSR寄存器有2个,分别对应MRSRB6和MRSRB7,对应着Bank6和Bank7。见表4-6。

表4-6 MRSRn寄存器定义

此寄存器S3C2410只允许CL可以设置,参照HY57V561620T-H手册,取011,即3CLKs。

猝发长度的具体值在程序中没有给出,根据后面触发时序猜测应该是8,HY57V561620T支持1、2、4、8、page猝发长度。

参照前面的HY57V561620命令表,写Mode寄存器用的是Mode register命令。其中的OP CODE参照下图:

注意:当代码在SDRAM中运行时,绝不能够重新配置MRSR寄存器。

五、SDRAM的控制时序分析

下面列出SDRAM的状态机及几种SDARM控制命令的时序。大家掌握了以后可以试着分析其它的命令时序。

1、SDRAM的状态机

SDRAM的完整状态机由多个状态构成,且状态转移是非随机的(如图5-1所示)。

正是如此众多的状态及其复杂的转换关系,导致SDRAM的控制较为复杂。通常FPGA开发人员在设计SDRAM控制器IP时需要详细了解这些状态机的过程。而一般开发人员以了解为主。

图5-1 SDRAM状态机

下面将结合上图及SDRAM的指令来分析SDRAM的控制时序

2、SDRAM single模式读时序

SDRAM初始化主要是由设置S3C2410 SDRAM控制器的模式寄存器(MRSR)完成的。主要设定了SDRAM的burst长度、CAS延时时间、突发类型等。然后就可以进行读写操作了。

下图是S3C2410以single方式读SDRAM时的时序。

对照HY57V5620的命令表,列出single read 命令实现过程。

CLK

SCKE

A10/AP

nGCSx

nSRAS

nSCAS

nWE

命令

备注

1

1

X

1

1

1

1

空操作(NOP)

2

1

0

0

0

1

0

预充电选定bank(PRE)

Trp=2

3

1

X

1

1

1

1

空操作

4

1

X

0

0

1

1

Bank激活命令(ACT)

Trcd=2

5

1

X

1

1

1

1

空操作

6

1

0

0

1

0

1

读操作(READ)

Tcl=3

7

1

X

1

1

1

1

空操作

8

1

X

1

1

1

1

空操作

9

1

X

1

1

1

1

空操作

数据有效

3、SDRAM burst模式读时序

对照HY57V5620的命令表,列出burst read 命令实现过程。

CLK

SCKE

A10/AP

nGCSx

nSRAS

nSCAS

nWE

命令

备注

1

1

X

1

1

1

1

空操作(NOP)

2

1

0

0

0

1

0

预充电选定bank(PRE)

Trp=2

3

1

X

1

1

1

1

空操作

4

1

X

0

0

1

1

Bank激活命令(ACT)

Trcd=2

5

1

X

1

1

1

1

空操作

6

1

0

0

1

0

1

读操作(READ)

Tcl=2

7

1

0

0

1

0

1

读操作(READ)

8~13

1

0

0

1

0

1

读操作(READ)

数据有效

14~15

1

X

1

1

1

1

空操作

数据有效

4、SDRAM Self Refresh时序

SDRAM 的Self Refresh功能在电源电源管理时经常使用,如:在主控器进入sleep状态时,会先让SDRAM工作在Self Refresh状态。下图为S3C2410发出Self Refresh命令时的时序图。

对照HY57V5620的命令表,列出进入Self Refresh的过程。

CLK

SCKE

A10/AP

nGCSx

nSRAS

nSCAS

nWE

命令

备注

1

1

X

1

1

1

1

空操作

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top