再上一篇:5.5 系统存贮器接口
上一篇:5.5.2 存贮器接口功能
主页
下一篇:5.5.4 同步静态存贮器接口
再下一篇:5.5.5 异步静态存贮器
文章列表

5.5.3 SDRAM 接口方法

嵌入式系统(修订本)——Intel XScale 结构与开发 陈章龙 著

SDRAM 的映象和控制信号见5.5.7 节。下面介绍SDRAM 的寄存器及其设置方法。

一、MDCNFG 寄存器

MDCNFG 可读/写,用于设置SDRAM。


位31~29、位15~13:保留。
位 28、12:DSA111-2,0——2/3 和 0/1 对使用 SA1111 地址多路方式。它置位将不使用

MDCNFG 的DADDRI0 的地址位。

位27、11:DLATCH2,0——2/3 和0/1 对的SDRAM 返回数据的锁存机制。

0=使用MEMCLK 的固定延迟锁存返回数据。

1=使用返回时钟锁存返回数据。

位26、10:DADDR2,0——2/3 和0/1 对使用第二寻址。
位25、24,位9、8:DTC21,0 和DTC01,0——SDRAM2/3 对和0/1 对的定时值。

00=tRP=2clk,cl=2,tRCD=1clk,tRAS=3clk,tRC=4clk

01= tRP=2clk,cl=2,tRCD=2clk,tRAS=5clk,tRC=8clk

10= tRP=3clk,cl=3,tRCD=3clk,tRAS=7clk,tRC=10clk

11= tRP=3clk,cl=3,tRCD=3clk,tRAS=7clk,tRC=11clk

位23、7:DNB2 和DNB1——2/3 对和0/1 对的区数。

0=2 个内部SDRAM 区

1=4 个内部SDRAM 区

位22、21,位6、5:DRAC21,0 和DRAC01,0——2/3 对和0/1 对的行地址位数。

00=11 位行地址

01=12 位行地址

10=13 位行地址

11=保留

位20、19,位4、3:DCAC21,0 和DCAC01,0——2/3 对和0/1 对的列地址位数。

00=8 位列地址

01=9 位列地址

10=10 位列地址

11=11 位列地址。

位18、位2:DWID2、DWID0——2/3 和0/1 对的SDRAM 数据总线宽度

0=32 位

1=16 位

位17、16,位1、0:DE3,DE2,DE1,DE0——块3~0 的SDRAM 允许。

0=禁止SDRAM

1=允许SDRAM

二、MDMRS 寄存器

MDMRS 寄存器用于向 SDRAM 发出方式寄存器集(MRS)命令。在 MRS 命令期间写 入该寄存器的值直接置于地址线MA24~17 上,MA16~0 值固定或取决于MDCNFG。


位31、15:保留
位30~27,位14~7:MDMFS2,MDMFS0——写至SDRAM 的块对2,0 的MFS 值。
位22~20,位6~4:MDCL2,MDCL0——SDRAM 块对2、0 的CAS 延时,由MDCNFG
的DTC2,DTC0 所决定。
位19、位3:MDADD2,MDADD0——SDRAM 块对2、0 的成批类型,固定为顺序寻址。 位18~16、位2~0:MDBL2,MDBL0——SDRAM 块对2、0 的成批长度,固定为4。
三、MDREFR 寄存器

MDREFR 寄存器可读/写,包含SDRAM 的刷新控制位


位31~26:保留
位25~23:K2FRM,K1FRM,K0FRM——SDRAM 自由运行控制

0=SDCLKi 非自由运行

1=SDCLKi 自由运行(不理睬MDREFER 的APD 或KiRUN 位) 位22:SLFRSH——SDRAM 自我刷新控制/状态

0=禁止自我刷新

1=允许自我刷新

SLFRSH 可由软件置位,强制产生自我刷新命令。不需要清 0。EiPIN 在 SDRAM 进入 自我刷新后和在退出自我刷新前(清USLFRSH),相应的时钟运行位(K1RUN 和/或K2RUN) 必须置位

位21:保留

位 20:APD——SDRAM/同步静态存贮器自动掉电允许。如 APD=1,除非 KxFREE 置 位。在不访问相应的SDRAM 块时,自动禁止时钟允许和时钟脚。如不访问任何SDRAM 块,SDRAM 芯片置为掉电方式,关闭时钟和时钟允许脚。如不使用同步静态存贮器, 关闭相应的时钟和时钟允许,置存贮器芯片为掉电方式。

位 19 、17 、14 :K2DB2,K1DB2,K0DB2 ——同步静态存贮器时钟脚 2 、1 、0
(SDCLK2,SDCLK1,SDCLK0)除以2 控制/状态。

0=SDCLKi 以存贮器时钟频率运行

1=SDCLKI 以存贮器时钟频率的一半运行。

位 18 、16 、13 :K2RUN,K1RUN,K0RUN ——同步静态存贮器时钟脚 2 、1 、0
(SDCLK2,SDCLK1,SDCLK0)控制/状态。

0=禁止SDCLKi

1=允许SDCLKi

