一、DDR内存简介
- 1、RAM 和 ROM
- 2、SRAM
一开始芯片内部 RAM,后面因为应用需要外扩 RAM,比如 STM32F103 外扩了1MB SRAM。
is62wv51216,这是一个16位宽的 1MB RAM。
缺点:成本高,位价高。
优点:相比 SDRAM,SRAM 无需刷新(SDRAM 需要刷新,后面会讲解),读写速度快 。SRAM 能做到与CPU 的频率一致,常用作Cache。 - 3、SDRAM
同步动态随机存储器,需要时钟线,
常见频率是100MHz,133,166,200 MHz
需要刷新
二、DDR3 时间参数
-
1、传输速率
DDR3 1600、DDR3 1866、DDR4 2400、DDR4 3200
单位:MT / s,每秒传输多少兆次
不同的传输速度,芯片的时序是不一样的 -
2、tRCD
RAS-to-CAS Delay,也就是行寻址到列寻址之间的延迟 -
3、CL参数
当列地址发出以后就会触发数据传输,但是数据从存储单元到内存芯片 IO 接口上还需要一段时间,这段时间就是非常著名的 CL(CAS Latency),也就是列地址选通潜伏期 -
4、tRC
-
5、tRAS
三、I.MX6U MMDC 控制器
- 1、multi-mode DDR controller
多模,支持 DDR3 / DDR3L LPDDR2 * 16 位 (只能接16位) - 2、MMDC 最高支持 DDR3 频率是 400 MHz,800 MT / s。
- 3、MMDC 提供的 DDR3 连接信号。6ull 给 DDR 提供了专用的 IO,只能作为DDR引脚 使用。
DDR 时钟配置
时钟源为 MMDC_CLK_ROOT = PLL2_PFD2 = 396 MHz。在前面例程已经设置为 396 MHz。
看时钟树找到相应的寄存器位进行设置
CBCMR 寄存器的 PRE_PERIPH2_CLK_SE 位来选择,也就是 bit22 :21,设置pre_periph2 的时钟源,设置为 01,也就是 PLL2_PFD2 作为 pre_Periph2 的时钟源。
CBCDR 的寄存器的 PERIPH_CLK_SEL,也就是 bit26 ,设置为0,PLL2作为 MMDC 时钟源就是 396 MHz。
CBCDR 寄存器的 FABRIC_MMDC_PODF 位,也就是 bit5 :3,设置为0,也就是 1分频。
四、DDR3L 初始化与测试
- 1、ddr_stress_tester 配置文件
excel 配置文件,excel配置好以后 ,realview.inc 非同步更新。 - 2、.inc 文件
ddr_stress_tester 工具需要用到 .inc 文件。 - 3、测试
ddr_stress_tester 通过 USB 将 .inc 文件中的配置信息下载到开发板里面。
直接进行超频测试的话会失败,因为没有做校准,首先要用 DDR_Tester.exe 软件对正点原子 ALPAH 开发板的 DDR3L 进行校准,因为不同的 PCB 其走线不同,必须要进行校准,经过校准一会 DDR3L 就会工作到最佳状态。