I.MX6UL裸机开发(十)—— DDR3

1、何为RAM和ROM?
(1)RAM:
        随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失。比如内存条、SRAM、SDRAM、DDR等都是RAM。RAM一般用来保存程序数据、中间结果。可以随意对
     RAM中任何地址的数据进行读写操作。
(2)ROM:
        只读存储器(不准确)。RAM和Flash可以将容量做的很大,而且掉电以后数据不会丢失,适合用来存储资料,比如音乐、图片、视频等信息。
(3)综上所述:
        RAM速度快,可以直接和CPU进行通信,但是掉电以后数据会丢失,容量不容易做大(和同价格的Flash相比)。ROM(目前来说,更适合叫做Flash)速度虽然慢,但是容量
     大、适合存储数据。对于I.MX6U-ALPHA开发板而已,256MB/512MB的DDR3就是RAM,而512MB NANF Flash或8GB EMMC就是ROM。

2、SRAM简介
       SRAM的全称叫做Static Random-Access Memory,也就是静态随机存储器,这里的静态说的就是只要SRAM上电,那么SRAM里面的数据就会一直保存着,直到SRAM掉电。对于
   RAM而言需要可以随机的读取任意一个地址空间内的数据,因此采用了地址线和数据线分离的方式。SRAM最大的缺点就是成本高,优点是无需刷新,读写速度快。所以SRAM通常
   作为SOC的内部RAM使用或Cache使用,比如STM32内存的RAM或I.MX6U内部的OCRAM都是SRAM。

3、SDRAM简介
       SDRAM全称是Synchronous Dynamic Random Access Menory,翻译过来就是同步动态随机存储器,同步的意思是SDRAM工作需要时钟线,动态的意思是SDRAM中的数据需要不
   断的刷新来保证数据不会丢失,随机的意思就是可以读写任意地址的数据。
       与SRAM相比,SDRAM集成度高、功耗低、成本低、适合做大容量存储,但是需要定时刷新来保证数据不会丢失。因此SDRAM适合用来做内存条,SRAM适合做告诉换成或MCU内
   的RAM。SDRAM目前已经发展到了第四代,分别为:SDR SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM。

4、DDR简介
       DDR全称是Double Data Rate SDRAM,也就是双倍速率SDRAM。SDRAM在一个CLK周期传输一次数据,DDR在一个CLK周期传输两次数据,也就是上升沿和下降沿各传输一次数据,
   这个概念就做预取(prefetch),相当于DDR的预取为2bit,因此DDR的速度是SDRAM的两倍。DDR2的ID时钟是DDR的2倍,因此DDR2的速度是DDR的两倍。DDR3在DDR2的基础上将预
   取(prefetch)提高到8bit,因此速度是DDR2的两倍。
       I.MX6U的MMDC外设用于连接DDR,支持LPDDR3、DDR3、DDR3L,最高支持16位数据位宽。LPDDR3、DDR3和DDR3L的区别,这三个都是DDR3,但是区别主要在于工作电压,LPDDR3
   叫做低功耗DDR3,工作电压为1.2V。DDR3叫做标压DDR3,工作电压为1.5V,一般台式内存条都是DDR3。DDR3L是低压DDR3,工作电压为1.35V,一般手机、嵌入式、笔记本等都使
   用DDR3L。

5、DDR3关键时间参数
(1)传输速率
     比如1066MT/S、1600MT/S、1866MT/S等,这个是首要考虑的,因为这个决定了DDR3内存的最高传输速率。
(2)tRCD参数
     tRCD全称是RAS-to-CAS Delay,也就是行寻址到列寻址之间的延迟。DDR的寻址流程是先指定BANK地址,然后再指定行地址,最后指定列地址确定最终要寻址的单元。BANK地址
     和行地址是同时发出的,这个命令叫做行激活(Row Active)。行激活以后就发送列地址和具体的操作命令(读还是写),这两个是同时发出的,因此一般也用读/写命令表示
     列寻址。在行有效(行激活)到读写命令发出的这段时间间隔叫做tRCD。