在 BOOT_SEC 信号设置为同步存贮器类型时,从硬件和睡眠复位退出时 置位本位。KiRUN 可由程序清0。
位15、12:E1PIN,E0PIN——同步静态存贮器时钟允许脚1、0(SDCKE1,SDCKE0)电 平控制/状态。

0=禁止SDCKEi

1=允许SDCKEi

在 BOOT_SEL 信号设置为同步存贮器类型时,从硬件和睡眠复位退出时 置位本位。

EiPIN 可由程序清0,产生掉电退出命令(如KiRUN=1)。 位11~0:DRI——所有SDRAM 刷新间隔。

在每一个自我刷新(CBR)周期,刷新每一个SDRAM 块的一行。间隔时 间适用于所有四个块。间隔值为DRI 加上31 再乘以32。改写DRI 的值为: DRI=(存贮器周期数-31)/32=每行刷新时间*存贮器时钟频率/32 它必须小于访问的SDRAM 的最大tRAS 值。清0 时,不刷新SDRAM。如 禁止所有四个SDRAM 块,禁止刷新计数器,则仅在向禁止的SDRAM 块 发出单个传送请求时才执行刷新。在改变时钟频率时,即使它的值不变, 也必须重新写入本寄存器。
四、SDRAM 存贮器选项
动态存贮器接口支持最多四个块,组织成两对。一对中的每块必须有相同的SDRAM 大 小、设置、定时和数据总线宽度。初始化软件必须设置如下存贮器接口设置寄存器:

z SDRAM 定时。

z 数据总线宽度。

z 行、列数和块地址位

z 寻址机制。

z 数据锁存机制。

表5-16 给出了支持的部分SDRAM 设置。
表 5-16 SDRAM 存贮器大小选择

SDRAM

配置 (words x bits)

芯片

大小

数目 芯片/ 分区

Bank Bits x Row Bits x Column Bits

分区大小(M 字节/分区)

SDRAM

配置 (words x bits)

芯片

大小

16-Bit

总线

32-Bit

总线

Bank Bits x Row Bits x Column Bits

16-Bit

总线

32-Bit

总线

1M x 16

16 Mbit

1

2

1 x 11 x 8

2 Mbyte

4 Mbyte

2 M x 8

16 Mbit

2

4

1 x 11 x 9

4 Mbyte

8 Mbyte

2 M x 32

64 Mbit

N/A

1

2 x 11 x 8

N/A

8 Mbyte

4 M x 16

64 Mbit

1

2

1 x 13 x 9

2 x 12 x 9

16 Mbyte

32 Mbyte

8 M x 16

128 Mbit

1

2

2 x 12 x 9

16 Mbyte

32 Mbyte

16 M x 8

128 Mbit

2

4

2 x 12 x 10

32 Mbyte

64 Mbyte

16 M x 16

256 Mbit

1

2

2 x 13 x 9

32 Mbyte

64 Mbyte

32 M x 8

256 Mbit

2

4

2 x 13 x 10

64 Mbyte

128 Mbyte

–超过分区 大小

五、SDRAM 命令
应用处理机可用以下标准接口命令的子集访问SDRAM。

z 方式寄存器集(MRS)

z 块激活(ACT)

z 读(READ)

z 写(WRITE)

z 所有块预充电(PALL)

z 一个块预充电(PRE)

z 自动刷新(CBR)

z 掉电(PWRDN)

z 进入自我刷新(SLFRSH)

z 退出掉电(PWRDNX)

z 空操作(NOP)

表 5-17 给出了 SDRAM 接口命令,表中假设 SDRAM 的块地址已发送至外部总线

MA24,23 上。

表5-17 SDRAM 命令编码

命令

引脚

命令

SDCKE(at

clk n-1)

SDCKE(at

clk n)

nSDCS

3:0

nSDRAS

nSDCAS

nWE

DQM

3:0

MA <24:10>

命令

SDCKE(at

clk n-1)

SDCKE(at

clk n)

nSDCS

3:0

nSDRAS

nSDCAS

nWE

DQM

3:0

24:23

22:21

20

19:10

PWRDN

1

0

1

1

1

1

1

x

PWRDNX

0

1

1

1

1

1

1

x

SLFRSH

1

0

0

0

0

0

1

x

CBR

1

1

0

0

0

1

x

x

MRS

1

x

0

0

0

0

0

OP 代码

ACT

1

x

0

1

1

x

Bank

row

READ

1

x

0

1

0

1

0

bank

col

0

col

WRITE

1

x

0

1

0

0

mask

Bank

Col

0

col

PALL PRE

ALL

1

x

0

0

1

0

x

x

1

x

PALL PRE

Bank

1

x

0

0

1

0

bank

x

0

x

NOP

1

x

1

x

x

x

x

x

NOP

1

x

0

1

1

1

x

x

在 MRS 命令期间,地址位 MA24~17 上的可编程操作码等于编程入 MDMRS 寄存器的
值,见表5-18
表5-18 SDRAM 方式寄存器操作码表

选项

MA<24:17>

保留

MDMRSx