【ATU Book-i.MX8 系列-DDR】NXP i.MX8M Mini 之替换为 Winbond 512 MB DDR 方法大公开 ( 上 )

一. 前言

世平集团针对 DDR 相关技术整理了一系列博文,下图为详细的博文索引架构;笔者希望能够透过这些博文协助大家更了解如何在 i.MX8 相关平台上使用 DDR,未来笔者也会持续更新此系列的相关博文还恳请支持!而本篇博文会针对 DDR 相关技术索引架构中的【ATU Book-i.MX8 系列-DDR】NXP i.MX8M Mini 之替换为 Winbond 512 MB DDR 方法大公开 ( 上 ) 这篇文章做介绍,本篇博文会对 DDR 颗粒的参数填写做叙述接下来让我们开始进入正题吧!

博文架构


市面上有很多家记忆体厂商,那要怎么在 NXP 的平台上替换不同厂牌的记忆体颗粒呢? 而替换记忆体颗粒以后又要怎么确保这颗记忆体可以正常使用呢? 对于此问题 NXP 提供了 Register Programming Aid ( RPA ) 文件与 DDR Stress Test Tool 来解决以上困扰。我们可以将 DDR 的参数填入 RPA 文件中,再透过 DDR Stress Test Tool 做 Calibration 与 Stress Test 验证填入之参数没问题,并重新编译程式等一系列操作后就可以在 NXP 平台上使用不同厂商的记忆体了。本博文将会以使用 Winbond 的 512 MB DDR 为范例,实际带领各位读者做以下示范:


(1) 将 Winbond 的 512 MB DDR 参数填入 RPA 文件。

(2) 透过 DDR Stress Test Tool 完成 Calibration,并佐证参数配置没问题。

接着请各位跟着笔者的脚步一步步完成这些操作吧!


a. 系统流程图

流程图

本篇博文会依照以下议题做介绍及探讨:


(1) 如何填写 RPA 文件。

(2) 透过 DDR Stress Test Tool 做 Calibration 及压力测试。

(3) 最后产出 "lpddr4_timing.c"。

二. Winbond 512 MB DDR 概述

本章节将针对 Winbond 的 512 MB DDR 做简述 ( 在此不列出详细型号 )。此 DDR 颗粒的尺寸大小为 10 mm x 14.5 mm 是一颗 200 Ball 的 LPDDR4 颗粒。200 Ball 的意思是指 IC 上有 200 根 Pin 脚,而每家厂商的 Pin 脚分布多少都会有些差异,随著厂商的不同 Pin 脚的定义也会略为不同。这些资讯我们都可以从 Datasheet 中找到,碍于著作权的关系在此不多做说明。

值得一提的是 Datasheet 中还会有一页在叙述 DDR 颗粒的组态资讯,而这些资讯包含:

(1) 此颗粒有几个 Die:

从 Datasheet 中可得知本颗粒有 2 个 Die。而 Die 的数量跟 DDR 颗粒内部线路接法和 Pin 脚有关。

(2) 总容量为多少:

本颗粒总容量为 4 Gb ( 512 MB )。

(3) 几个 Channel:

本颗粒有 2 组 Channel。基本上 1 个 Die 会接到 1 组 Channel。

(4) Bank 数量:

本颗粒每 1 Channel 上有 8 个 Bank。而 Bank 再往下拆分,就是各个储存单元;横向的称为 Row,直向的称为 Column。

(5) Bank Address 数量:

本颗粒 的 Bank Address 数量是 3 ( B0 ~ B2 )。

(6) Row Address 数量:

本颗粒 的 Row Address 数量是 14 ( R0 ~ R13 )。

(7) Column Address 数量:

本颗粒 的 Column Address 数量是 10 ( C0 ~ C9 )。

以上列出的 7 个重点在后续章节填写 RPA 文件时都会用到,随著 DDR 容量的不同这些参数也会有所不同。对于填写 RPA 文件而言主要就是在填写这些参数让 RPA 文件产生出不同的结果 ( .ds 档 ),接着让我们继续看下去吧!



三. DDR Stress Test Tool 使用

a. 环境设置

请至 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8M-Family-DDR-Tool-Release/ta-p/1104467 下载最新版的 DDR Stress Test Tool。 ( 笔者撰写此文章时最新版为 3.10 版,所以选择 mscale_ddr_tool_v310_setup.exe.zip )。

mscale_ddr_tool_v310_setup.exe.zip

接着请点击 i.MX8MMini (m845S) DDR Register Programming Aid (RPA)。

接着请点击 i.MX8MMini (m845S)

本博文的实作平台是 i.MX8M Mini 并且使用的是 LPDDR4 的颗粒,请对应平台下载最新版的 LPDDR4 RPA 文件。 ( 笔者撰写文件时的最新版本是 16 版,所以选 MX8M_Mini_LPDDR4_RPA_v16.xlsx )

MX8M_Mini_LPDDR4_RPA_v16

b. 设置 RPA 文件


