1. DDR内存简介

1.1 RAM/ROM

RAM随机存储器。可以随时进行读写,掉电以后数据丢失。一般用于保存程序数据,中间结果等。
ROM只读存储器。其实可以进行写入,但是要先做擦除之类的,比较麻烦。ROM可以做很大,所以用来存储数据。
对于I.MX6U-EMMC系列开发板而言,RAM就是512MB的DDR3,ROM就是521MB的NANF Flash或8GB的EMMC。

SRAM:STM32常用的外扩RAM,静态随机存储器。“静态”指的是SRAM在上电状态数据会一直保存直到掉电。要求SRAM可以随机读取任意地址的数据,所以采用地址线和数据线分离的方式。由于SRAM无需刷新,读写速度快,一般用作SOC的内部RAM或者Cache使用。

SDRAM同步动态随机存储器。“同步”说明SDRAM需要时钟线,“动态”表明SDRAM的数据需要不断刷新保证不丢失。SDRAM按照行列寻址,内部一般分为多个BANK,防止寻址冲突,提高内存访问效率。

1.2 DDR

DDR:具有预取(2bit)功能,一个CLK周期内传输两次数据,上升沿下降沿各一次。所以速度是SDRAM的两倍。
DDR2:在DDR基础上进一步增加预取(4bit),传输速率比DDR快一倍。
DDR3:预取8bit。分为LPDDR3(低功耗DDR3),DDR3(标压DDR3),DDR3L(低压DDR3)。一般用于嵌入式的是DDR3L。

2. MMDC控制器

  I.MX6U通过MMDC控制器链接DDR。最高支持400MHz,所以对应的数据传输速率是800MT/s。6ULL给DDR提供了专用IO,没有复用选择,所以配置的时候配置电气属性即可。
  MMDC的时钟源有四种选项,这里将CBCMR寄存器的PRE_PERIPH2_CLK_SEL位配置为01,选中PLL2_PFD2为时钟源(实际上是396MHz)。实际上内部Boot rom已经默认设置好了。

3. DDR3L初始化与测试

使用NXP提供的DDR_STRESS_TESTER工具。

3.1 DDR初始化信息配置

  对正点原子I.MX6ULL-EMMC版的DDR配置如下:

然后生成这样一个inc文件,里面包含的是DDR的初始化信息,将配置文件中的第三栏复制过去:

3.2 校准及测试

  加载inc里的初始化信息之后,通过USB_OTG接口向板子下载测试代码和初始化代码。正式开始测试之前先进行校准,因为不同PCB的结构问题,需要校准获得寄存器的校准值,重新初始化DDR。
  超频测试,一般认为DDR能够以超过标准工作频率10%~20%稳定工作的话就是走线正常。

流程
①连接PC和开发板。注意必须弹出SD卡,然后要设置开关从USB启动,2拨上,其余拨下。
②配置信息:

③点击Download:

④校准:
  该工具有如下三个测试选项,首先选择Calibration(校准)。校准得到寄存器的值在inc中修正,然后重新下载inc。校准完成。

⑤超频测试:
  目的是为验证DDR硬件合理性,这里如果能超到440-460MHz就可以认为工作良好。最后测得能够超到528MHz,说明硬件性能很好。

