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.

[参考译文] AM2431:AM2431 上出现意外的 LPDDR4 寄存器写入行为

Guru**** 2779905 points

Other Parts Discussed in Thread: AM2431, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1613147/am2431-unexpected-lpddr4-register-write-behavior-on-am2431

器件型号: AM2431
主题: SysConfig 中讨论的其他器件

我们将 AM2431 与 LPDDR4 一起使用、并在写入 DDRSS 寄存器时观察到几种意外行为。
我们还确认 DDR 配置文件是使用最新的 SysConfig 工具生成的。

我们想问:
这是预期行为还是问题?
如果符合预期、硬件在什么情况下会以这种方式运行?

以下是我们看到的现象:

1.写入 DDR16SS0_PI_0 (0x0F30A000) 似乎会改变其他 PI 寄存器
使用:
CPS_REG_WRITE(LPDDR4_AddOffset(&(ctlRegBase->DENALI_PI_0), regOffset), regValue)

一些不相关的寄存器(例如 DDR16SS0_PI_53)会接收诸如 0xFF 的意外值、这些值未在头文件中定义。

2、写入值与实际寄存器值不同
使用:
CPS_REG_WRITE(LPDDR4_AddOffset(&(ctlRegBase->DENALI_PI_0), regOffset), regValue

示例(例如,DDR16SS0_PI_145 (0x0F30A244)):

预计:0x00010003
实际读回:0x40010003

写入后一个位意外设置。

仅 PHY_REG 区域 0x0F30D000 至 0x0F30D0AC 出现被一个寄存器移位的情况
写入 DDR16SS0_PHY_1360 后、PHY_REG (0x0F30D000 至 0x0F30D0AC) 块出现偏移 1。

我们的问题

对于 DDRSS/PHY 初始化、这些症状是否正常?
如果是、在哪些情况下可以:

寄存器内容暂时更改、
就会受到相邻寄存器的影响、
PHY 寄存器寻址出现移位?

如果这不符合预期、我们将感谢您提供指导。
感谢您的支持。
Kanno, Itsuki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是预期行为。  一些寄存器会启动硬件序列、从而更改其他寄存器(例如状态寄存器)中的值。  寄存器组之间存在相当多的相互依赖关系、太多细节问题。  请注意、我们不希望客户像您一样手动设置寄存器。  您应使用 dev.ti.com/sysconfig 上的 DDR 寄存器配置工具来配置 DDR 子系统中的所有寄存器。

    此致、

    James

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    James、

    感谢您的澄清。
    据我所知、由于寄存器之间的相互依赖性、我观察到的行为是预期行为、并且不假定进行手动寄存器配置。

    根据您的指导、我将依靠 SysConfig 中的 DDR 寄存器配置工具来设置 DDR 子系统。

    此致、
    Kanno, Itsuki