(3)CL参数
     当列地址发出以后就会触发数据传输,但是数据从存储单元到内存芯片IO接口上还需要一段时间,这段时间就是非常著名的CL(CAS Latency),也就是列地址选通潜伏期。
     CL参数一般的DDR3的数据手册中可以找到,比如NT5CC256M16EP-EK的CL值就是13个时钟周期,一般tRCD和CL大小一样。
(4)AL参数
     在 DDR 的发展中,提出了一个前置 CAS 的概念,目的是为了解决 DDR 中的指令冲突,它允许 CAS 信号紧随着 RAS 发送,相当于将 DDR 中的 CAS 前置了。但是读/写操作
     并没有因此提前,依旧要保证足够的延迟/潜伏期,为此引入了 AL(Additive Latency),单位也是时钟周期数。 AL+CL 组成了 RL(Read Latency),从 DDR2 开始还引入了写
     潜伏期 WL(Write Latency),WL 表示写命令发出以后到第一笔数据写入的潜伏期。
(5)tRC参数
     tRC 是两个 ACTIVE 命令,或者 ACTIVE 命令到 REFRESH 命令之间的周期, DDR3L 数据手册会给出这个值,比如 NT5CC256M16EP-EK 的 tRC 值为 47.91ns。
(6)tRAS 参数
     tRAS 是 ACTIVE 命令到 PRECHARGE 命令之间的最小时间, DDR3L 的数据手册同样也会给出此参数, NT5CC256M16EP-EK 的 tRAS 值为 34ns。

6、I.MX6U MMDC控制器简介
(1)MMDC控制器
         MMDC就是I.MX6U的内存控制器,MMDC是一个多模的DDR控制器,可以连接16位宽的DDR3/DDR3L、16位宽的LPDDR2,MMDC是一个可配置、高性能的DDR控制器。MMDC外设包
     含一个内核(MMDC_CORE)和PHY(MMDC_PHY),内核和PHY的功能如下:
         MMDC内核:内核负责通过AXI接口与系统进行通信、DDR命令生成、DDR命令优化、读/写数据路径。
         MMDC PHY:PHY复制时序调整和校准,使用特殊的校准机制以保障数据能够在400MHz被准确捕获。
         MMDC的主要特性如下:
         ①、支持DDR3/DDR3Lx16、支持LPDDR2x16,不支持LPDDR1MDDR和DDR2。
         ②、支持单片156Mbit~8Gbit容量的DDR,列地址范围:8-12位,行地址范围11-16bit。2个片选号。
         ③、对于DDR3,最大支持8bit的突发访问。
         ④、对于LPDDR2最大支持4bit的突发访问。
         ⑤、MMDC最大频率为400MHz,因此对应的数据速率为800MT/S。
         ⑥、支持各种校准程序,可以自动或手动运行。支持ZQ校准外部DDR设备,ZQ校准DDR I/O引脚、校准DDR驱动能力。
(2)MMDC控制器信号引脚
         DDR对于硬件要求非常严格,因此DDR的引脚都是独立的,一般没有复用功能,只做为DDR引脚使用。DDR引脚都是专属的,因此就不存在所谓的DDR引脚复用配置,只需要
     设置DDR引脚的电气属性即可。注意,DDR引脚的电气属性寄存器和普通的外设引脚电气属性寄存器不同。
(3)MMDC控制器时钟源
         I.MX6U的DDR或者MDDC的时钟频率为400MHz。256MB和512MB DDR3的PCB封装是一样的。

7、总结
   本章实验的目的是通过NXP提供的ddr_stress_tester软件对DDR3进行校准和超频测试。当超频为正常频率的10%~15%,则表明DDR3硬件工作良好。

你可能感兴趣的:(I.MX6UL)