DDR2 SDRAM初始化时,如何配置DIRECTCMD寄存器 求大神帮忙

JXES智能生态系统
博客专家认证
2014-09-04 12:16:15
我的开发板是S5PV210,内存是1G DDR2,关于SDRAM初始化的顺序,三星的手册上有给出DDR2初始化的顺序,其中关于DIRECTCMD寄存器配置的那几步看不明白,详细请看下面:
1. 三星给出的DDR2初始化顺序(只列举DIRECTCMD部分)
..............
16. Issue a PALL command using the DirectCmd register.
17. Issue an EMRS2 command using the DirectCmd register to program the operating parameters.
18. Issue an EMRS3 command using the DirectCmd register to program the operating parameters.
19. Issue an EMRS command using the DirectCmd register to enable the memory DLLs.
20. Issue a MRS command using the DirectCmd register to reset the memory DLL.
21. Issue a PALL command using the DirectCmd register.
22. Issue two Auto Refreshcommands using the DirectCmd register.
23. Issue a MRS command using the DirectCmd register to program the operating parameters without resetting the memory DLL.
............
2.uboot中关于DDR2 SDRAM的初始化(列举DIRECTCMD部分)
...............
ldr r1, =0x07000000 @DirectCmd chip0 Deselect
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x01000000 @DirectCmd chip0 PALL
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x00020000 @DirectCmd chip0 EMRS2
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x00030000 @DirectCmd chip0 EMRS3
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x00010400 @DirectCmd chip0 EMRS1 (MEM DLL on, DQS# disable)
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x00000542 @DirectCmd chip0 MRS (MEM DLL reset) CL=4, BL=4
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x01000000 @DirectCmd chip0 PALL
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x05000000 @DirectCmd chip0 REFA
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x05000000 @DirectCmd chip0 REFA
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x00000442 @DirectCmd chip0 MRS (MEM DLL unreset)
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x00010780 @DirectCmd chip0 EMRS1 (OCD default)
str r1, [r0, #DMC_DIRECTCMD]

ldr r1, =0x00010400 @DirectCmd chip0 EMRS1 (OCD exit)
str r1, [r0, #DMC_DIRECTCMD]
..................
上述r1寄存器对应的数值,比如ldr r1, =0x00010400 ,这里的0x00010400,对照DIRECTCMD寄存器,知道发的CMD type=0x0 是EMRS命令,那么0x00010400这里面的1就代表EMRS1命令吗,如果是在那里有说明,我在手册以及DDR2手册上都没有找到?bit[14:0]的值=0x400,根据寄存器的说明,这表示"Related Address Value when issue a direct command........",这里的0x400是怎么得出来的呢?求指点,感谢!
...全文
231 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
CSDN有点不厚道,自己结贴,分都不返
  • 打赏
  • 举报
回复
此问题已经解决,主要我手上板子配套的DDR2芯片手册没有对MRS/EMRS寄存器做说明,后来找了一份DDR3的手册,里面有对这个寄存器的用法做说明,其实JEDEC规范上也有这部分介绍的,后来固然在JEDEC上找到DDR2的相关的,主要看了下MRS/EMRS,一看后,真是豁然开朗啊。 简单说,DIRECTCMD这个寄存器还是用来设置一些时序相关的,一开始没看明白,不知道MRS寄存器每一位代表的含义。 大家如有不明白的,可以自己去看这个资料,或联系我。自己给自己结帖。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