DDR3 初始化配置流程

系统上电之后,必须先完成DDR3 SDRAM 的初始化操作,系统才能访问DDR3

SDRAM。在进行初始化之前需要注意以下几点:

对DDR3 SDRAM 进行上电操作时,需要遵循JEDEC 标准。即先提供VDD,然

后提供VDDQ,最后提供VREF 和VTT。

 该初始化过程需要在系统进入NORMAL 模式后进行。

在DDRC 32bit 模式下,假设存储空间由两片容量为1Gbit,数据总线位宽为16bit 的

DDR3 SDRAM 构成,DDRC 的初始化步骤如下:

1. 软件等待200us 以上。

2. 把DDRC_IOCFG 寄存器配置为0x467,配置IO 的工作模式、匹配电阻以及信号驱

动。

3. 根据器件的单片容量配置DDRC_RNKCFG 寄存器为0x122。总线地址映射模式为RB-

C-DW 模式,AP 为A10,列地址宽度为10,行地址宽度为13。

4. 把DDRC_PHYSRST 配置为0x0,把DDRC_CDLLCFG,DDRC_QDLLCFG0~3 寄存器

配置为0x52,复位DDR PHY 和DLL。

5. 软件等待50ns。

6. 把DDRC_PHYSRST 配置为0x1,把DDRC_CDLLCFG,DDRC_QDLLCFG0~3 寄存器

配置为0x56,撤消DDR PHY 和DLL 复位。

7. 软件等待3us 以上。

8. 配置DDRC_TIMING2 寄存器[taref]为0x000,禁止自动刷新。

9. 配置DDRC_CTRL 寄存器为0x1,配置DDR3 SDRAM 退出复位状态。

10. 软件等待500us 以上。

11. 把DDRC_SREFCTRL 寄存器配置为0x0,退出自刷新状态。

12. 软件等待1us 以上。

13. 根据工作频率和器件要求,配置DDRC_EMRS01 寄存器和DDRC_EMRS23 寄存器,

以设置DDR 的读延迟(cas latency),写延迟(cas write latency),写恢复延迟(write

recovery),突发长度(burst length),DDR 器件的输出驱动阻抗和输入ODT 阻抗

等。

cas latency 和必须和DDRC_TIMING1[cl]设置成同一个值。

cas write latency 和必须和DDRC_TIMING1[wl]设置成同一个值。

DDRC_EMRS01 寄存器对应DDR3 SDRAM 的模式寄存器MRS 和扩展模式寄存器1

(EMRS1)。配置该寄存器时,只需要DDR3 SDRAM 器件手册的模式寄存器的A15-A0(实际有

效位为:A13~A0),不需要配置模式寄存器的最高3 位A18~A16 寄存器选择位,即bank 地址。

但是,有些DDRn SDRAM 厂家的bank 地址是:A17~A15。

14. 根据器件的类型和存储空间配置DDRC_CONFIG0 寄存器为0x8000_0610,

DDRC_CONFIG1 寄存器为0x785,表示DDRC 为32bit DDR3 SDRAM 模式。

低功耗配置的上电复位值是关闭的,初始化过程中必须关闭低功耗自动进入功能以及时钟自动关

闭功能,但在正常使用中,建议使能低功耗的控制,可以降低功耗。

15. 配置存储空间基地址寄存器DDRC_BASEADDR 为0x8000_0000。

16. 根据工作频率和器件要求配置DDRC_TIMING0~DDRC_TIMING3 的值,其中cl 和wl

值必须跟DDRC_EMRS01 和DDRC_EMRS23 模式寄存器中的配置一致。

17. 配置DDRC_DTRCTRL 寄存器为0x0F00_0503,使能初始化自动训练模式。

18. 配置DDRC_ODTCFG 寄存器DDRC_ODTCFG[wodt0]=0x1,

DDRC_ODTCFG[rodt0]=0x0。

19. 配置DDRC_PHYCFG 寄存器0x2。

20. 将DDRC_INITCTRL 寄存器设置为0x1,启动初始化过程。

21. 等待DDRC_INITCTRL 寄存器的值变为0,初始化完成。

----结束

完成以上步骤以后,DDR3 SDRAM 就可以正常工作。

