DDR3简介

news2024/10/5 23:00:28

文章目录

  • 前言
  • 一、ddr_stress_tester_v2.90配置流程
  • 二、将inc配置文件下载到板子上
    • 1.连接方式
    • 2.打开DDR_Tester 软件
  • uboot中DDR初始化的修改


前言

💦DDR3在自己做完板子后需要验证下,测试DDR3是否能正常使用,如果不能正常使用,其他的也将无法运行,所以测试DDR3还是非常有必要的,NXP官方提供了一个软件用来测试DDR3的工具,ddr_stress_tester_v2.90。
💦注意:一般认为 DDR 能够以超过标准工作频率10%~20%稳定工作的话就认定此硬件 DDR 走线正常,这就是DDR校准的意义。


一、ddr_stress_tester_v2.90配置流程

①、工具通过 USB OTG 接口与开发板相连接,也就是通过 USB OTG 口进行 DDR 的初始化与测试。
②、工具有一个默认的配置文件,为 excel 表,通过此表可以设置板子的 DDR 信息,生成一个.inc 结尾的 DDR 初始化脚本文件。这个.inc 文件就包含了 DDR 的初始化信息,一般都是寄存器地址和对应的寄存器值。
③、工具会加载.inc 表里面的 DDR 初始化信息,然后通过 USB OTG 接口向板子下载DDR 相关的测试代码,包括初始化代码。
④、对此工具进行简单的设置,即可开始 DDR 测试,一般要先做校准,因为不同的 PCB其结构肯定不同,必须要做一次校准,校准完成以后会得到两个寄存器对应的校准值,我们需要用这个新的校准值来重新初始化 DDR。
⑤、此工具可以测试板子的 DDR 超频性能,一般认为 DDR 能够以超过标准工作频率10%~20%稳定工作的话就认定此硬件 DDR 走线正常。
⑥、此工具也可以对 DDR 进行 12 小时的压力测试。
在这里插入图片描述
在这里插入图片描述

💦配置项根据自己所使用的DDR芯片参数来填写。

在这里插入图片描述
在这里插入图片描述

💦举例说明:如果开发板使用的是 EMMC 核 心 板 (DDR3 型 号 为NT5CC256M16EP-EK)配置如下:
在这里插入图片描述
💦点击RealView.inc回同步更新Register Configuration文件。
将RealView.inc配置文件导出来,新建一个.inc文件,将excel中的复制出来即可。
在这里插入图片描述

二、将inc配置文件下载到板子上

💦首先要用 DDR_Tester.exe 软件对正点原子 ALPAH 开发板的 DDR3L 进行校准,因为不同的 PCB 其走线不同,必须要进行校准,经过校准一会 DDR3L 就会工作到最佳状态。

1.连接方式

在这里插入图片描述
①、弹出 SD 卡,如果插入了 SD卡,那么一定要弹出来
②、设置拨码开关从 USB 启动
在这里插入图片描述

2.打开DDR_Tester 软件

在这里插入图片描述

在这里插入图片描述

💦得到校准值,也就是一些配置DRR的寄存器的值。
💦在裸机编程时,要将校准值和imxdownload.h中的对应寄存器进行核对,不一致的地方修改,没有的就不用管。
💦得到的校准值如下:

MMDC registers updated from calibration 

   Write leveling calibration
   MMDC_MPWLDECTRL0 ch0 (0x021b080c) = 0x00000000
   MMDC_MPWLDECTRL1 ch0 (0x021b0810) = 0x000B000B

   Read DQS Gating calibration
   MPDGCTRL0 PHY0 (0x021b083c) = 0x0144013C
   MPDGCTRL1 PHY0 (0x021b0840) = 0x00000000

   Read calibration
   MPRDDLCTL PHY0 (0x021b0848) = 0x40403438

   Write calibration
   MPWRDLCTL PHY0 (0x021b0850) = 0x40403830


