HI3531的DDR3配置流程
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配置流程的更多相关文章
- QT特供 CGAL配置流程(基于QT5+VS2015)
最近做的QT项目涉及计算几何库,需要用到CGAL,其配置着实麻烦,而且相互关联的软件也存在版本兼容一类的问题,在这里就对其配置流程做一些整理说明,以便后来者能够少些烦恼.(注:以下使用Win10作说明 ...
- 转载-Linux下svn搭建配置流程
Linux下svn搭建配置流程 一. 源文件编译安装.源文件共两个,为: 1. 下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...
- win10下vagrant+centos7 rails虚拟开发机配置流程
此文写于2017.8.21 在写本文前,笔者已经尝试了多种其他的替代方法,例如wmware虚拟机安装kylin.然而发现总是还有各种问题.经大佬指点安装了virtualbox + vagrant.于是 ...
- Linux下双网卡Firewalld的配置流程
实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上.笔者最终选择通过firewalld放行端口的方式来实现需求,由于firew ...
- Java采用RSA加密及解密技术的有关Maven项目的配置流程:
第一步: 获得RSA公钥私钥(秘钥格式:PKCS#8 ,测试使用的是无私钥密码的) 公钥: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4G ...
- xampp+vscode开发php的配置流程
一.所需文件 1.xampp集成服务器(个人使用7.1.7)https://www.apachefriends.org/download.html 2.vscode https://code.visu ...
- GPON介绍及华为OLT网关注册配置流程(转)
原文地址:https://blog.csdn.net/zhouzxi/article/details/79244862 一.GPON介绍 1.GPON简介 随着技术的发展,光纤变得“便宜又好用”,因此 ...
- nagios部署配置流程
nagios部署配置流程 nagios服务端:1.部署nagios服务端(参考nagios官方部署文档).nagios-plugin.php.apache2 2.需要在服务端添/etc/hosts中添 ...
- 安装完SAP后BASIS的配置流程
安装完SAP后BASIS配置流程 安装完SAP后,配置流程. 1.升级kernel. 2.TCD SLICENSE: License Administration install > Syste ...
随机推荐
- python selenium+phantomjs alert()弹窗报错
问题:用selenium+phantomjs 模拟登陆,网页用JavaScript的alert("登陆成功")弹出框,但是用switch_to_alert().accept()报错 ...
- [DeeplearningAI笔记]ML strategy_2_1误差分析
机器学习策略-误差分析 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 误差分析 训练出来的模型往往没有达到人类水平的效果,为了得到人类水平的结果,我们对原因进行分析,这个过程称为误差 ...
- OpenStack和Hadoop的区别
其实,OpenStack和Hadoop不是同一个层次的东西,无法比较,非要说出个区别,那就是:OpenStack是云计算管理平台,应该是属于系统级别的软件,它的主体思想是把资源进行分离,给不同的用户提 ...
- 【OCR技术系列之三】大批量生成文字训练集
放假了,终于可以继续可以静下心写一写OCR方面的东西.上次谈到文字的切割,今天打算总结一下我们怎么得到用于训练的文字数据集.如果是想训练一个手写体识别的模型,用一些前人收集好的手写文字集就好了,比如中 ...
- 《Thinking in Java》学习笔记(五)
1. Java异常补充 a.使用try/catch捕获了异常之后,catch之后的代码是会正常运行的,认为即使进行了异常捕获,出现了异常就不往下执行,这是很多新手会犯的错误. public class ...
- bzoj 4815: [Cqoi2017]小Q的表格 [数论]
4815: [Cqoi2017]小Q的表格 题意: 单点修改,查询前缀正方形和.修改后要求满足条件f(a,b)=f(b,a), b×f(a,a+b)=(a+b)*f(a,b) 一开始sb了认为一次只会 ...
- BZOJ 4025: 二分图 [线段树CDQ分治 并查集]
4025: 二分图 题意:加入边,删除边,查询当前图是否为二分图 本来想练lct,然后发现了线段树分治的做法,感觉好厉害. lct做法的核心就是维护删除时间的最大生成树 首先口胡一个分块做法,和hno ...
- 51NOD 1238 最小公倍数之和 V3 [杜教筛]
1238 最小公倍数之和 V3 三种做法!!! 见学习笔记,这里只贴代码 #include <iostream> #include <cstdio> #include < ...
- vuex学习笔记
一.vuex的目的 把组件的共享状态抽取出来,以一个全局单例模式管理.在这种模式下,组件树构成了一个巨大的视图,不管在树的哪个位置,任何组件都能获取状态或触发行为. 二.vuex集中式管理数据 安装 ...
- qt 移植到开发板
一.准备工作: 1.QT应用程序 2.工具链--->交叉工具链一安装,就会有标准的c库 3.扩展的第三方库(ARM)()触摸屏库(tslib.tar.gz) 4.QT库 二.使用交叉工具链编译t ...