嵌入式Linux(十一)DDR3
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相关推荐
- 【正点原子MP157连载】第二十一章 嵌入式Linux LED驱动开发实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- 【正点原子Linux连载】第七十一章 Linux 4G通信实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- 嵌入式linux备份flash,嵌入式Linux裸机开发(十一)——Nandflash
嵌入式Linux裸机开发(十一)--Nandflash 一.Nand Flash简介 NandFlash是Flash的一种,具有容量较大,改写速度快等优点,适用于大量数据的存储.NandFlash没有 ...
- 【正点原子Linux连载】第二十三章 DDR3实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- 嵌入式Linux驱动笔记(十一)------i2c设备之mpu6050驱动
###你好!这里是风筝的博客, ###欢迎和我一起交流. 上一节讲了i2c框架: 嵌入式Linux驱动笔记(十)------通俗易懂式了解i2c框架 这次就来写一写真正的i2c设备驱动: mpu605 ...
- 嵌入式Linux内存压力测试
原文参考:添加链接描述 1 前言 内存是电子计算机的最重要组成要素之一. 与内存对应的就是外存,如硬盘.外部存储器等.内存是将外存与CPU连接起来的桥梁,计算机中所有数据都需经过内存进行交互,而且 ...
- Linux 之八 完整嵌入式 Linux 环境、(交叉)编译工具链、CPU 体系架构、嵌入式系统构建工具
最近,工作重心要从裸机开发转移到嵌入式 Linux 系统开发,由于之前对嵌入式 Linux 环境并不是很了解,因此,第一步就是需要了解如何搭建一个完整的嵌入式 Linux 环境.现在将学习心得记录 ...
- 《嵌入式Linux软硬件开发详解——基于S5PV210处理器》——2.2 DDR2 SDRAM芯片
本节书摘来自异步社区<嵌入式Linux软硬件开发详解--基于S5PV210处理器>一书中的第2章,第2.2节,作者 刘龙,更多章节内容可以访问云栖社区"异步社区"公众号 ...
- linux cached释放_正点原子Linux第四十一章嵌入式Linux LED驱动开发实验
1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第四十一章嵌入式Linux LED驱动开发实验 上一章我 ...
- 嵌入式Linux驱动笔记--转自风筝丶
为了阅读学习方便,将系列博客的网址进行粘贴,感谢原博客的分享. 嵌入式Linux驱动笔记(一)------第一个LED驱动程序 嵌入式Linux驱动笔记(二)------定时器 嵌入式Linux驱动笔 ...
最新文章
- 和远程ip_漏洞Microsoft Windows TCP/IP 远程执行代码漏洞威胁通告
- 为什么 Java 中 1000==1000 为 false ?
- things to do in English debate: scenario
- java技术栈有哪些_Java程序员必备的21个核心技术,你都掌握了哪些?
- 深度学习:在图像上找到手势_使用深度学习的人类情绪和手势检测器:第1部分
- 公众号滑动图代码_实用技巧:公众号封面图如何提取?
- 2018-2019-1 20165214 《信息安全系统设计基础》第八周学习总结
- 大屏数据可视化源码_数据可视化大屏快速入门
- 《Go语言实战》Go 类型:基本类型、引用类型、结构类型、自定义类型
- 云课堂智慧职教网页版登录入口_云课堂智慧职教网页版登录入口
- PyKDL---正运动学和逆运动学
- 期权定价_强化学习的期权定价
- 初识中间件Kafka
- WebDav的几种应用方法
- android P有哪些小米手机,Android P来啦!开发者版支持七款机型 OV小米一加在列
- 没有权限cd linux,为什么linux在root权限下 打cd命令没有用,都显示没有那个目录或文件...
- 微信小程序16进制颜色码
- 微型计算机内存储器的总称为,微型计算机的内存储器是
- Delphi数据库处理组件BDE、ADO、InterBase和dbExpress详细说明
- java调用应用程序_java调用第三方应用程序
热门文章
- iOS审核被拒Guideline 2.3.1 - Performance解决
- Python多线程下载有声小说
- 计算机开发日语词汇笔记二
- Moglue:无需编程的交互式电子书制作软件(视频演示)
- IReport常见问题及处理方法
- 台式计算机有乱码如何解决,台式机键盘乱码怎么办
- openwrt目录结构之staging_dir
- 2022-2028年中国酒吧行业投资潜力研究及发展趋势预测报告
- python伪装浏览器爬取网页图片_【IT专家】python 分别用python2和python3伪装浏览器爬取网页内容...
- STC8H8K64U单片机学习-3-硬件的准备工作