Success: DDR calibration completed!!!

💦更新下inc文件,在从小加载,然后做超频测试.
💦注意:如果没有校准,直接做超频测试回


uboot中DDR初始化的修改

💦uboot编译生成u-boot.imx。u-boot.imx已经包含了IVT DCD数据。
💦 那么u-boot.imx的头部信息是怎么添加的?
💦u-boot.imx的DCD中的DDR初始化代码该怎么修改。
💦uboot编译会输出

 ./tools/mkimage -n board/freescale/mx6ull_alientek_emmc/imximage.cfg.cfgtmp -T imximage -e 0x87800000 -d u-boot.bin u-boot.imx

💦 根据编译指令可以看出uboot使用/tools/mkimage工具,向u-boot.bin添加board/freescale/mx6ull_alientek_emmc/imximage.cfg.cfgtmp文件信息,从而得到u-boot.imx。
💦 在没有编译前,只有imximage.cfg文件,所以imximage.cfg里面保存的就是DCD数据。DDR初始化也此文件里面。
我们要修改DDR初始化代码,就需要修改imximage.cfg文件。此文件默认复制的NXP给IMX6ULL EVK开发板写的,默认是给512MB DDR3L写的。

在这里插入图片描述
💦 上述就是图片里就有DDR的初始化寄存器,在这个文件里,修改校准后的寄存器的值,即可完成uboot下的DDR初始化。

💦 然后在重新编译下uboot在核对下imximage.cfg和imximage.cfg.cfgtmp的寄存器是否一致。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1622235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试实战哦

软件测试 测试用例:为了特定的目的而设计的一组测试输入,执行条件和预期结果的文档 用例ID,用例标题,测试项目,用例级别,预置条件,输入数据,执行步骤,预期结果 软件开发…

【项目经理沟通之道】项目管理必会的思维分析工具 07

作项目管理,除多沟通同步外,关键核心点,要学会诱导相关人,参与进来,真正认为自己是项目一份子,才能心往一处想,劲往一处使,团结一心才能干大事。 人性永远都是只对自己有益事情感兴…

游戏工作室为什么要使用海外住宅IP防封?

当谈到游戏工作室时,它们通常以多开游戏账号来获取收益为主要目标。这种商业模式在游戏产业中已经成为一个独特而且颇具潜力的领域。然而,随之而来的是防封问题,特别是当游戏工作室试图通过多开账号来赚取更多收益时。因此,我们有…

短视频账号矩阵系统==技术源头开发

短视频账号矩阵系统技术源头开发 一、短视频矩阵功能构建: 1. 关键词批量比距生成(区域词行业词产品词) 2. 多平台多账号一站式运营管理 3. 视频内容批量复制生成 4. 视频内容批量多平台投放 5. 视频数据分析及粉丝画像分布统计 6. 智能…

mongodb 分片集群认证

增加认证 副本间认证外部使用认证 如果是开启状态,先关闭路由,再关闭配置服务,最后关闭分片数据复本集中的每个mongod,从次节点开始。直到副本集的所 有成员都离线,包括任何仲裁者。主节点必须是最后一个成员关闭以避免潜在的回滚.最好通过 db.shutdow…

Git学习笔记(四)远程仓库

根据前面几篇文章的介绍,在本地使用Git基本不成问题了,常用的基本命令和一些基本概念基本也介绍完毕了。这一张主要讲讲远程仓库的创建和使用。 概念 其实在前面第一篇文章中,我们就简单介绍过远程仓库,它其实就是一个托管在远程服…

用于肺结节分类的常规 EHR 的纵向多模态Transformer集成成像和潜在临床特征