嵌入式Linux(十一)DDR3相关推荐

  1. 【正点原子MP157连载】第二十一章 嵌入式Linux LED驱动开发实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  2. 【正点原子Linux连载】第七十一章 Linux 4G通信实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  3. 嵌入式linux备份flash,嵌入式Linux裸机开发(十一)——Nandflash

    嵌入式Linux裸机开发(十一)--Nandflash 一.Nand Flash简介 NandFlash是Flash的一种,具有容量较大,改写速度快等优点,适用于大量数据的存储.NandFlash没有 ...

  4. 【正点原子Linux连载】第二十三章 DDR3实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  5. 嵌入式Linux驱动笔记(十一)------i2c设备之mpu6050驱动

    ###你好!这里是风筝的博客, ###欢迎和我一起交流. 上一节讲了i2c框架: 嵌入式Linux驱动笔记(十)------通俗易懂式了解i2c框架 这次就来写一写真正的i2c设备驱动: mpu605 ...

  6. 嵌入式Linux内存压力测试

    原文参考:添加链接描述 1 前言   内存是电子计算机的最重要组成要素之一. 与内存对应的就是外存,如硬盘.外部存储器等.内存是将外存与CPU连接起来的桥梁,计算机中所有数据都需经过内存进行交互,而且 ...

  7. Linux 之八 完整嵌入式 Linux 环境、(交叉)编译工具链、CPU 体系架构、嵌入式系统构建工具

      最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,由于之前对嵌入式 Linux 环境并不是很了解,因此,第一步就是需要了解如何搭建一个完整的嵌入式 Linux 环境.现在将学习心得记录 ...

  8. 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.2 DDR2 SDRAM芯片

    本节书摘来自异步社区<嵌入式Linux软硬件开发详解--基于S5PV210处理器>一书中的第2章,第2.2节,作者 刘龙,更多章节内容可以访问云栖社区"异步社区"公众号 ...

  9. linux cached释放_正点原子Linux第四十一章嵌入式Linux LED驱动开发实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第四十一章嵌入式Linux LED驱动开发实验 上一章我 ...

  10. 嵌入式Linux驱动笔记--转自风筝丶

    为了阅读学习方便,将系列博客的网址进行粘贴,感谢原博客的分享. 嵌入式Linux驱动笔记(一)------第一个LED驱动程序 嵌入式Linux驱动笔记(二)------定时器 嵌入式Linux驱动笔 ...

最新文章

  1. 和远程ip_漏洞Microsoft Windows TCP/IP 远程执行代码漏洞威胁通告
  2. 为什么 Java 中 1000==1000 为 false ?
  3. things to do in English debate: scenario
  4. java技术栈有哪些_Java程序员必备的21个核心技术,你都掌握了哪些?
  5. 深度学习:在图像上找到手势_使用深度学习的人类情绪和手势检测器:第1部分
  6. 公众号滑动图代码_实用技巧:公众号封面图如何提取?
  7. 2018-2019-1 20165214 《信息安全系统设计基础》第八周学习总结
  8. 大屏数据可视化源码_数据可视化大屏快速入门
  9. 《Go语言实战》Go 类型:基本类型、引用类型、结构类型、自定义类型
  10. 云课堂智慧职教网页版登录入口_云课堂智慧职教网页版登录入口
  11. PyKDL---正运动学和逆运动学
  12. 期权定价_强化学习的期权定价
  13. 初识中间件Kafka
  14. WebDav的几种应用方法
  15. android P有哪些小米手机,Android P来啦!开发者版支持七款机型 OV小米一加在列
  16. 没有权限cd linux,为什么linux在root权限下 打cd命令没有用,都显示没有那个目录或文件...
  17. 微信小程序16进制颜色码
  18. 微型计算机内存储器的总称为,微型计算机的内存储器是
  19. Delphi数据库处理组件BDE、ADO、InterBase和dbExpress详细说明
  20. java调用应用程序_java调用第三方应用程序

热门文章

  1. iOS审核被拒Guideline 2.3.1 - Performance解决
  2. Python多线程下载有声小说
  3. 计算机开发日语词汇笔记二
  4. Moglue:无需编程的交互式电子书制作软件(视频演示)
  5. IReport常见问题及处理方法
  6. 台式计算机有乱码如何解决,台式机键盘乱码怎么办
  7. openwrt目录结构之staging_dir
  8. 2022-2028年中国酒吧行业投资潜力研究及发展趋势预测报告
  9. python伪装浏览器爬取网页图片_【IT专家】python 分别用python2和python3伪装浏览器爬取网页内容...
  10. STC8H8K64U单片机学习-3-硬件的准备工作