This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
有关采用 DDR MT53E512M32D1ZW-046 AUT:B 培训的 TDA4VM 的问题:
1.内部 DDR 寄存器 MR11、MR12、MR14和 MR22通过哪个寄存器配置 TDA4VM? TDA4VM 的 DDRSS_CTL_179是否会修改 DDR 的内部 MR12寄存器?
2.何时分别执行 TDA4VM 的命令总线训练、读 DQ 训练和写训练? 当环境温度变化时、TDA4VM 是否会自动进行 DDR 训练? 动态调整的刷新率是否与 DDR 培训相关?
3.在命令总线训练、读取 DQ 训练和写入训练后,是否会更新 DDR 中的 MR11、MR12、MR14和 MR22寄存器?
4.在 jacinto7 DDRSS regconfig 工具中、在 DRAM IO 配置中配置 MR12寄存器 CA VREF 25.6%(对应于 DDR 数据表中的0x12)。
然而、工具生成的代码 DDRSS_CTL_179为0x27270056、相应的百分比0x27为38.3%、这与 DDR 数据表不对应。 如何转换工具生成的值以及 DDR 数据表中的值?
5.我们测量了不同的电路板、且在启动后和启动一段时间后、DDRSS_CTL_179的读数始终为0x270056。 在温度发生变化(85°C 到-40°C)后、该值也保持不变、在低温重启后、该值也保持不变。 DDR 何时进行培训?
6.当 Micron 实验室帮助我们测试信号完整性时,他们报告我们提供的 MR12和 MR14不准确,他们最终使用的 CA VREF 为20.5%,而 DQ VREF 为21.5%。 且测试通过。
7.我们有一个在低温(-40℃)下运行一段时间(如2小时)后异常重启的电路板,在室温下是正常的。 我可以问如何捕获日志来帮助确定重启是否是由异常 DDR 引起的吗? 在重新启动之前、UART 接口捕获的当前日志未更改。
1. TDA4VM 通过哪个寄存器为内部 DDR 寄存器 MR11、MR12、MR14和 MR22配置?[/QUOT]TDA4 DDRSS 使用 DDRSS PI 寄存器组中编程的值、在初始化期间对 LPDDR4模式寄存器进行编程。 例如、MR11在以下寄存器中定义(每个寄存器的位31:24):
Denali_PI_281
Denali_PI_283
Denali_pi_285
Denali_pi_287
Denali_PI_289
Denali_pi_291
Denali_PI_293
Denali_PI_295
Denali_pi_2972. 何时分别执行 TDA4VM 的命令总线训练、读取 DQ 训练和写入训练? 当环境温度变化时、TDA4VM 是否会自动进行 DDR 训练? 是否动态调整与 DDR 培训相关的刷新率?所有训练都在初始化期间进行。 在任务模式期间、写入 DQ 训练算法也应定期运行。 写入 DQ 延迟的定期重新训练是在 DDR 寄存器配置工具0.5.0版中启用的(早期版本不支持定期训练)。
3. DDR 中的 MR11、MR12、MR14和 MR22寄存器是否会在命令总线训练、读取 DQ 训练和写入训练后更新?[/QUOT]MR11和 MR22没有接受培训。 在初始化期间执行相应的训练后、MR12和 MR14中的值将更新。
4. 在 jacinto7 DDRSS regconfig 工具中、在 DRAM IO 配置中配置 MR12寄存器 CA VREF 25.6%(对应于 DDR 数据表中的0x12)。
然而、工具生成的代码 DDRSS_CTL_179为0x27270056、相应的百分比0x27为38.3%、这与 DDR 数据表不对应。 如何转换工具生成的值和 DDR 数据表中的值?[/QUOT]我想您在存储器数据表中查看的表(表53)适用于 LPDDR4 X (0.6V IO)。 LPDDR4和 LPDDR4X 具有不同的 MR12/MR14值。
[/quote][/quote]5. 我们测量了不同的电路板、在启动后和启动一段时间后、DDRSS_CTL_179的读数值始终为0x270056。 在温度发生变化(85°C 到-40°C)后、该值也保持不变、在低温重启后、该值也保持不变。 DDR 何时执行培训?[/QUOT]TDA4 DDRSS 控制器寄存器将不会反映经过训练的 MR12/MR14值。 您可以观察到来自 TDA4 DDRSS PI 寄存器(见下面的列表)的经过训练的 MR12 / MR14值、其中 MR12 =寄存器的位7:0、MR14 =位15:8。 该寄存器有8个副本、因为 TDA4支持两个通道和两个列(共4个)、而 LPDDR4存储器支持两个频率副本。
DDRSS_PI_282
DDRSS_PI_284
DDRSS_PI_286
DDRSS_PI_288
DDRSS_PI_290
DDRSS_PI_292
DDRSS_PI_294
DDRSS_PI_296
DDRSS_PI_298[/quote]6. 当 Micron Laboratory 帮助我们测试信号完整性时、他们报告说我们提供的 MR12和 MR14不准确、他们最终使用的 CA VREF 为20.5%、而 DQ VREF 为21.5%。 且测试通过。我不太理解这个问题。
7. 我们设计的电路板在低温(-40℃)下运行一段时间(如2小时)后会异常重启、这在室温下是正常现象。 我可以问如何捕获日志来帮助确定重启是否是由异常 DDR 引起的吗? UART 接口捕获的当前日志在重新启动前未更改。我不知道异常 DDR 必然会导致器件重新启动。 通常、影响指令代码的数据损坏会导致 CPU 崩溃。 不过、您可以尝试运行存储器测试来查看它是否生成任何故障。 Linux SDK 随附可从终端窗口执行的 memtester。
此致、
[/quote][/quote][/quote][/quote]
Kevin
所有训练均在初始化期间进行。 在任务模式期间、写入 DQ 训练算法也应定期运行。 写入 DQ 延迟的定期重新训练是在 DDR 寄存器配置工具0.5.0版中启用的(早期版本不启用定期训练)。[/QUOT]我们的操作系统是 QNX、DDR 寄存器配置 工具版本是0.10.0、工具配置的 DDRSS_PI_280值是0x00160f27、我实际上测试了 DDRSS_PI_280使用命令"k3conf 读取02992460"并获得"value at addr 0x2992460 = 0x00161d13"、而"value at addr 0x2992460 = 0x00161d13"、有时在启动 初始化、时间之后、重新测试仍然保持不变、等待启动时间。 写入 DQ 延迟的定期重新训练是否自动进行?
我想您在存储器数据表中查看的表(表53)适用于 LPDDR4 X (0.6V IO)。 LPDDR4和 LPDDR4X 具有不同的 MR12/MR14值。
是的、我得到了错误的表、使用表200 Vref 值与 DDR 寄存器配置工具的值匹配。
TDA4 DDRSS 控制器寄存器将不会反映经过训练的 MR12/MR14值。 您可以观察到来自 TDA4 DDRSS PI 寄存器(见下面的列表)的经过训练的 MR12 / MR14值、其中 MR12 =寄存器的位7:0、MR14 =位15:8。 该寄存器有8个副本、因为 TDA4支持两个通道和两个列(共4个)、而 LPDDR4存储器支持两个频率副本。 [报价]我发现 DDR 配置工具频率集1和集2是相同的,设置0是55MHz,所以什么 是系统工作 频率, 设置1还是设置2 ?
我仍然很困惑、 DDRSS_PI_280寄存器和 DDRSS_CTL_179之间有何差异、说明都是"要编程到存储器模式寄存器12中以进行芯片选择0"。
[/quote]6. 当 Micron Laboratory 帮助我们测试信号完整性时、他们报告说我们提供的 MR12和 MR14不准确、他们最终使用的 CA VREF 为20.5%、而 DQ VREF 为21.5%。 且测试通过。根据配置工具 MR12 ,我们配置了0x27,Micron=25.6%*CS=282mV,Micron VCC 的实际测试认为 Vref =225mV,更容易通过测试,但实际的测试中心仍然更倾向于低水平的 Vref。 CK 中心到 CA 眼部中心很好,稍微偏左,使用 Vref =225mV,微米测试仪认为它是可以接受的。 我觉得 CS 和 CK 之间的延迟有一些问题、是否需要改变? 我刚刚在我自己的板上运行了 MR12=0x13、Vref = 17.6%读取、Vref = 193.6
我不知道异常 DDR 必然会导致器件重启。 通常、影响指令代码的数据损坏会导致 CPU 崩溃。 不过、您可以尝试运行存储器测试来查看它是否生成任何故障。 Linux SDK 随附可从终端窗口执行的 memtester我们在使用 memtester 工具执行高温和低温 DDR 应力测试的过程中发现了问题。 memterster 日志在重新启动之前未显示任何异常、但突然停止旋转、然后等待了大约16秒、系统才重新启动。 奇怪的是、由于板卡开机异常导致的重启通常没有延迟16秒。 所以我觉得板上的功耗不存在问题、这块板已经是大规模生产的板了、但是最近又发生了变化。 我们总共测试了4个电路板、另外3个电路板在室温下的高温和低温压力测试中没有问题。 只有此电路板会在低温下重新启动、有时会在运行两小时后、有时会在运行60小时后、但在室温下不会出现重新启动问题、并且无论是否运行 DDR 压力脚本、它都会在低温下重新启动。 这次重启是否可以与上述操作相关?
[/quote][/quote]
是否自动对写入 DQ 延迟进行定期重新训练?
定期写入 DQ 训练自动发生、但仅重新训练延迟。
我发现 DDR 配置工具频率设置1和设置2是相同的、设置0是55MHz、所以这 是系统工作 频率 、设置1还是设置2?
DDR 配置工具的版本0.10.0支持 TDA4VM 的所有频率集;但是、设置2是系统初始化后将运行的位置。
[报价 userid="490987" url="~/support/processors-group/processors/f/processors-forum/1439609/tda4vm-q1-questions-about-tda4vm-ddr-training/5522374 #5522374"]我仍疑惑、 DDRSS_PI_280寄存器与 DDRSS_CTL_179之间有何区别、说明均为"编程到存储器模式寄存器12中用于芯片选择0的数据"。[/QUOT]这在逻辑中是重叠的。 DDR 子系统由控制器和 PHY 组成(PHY 包括 PI 或"Phy 独立"块)。 PHY 被设计为能够在没有控制器的情况下执行基本功能、例如初始化 LPDDR4存储器。 控制器 还能够读取和写入 LPDDR4模式寄存器。 但是、TDA4x 仅支持使用 PHY 来初始化 LPDDR4存储器。 因此、在初始化期间相关的是 PI MR 寄存器。
/support/processors-group/processors/f/processors-forum/1439609/tda4vm-q1-questions-about-tda4vm-ddr-training/5522374根据 VCC 配置工具 MR12、我们配置了0x27、Vref =25.6%*DDR=282mV
这只是配置工具中的默认设置。 MR12将在初始化期间更改。 您可以读出下面的寄存器吗?
DDRSS_PI_282
DDRSS_PI_284
DDRSS_PI_286
DDRSS_PI_288
DDRSS_PI_290
DDRSS_PI_292
DDRSS_PI_294
DDRSS_PI_296
DDRSS_PI_298
但实际的眼睛测试中心仍然更倾向于低的 CS
从示波器图中可以看出、CS 的电压摆幅超过600mV、而 CA 的电压摆幅小于450mV。 这里的问题是、CA/CS 在 LPDDR4上共享 VREF、因此两个中的其中一个的 VREF 不在中点。
您可能会尝试将 CA 驱动强度设置为40欧姆、CS 驱动强度设置为80欧姆、将 CA/CS ODT 设置为80欧姆(或 RZQ/3)。
我们发现在使用 memtester 工具执行高温及低温 DDR 应力测试的过程中存在问题。 在重新启动之前、memterster 日志未显示任何异常、但突然停止旋转、然后等待了大约16秒、系统才重新启动。
您最初提到的是低温、但现在也提到了高温。 如果处于高温、可能是热关断、我想这是在更新的 SDK 中添加的逻辑。
不过、如果您怀疑 DDR 存在问题、作为调试步骤、您可以尝试降低 DDR 频率。 但是、如果 DDR 实际上处于边缘地位、我会怀疑器件并不会始终以相同的方式出现故障。
此致、
Kevin
这只是配置工具中的默认设置。 MR12将在初始化期间更改。 您可以读出下面的寄存器吗?
DDRSS_PI_282
DDRSS_PI_284
DDRSS_PI_286
DDRSS_PI_288
DDRSS_PI_290
DDRSS_PI_292
DDRSS_PI_294
DDRSS_PI_296
DDRSS_PI_298
按如下顺序:(DDRSS_PI_282:CS1、frequency set0、我们的 LPDDR4使用 CS0和 CS1)
地址0x2992468 = 0x00160000处的值
地址0x2992470 = 0x00161f14处的值
地址0x2992478 = 0x00161d13处的值
地址0x2992480 = 0x00160000处的值
地址0x2992488 = 0x00161f13处的值
地址0x2992490 = 0x00161c12处的值
地址0x2992498 = 0x00160000处的值
地址0x29924a0 = 0x00161c14处的值
地址0x29924a8 = 0x00161b14处的值
您可能要尝试的一件事是:将 CA 驱动强度设置为40欧姆、将 CS 驱动强度设置为80欧姆、将 CA/CS ODT 设置为80欧姆(或 RZQ/3)。 [报价]我发现 tCIVW-L/tCIVW-R/VCIVW-Mask-Top/VCIVW-Mask-Bottom sepc 大于0ps/0mV 是正常的。 由于 测试报告显示"in spec (规格)"、我们当前已将默认 DDR 配置导入到生产中。
这是一个严重的问题, CK 不是在 CA 和 CS 的眼睛?它是否必须改进?
如果我想继续改善 CK 在 CS/CA 眼中的问题、我应该尽量使 CS 和 CA 的振幅尽可能接近、对吧?
请帮助检查 、是否根据下表中的红色框进行修改可以?我找不到 CS ODT 终端配置选项。
、、,另一个项目 、使用相同的 TDA4VM 与相同的 LPDDR4 ?类型和使用相同的 DDR 寄存器配置 我比较了这两个项目的报告,发现另一个项目的 CK 振幅较低,第一个项目,VIHDIFF-CK 是612mV,第二个项目,VIHDIFF-CK 是335mV,这是下面另一个项目的测试图像。
您原来提到的是低温、但现在又提到了高温。 如果在高温下、则可能是热关断、我想这是在更新的 SDK 中添加的逻辑。只有在低温条件下自动重新起动的问题才会重复出现、在室温条件下3天没有重复出现。 在高温测试期间不会发生过热、我们通过热电偶监测 SOC 的温度。
[报价 userid="51195" url="~/support/processors-group/processors/f/processors-forum/1439609/tda4vm-q1-questions-about-tda4vm-ddr-training/5523957 #5523957"]但是、如果您怀疑有 DDR 问题、您可以尝试降低 DDR 频率作为调试步骤。 但是、如果 DDR 实际上处于边缘、我会怀疑器件并不会始终以相同的方式出现故障。[/QUOT]在不久的将来、我们将尝试将 DDR Rate 降低到1333MHz、以查看问题是否再次出现。
[/quote]