Longitudinal Multimodal Transformer Integrating Imaging and Latent Clinical Signatures from Routine EHRs for Pulmonary Nodule Classification 摘要 该研究提出了一种基于Transformer 的多模态策略,用于将重复成像与常规电子健康记录(EHRs&…

【QT学习】9.绘图,三种贴图,贴图的转换,不规则贴图(透明泡泡),简单绘图工具制作

一。绘图的解释 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。 QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDev…

亚马逊云科技提高企业生产力神器Amazon Q评测分析

一年一度的全球云计算春晚,亚马逊云科技Re:invent在2023年11月27于Vegas震撼来袭,其中最令人关注的就是CEO Adam在Keynote中分享的内容。其中一个新内容就是提升生产力神器: Amazon Q,可以说它重新定义了企业的工作模式。那具体它神在哪里呢&…

Flutter 有什么优异特性和革命性创新之处?

Flutter 有什么优异特性和革命性创新之处? 什么是 Flutter? Flutter mobile app SDK是一种新的方式来构建漂亮的原生移动应用程序,摆脱过去常见的“千篇一律”的应用程序。用过Flutter的人都对它赞赏有加; 相比较其他新型系统&#xff0c…

ETL工具-nifi干货系列 第十七讲 nifi Input PortOut Port 实战教程

1、端口(Port),包含输入端口(Input Port)和输出端口(Out Port ) 使用一个或多个处理组构建的数据流需要一种方式将处理组连接到其他数据流组件。 处理组和处理组之间可以通过使用端口来进行连…

<网络> HTTP

目录 前言: 一、再谈协议 (一)认识URL (二)Encode 和 Decode 二、HTTP 协议 (一)协议格式 (二)见一见请求 (三)见一见响应 三、模拟实现响…

github Copilot的使用总结

1. 代码建议和补全 GitHub Copilot 的基本使用涉及编写代码时的实时代码建议和补全。一旦你已经安装并配置好 GitHub Copilot 插件,你可以在支持的编辑器(如 Visual Studio Code)中开始使用 Copilot。以下是一些基本的使用步骤: …

hadoop文件操作代码实现

hadoop文件操作 目录 一、文件的上传 删除 查看 1.整体代码 2.代码运行 3.查看证实 4.具体代码解析 1)向Hadoop传文件 2)向本地Windows传文件 3)删除Hadoop的文件 4)判断文件是否存在 二、列出文件 1.整体代码 2.代码…

代码随想录算法训练营Day8 | ● 344.反转字符串● 541. 反转字符串II● 54.替换数字● 151.翻转字符串里的单词● 55.右旋转字符串

(记得重学) ● 344.反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一…

Unity 异常 bug

OverlapBoxNonAlloc 使用bug 环境: Unity2021.3.15 在测试场景中使用 OverlapBoxNonAlloc 测试检测没有问题 但是到了真实应用场景,使用 OverlapBoxNonAlloc 检测移动中的小怪 小怪碰撞体为:带有 Rigidbody 的Circle Collider 2D 就会出现异…

RustGUI学习(iced)之小部件(二):如何使用滑动条部件

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 概述…

力扣HOT100 - 994. 腐烂的橘子

解题思路: 因为要记录轮数(分钟数),所以不能一口气遍历到底,所以不能用深搜(bfs),而要用广搜(bfs,层序遍历)。 先记录下新鲜橘子数,…

MyBatis Dynamic SQL基本使用

MyBatis Dynamic SQL基本使用 一、概念二、特性Hamcrest是什么 三、MyBatis Dynamic SQL 快速入门3.1 环境准备3.2 定义表和列3.3 创建 MyBatis3 映射器3.4 使用 MyBatis3 执行 SQL 四、数据库对象表示4.1 表或视图表示4.2 表别名4.3 列表示 五、Where 子句支持5.1 简单的 wher…

什么样的文件传输调度产品 可以简化IT工作流程?

文件传输调度是企业数据管理中的一个重要环节,企业在存在多个分支机构、子公司,或者多个数据中心、服务器节点的时候,都会需要进行文件传输调度,在使用传统的FTP、rsync等传输方式在应对这些复杂的文件交换需求时,会存…