先将下载来的 MX8M_Mini_LPDDR4_RPA_v16.xlsx 重新命名为 MX8M_Mini_LPDDR4_RPA_v16_Winbond_512MB.xlsx。

MX8M_Mini_LPDDR4_RPA_v16_Winbond_512MB

开启 MX8M_Mini_LPDDR4_RPA_v16_Winbond_512MB.xlsx 后,点选 Sheet "Register Configuration"

点选 Sheet

接下来我们需要搭配 Winbond 的 Datasheet 对 RPA 文件进行配置;基本上 RPA 文件中的橘色背景处就是我们需要修改的地方。

橘色区域

搭配 Datasheet 设置 "Density per channel per chip select (Gb)" 栏位。

Density per channel per chip select

搭配 Datasheet 设置 "Number of Chip Selects used" 栏位。

Number of Chip Selects used


搭配 Datasheet 设置 "ROW" 与 "COLUMN" 栏位。

ROW

配 Datasheet 设置 "Number of BANK addresses" 栏位。

Number of BANK addresses

c. 产出 .ds 档

以下将会叙述如何将稍早修改的 RPA 文件转成 ".ds" 档。而存为 ".ds" 档的目的是为了让 DDR Stress Test Tool ( MSCALE_DDR_Tool.exe ) 可以 Load DDR 颗粒参数并做 Calibration。

请在 Excel 中切换到 "DDR Stress Test Script" 这个 Sheet 以后,全部选取再按右键复制

DDR Stress Test Script

将复制的内容贴到 ".ds" 去。笔者的做法是先建立了一个 txt 档之后,再贴入上述复制的内容最后把 txt 重新命名为 "MX8M_Mini_LPDDR4_RPA_v16_Winbond_512MB.ds"。

ds

d. 透过 Tool 验证 DDR 参数

以下将实际操作如何透过 DDR Stress Test Tool ( MSCALE_DDR_Tool.exe ) 做 Calibration、Generate Code、Stress Test。请跟着笔者的脚步一步步操作吧!

先将下载来的 "mscale_ddr_tool_v310_setup.exe.zip" 解压缩并执行 "mscale_ddr_tool_v310_setup.exe" 后,最终可取得 "mscale_ddr_tool_v310" 资料夹。

mscale_ddr_tool_v310_setup

进入 "mscale_ddr_tool_v310\mscale_ddr_tool_v3.10" 后,开启 "MSCALE_DDR_Tool.exe"。


MSCALE_DDR_Tool.

将 PC 连接上 i.MX8M Mini 开发板 ( 详细接法请参考以下示意图 )。

将 PC 连接上开发板

请确保开发板的 Boot Mode 是选择 Serial Download Mode。

Serial Download Mode

接着,请依照以下步骤操作程式:

(1) 点击 "Search",选好 COM Port 。

(2) 按下 "Connect"。

(3) 点击 "Load DDR Script" 汇入 ".ds" 档。

(4) 选择平台 ( 本博文使用的平台为 i.MX8M Mini )。

(5) 点击 "Download"。

确保板子有完成以下动作

以下为按下 "Download" 后的截图。 ( 我们可以从 Log 中看到,稍早设定在 RPA 文件中的参数 )

按下 “Download” 后的截图

(6) 接着,请点击 "Calibration"。

请点击 “Calibration”

当 Calibration 结束后,"Gen Code" 的按钮就会出现。

(7) 此时请点选 "Gen Code",此 Tool 会在 "mscale_ddr_tool_v3.10" 目录下产生出 "lpddr4_timing.c",而这支 "lpddr4_timing.c" 之后需要重新编译并打包到 Bootloader 中。

Gen Code

最后可以点选 "Stress Test" 进行压力测试确保 DDR 运作稳定。

补充:如果时间充裕的话可以勾选 "Over Night Test" 选项,测试个几天几夜。

进行压力测试



四. 结语

本篇博文介绍了查看 DDR Datasheet 的时候需要注意哪些重点,也示范了如何将 Winbond 的 512 MB DDR 参数填入 RPA 文件中并做 Calibration 与 Stress Test,最后产出 "lpddr4_timing.c" 档。如果做了 Calibration 与 Stress Test 都没有问题,那就离“使用此 DDR 颗粒开机”这个目标不远了;若是要达成“使用此 DDR 颗粒开机”这个目标还需要将 "lpddr4_timing.c" 档打包进 Bootloader 中并且根据 DDR Size 修改程式,后续笔者会再撰写一篇博文针对使用 Winbond 512 MB DDR 开机议题做叙述,再请各位读者到大大通搜寻【ATU Book-i.MX8 系列-DDR】NXP i.MX8M Mini 之替换为 Winbond 512 MB DDR 方法大公开 ( 下 )。希望各位读者看完此篇文章后对填写 RPA 文件会有更深刻的体会,假设读者们在看 DDR Datasheet 填写 RPA 文件时有遇到问题也欢迎找世平集团一起讨论。


五. 参考文件
 
 

★博文内容参考自 网站,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

参考来源

false: https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8M-Family-DDR-Tool-Release/ta-p/1104467

评论