HI3531的DDR3配置流程的更多相关文章

  1. QT特供 CGAL配置流程(基于QT5+VS2015)

    最近做的QT项目涉及计算几何库,需要用到CGAL,其配置着实麻烦,而且相互关联的软件也存在版本兼容一类的问题,在这里就对其配置流程做一些整理说明,以便后来者能够少些烦恼.(注:以下使用Win10作说明 ...

  2. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  3. win10下vagrant+centos7 rails虚拟开发机配置流程

    此文写于2017.8.21 在写本文前,笔者已经尝试了多种其他的替代方法,例如wmware虚拟机安装kylin.然而发现总是还有各种问题.经大佬指点安装了virtualbox + vagrant.于是 ...

  4. Linux下双网卡Firewalld的配置流程

    实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上.笔者最终选择通过firewalld放行端口的方式来实现需求,由于firew ...

  5. Java采用RSA加密及解密技术的有关Maven项目的配置流程:

    第一步: 获得RSA公钥私钥(秘钥格式:PKCS#8 ,测试使用的是无私钥密码的) 公钥: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4G ...

  6. xampp+vscode开发php的配置流程

    一.所需文件 1.xampp集成服务器(个人使用7.1.7)https://www.apachefriends.org/download.html 2.vscode https://code.visu ...

  7. GPON介绍及华为OLT网关注册配置流程(转)

    原文地址:https://blog.csdn.net/zhouzxi/article/details/79244862 一.GPON介绍 1.GPON简介 随着技术的发展,光纤变得“便宜又好用”,因此 ...

  8. nagios部署配置流程

    nagios部署配置流程 nagios服务端:1.部署nagios服务端(参考nagios官方部署文档).nagios-plugin.php.apache2 2.需要在服务端添/etc/hosts中添 ...

  9. 安装完SAP后BASIS的配置流程

    安装完SAP后BASIS配置流程 安装完SAP后,配置流程. 1.升级kernel. 2.TCD SLICENSE: License Administration install > Syste ...

随机推荐

  1. oracle如何操作约束

    自我总结,欢迎怕转! 约束的作用不多说了,直接看怎么用吧. 非空约束: 在创建表时设置非空约束: CREATE TABLE table_name( column_name datatype NOT N ...

  2. pandas教程

    对pandas做最简单的介绍,针对初学者. 一.引入相关模块模块 import numpy as np import pandas as pd import matplotlib.pyplot as ...

  3. 洛谷 [P1801] 黑匣子

    这道题是一道splay裸题,然而身为蒟蒻的我并不会,所以这道题我维护的是一个大根堆与一个小根堆结合起来的类似沙漏的结构. 本题难点在于询问的不是最大最小值,而是第K小值,所以我们想到了维护这样两个堆, ...

  4. hdu 4609 3-idiots [fft 生成函数 计数]

    hdu 4609 3-idiots 题意: 给出\(A_i\),问随机选择一个三元子集,选择的数字构成三角形的三边长的概率. 一开始一直想直接做.... 先生成函数求选两个的方案(注意要减去两次选择同 ...

  5. BZOJ 2342: [Shoi2011]双倍回文 [Manacher + set]

    题意: 求最长子串使得它有四个相同的回文串SSSS相连组成 枚举中间x 找右边的中间y满足 y-r[y]<=x y<=x+r[x]/2 用个set维护 注意中间只能是# #include ...

  6. 【转】JavaScript的三种消息框alert,confirm,prompt

    1. alert是弹出警告框,在文本里面加入\n就可以换行.2. confirm弹出确认框,会返回布尔值,通过这个值可以判断点击时确认还是取消.true表示点击了确认,false表示点击了取消.3. ...

  7. 【linux之正则表达式】

    一.grep grep家族grep.egrep.fgrepGlobally search a Regular Expression and Print根据我们提供的模式进行查找,并且将文件中匹配的行显 ...

  8. 自己写的一个vii总结

    #include<stdlib.h>#include<stdio.h>#include<unistd.h>#include<errno.h>#inclu ...

  9. WPF---Xaml中改变ViewModel的值

    在开发中遇到实现如下需求的情景:一个输入框,旁边一个清空输入的按钮,当输入框中有内容时显示清空按钮,点击该按钮可以清空输入框内容,当输入框中无内容时隐藏按钮 当然这个需求使用wpf的绑定功能很容易实现 ...

  10. markdown语法探究

    \[\sum_{i=1}^n a_i=0\] \[f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 \] \[\sum^{j-1}_{k=0 ...