• 首页
  • 中国
  • S5PV210芯片的DRAM控制器介绍、初始化DDR的流程分析

S5PV210芯片的DRAM控制器介绍、初始化DDR的流程分析

2023-11-01 22浏览
百检网是一家专业的第三方检测平台,汇聚众多拥有权威资质的第三方检测机构为你提供一站式的检测服务,做检测就上百检网。百检网让检测从此检测,一份报告全国通用,专业值得信赖。

1、DRAM的地址空间

(1)从地址映射图可以知道,S5PV210有两个DRAM端口。 DRAM0的内存地址范围:0x20000000~0x3FFFFFFF(512MB);DRAM1:的内存地址范围:0x40000000~0x7FFFFFFF(1024MB);

(2)S5PV210实际*多能接1.5G的内存。32位的CPU理论上能接4G的内存,但是ARM结构的机器是统一编址,寄存器会占掉一部分地址空间,所以实际是达不到4G的内存;

2、DRAM端口的引脚

DRAM端口的引脚:32根数据线(Xm1_DATAn) + 14根地址线(Xm1_ADDRn) + 3根片选信号线(Xm1_BAn) + 控制信号线。

3、DRAM控制器

DRAM是比较复杂的器件,初始化DRAM需要根据数据手册里的时序说明来写代码,没有对DRAM有深入的了解是没法写出合适的代码。但是DRAM的接口统一,于是在复杂CPU里集成了DRAM控制器,编程人员只需要操作寄存器就可以发出相应的时序,而不用去管时序是如何产生的。DRAM控制器简化了使用Soc开发人员的工作,我们只需要知道DRAM的大致过程和关键的参数就可以去初始化DRAM。

4、DRAM初始化

4.1、数据手册里初始化步骤

DRAM控制器支持多个版本的DRAM的,比如S5PV210支持LPDDR、LPDDR2、DDR2。不同版本的DRAM初始化步骤是不一样的,上面就是初始化DDR2的部分初始化步骤。初始化DDR2的代码就是按照上面的步骤进行的,但是上面的步骤很粗略,很多细节没有列举出来,但是可以辅助我们阅读DDR2的初始化代码;

4.2、实际代码初始化流程分析

代码来源:uboot中对DRAM的初始化代码,下面只是从逻辑上梳理了初始化过程,要结合代码才能真正理解整个初始化过程;

(1)设置GPIO引脚的驱动强度;

(2)设置DRAM控制器的DLL,给DRAM控制器提供稳定的时钟信号;

(3)关掉DRAM的自动重刷新;

(4)配置DRAM的相关参数:行地址、列地址、自动重刷新间隔、DRAM的有效地址空间、Memory Burst Length、数据线宽度、DRAM类型等关键参数;

(5)根据数据手册里的初始化步骤,依次给DRAM发命令进行初始化。发命令的实质就是按照时序去初始化DDR2,只不过时序由DRAM控制器产生,我们不再操心。

(6)*终DDR2初始化成功,后面的程序都重定位到DDR2中执行;

百检网秉承“客户至上,服务为先,精诚合作,以人为本”的经营理念,始终站在用户的角度解决问题,为客户提供“一站购物式”的新奇检测体验,打开网站,像挑选商品一样简单,方便。打破行业信息壁垒,建构消费和检测机构之间高效的沟通平台