主题中讨论的其他器件: TPS51200
大家 好
我正在尝试使用具有66AK2G12、TPS51200和 DDR3L 存储器的定制板、但它的行为似乎是随机的、我需要您的帮助。
第一个问题是无法将其引导至 USB-DFU 模式。 无论我尝试哪种 BOOTCFG、我都看不到 USB0_DM/DP 引脚上有任何活动。 当然、PC 在 USB 端口中未检测到新的 USB 设备。 除了 BOOTCFG 之外、是否有任何细节可以让 CPU 进入 USB-DFU? 同时、UART 引导加载程序的工作毫无瑕疵。
下一个问题是、我观察到高功耗和 TPS51200、DDR3L 芯片触控发热。 我假设这是由引导加载程序将 DDR3_RESETn 置为无效并发出 NOP 导致的、这会将 DDR3_WEN 和其他引脚提升至 DVDD_DDR、而 TPS51200则通过端接电阻器将所有引脚都拉至 DVDD_DDR/2。 它应该是怎样的?
但是、无论如何、对于 TPS51200和 Fly-by 终端、我都无法运行 U-Boot。 它只是挂起。 我已经修改了源代码、可以跟踪它、直到 get_ram_size 函数。 我已对其进行修改、将图形写入存储器、并将其读回以验证其功能。 事实证明、它在 RAM 访问尝试时挂起。 我尝试了各种设置(包括由"K2 DDR3 Register Calc v1p60.xlsx"计算得出的设置)、但唯一可行的配置是 ddr3phy_800_512MB/DDR3_800_512MB。 这允许执行几个读取/写入步骤、读取垃圾、然后最终停止。
相比之下、我从第二个完全相同的 PCB TPS51200中去色、将其替换为无源分压器和 DDR3_VREFSSTL 网络上的电容器、去色终端无源器件。 通过使用 ddr3phy_800_512MB/DDR3_800_512MB U-Boot 进行这些更改、可以正确且无限期地读取/写入内存。 我进行了很多测试、有时我看到 DDR3在整个运行期间能够在无限的时间内正常工作。 对电路板进行复位/下电上电会导致行为发生变化:有时仍然正常、有时会看到间歇性读/写错误。 此行为在整个运行期间保持不变。 这是否可能与有时无法实现的读取/写入矫正相关? 我可以尝试修改哪些配置选项以使其更加一致?
现在、如果 RAM 正常工作、我允许 U-Boot 继续执行、并且在大多数情况下、U-Boot 在 LOAD.S 处的 COPY_LOOP 结束后停止 在极少数情况下、它可能会通过该测试并从 RAM 运行 U-Boot、但大多数情况下它会在这里停止。 在 CPU 挂起后、我观察到功耗较低、因此我认为此时 CPU 的 DDR3-unit 停止运行和/或 RAM 停止刷新、但可能是错误的。 在 DDR3上运行期间、CPU 会挂起什么? 我的意思是、即使读/写操作正常工作、在 U-Boot 尝试修复重定位代码的地址时、仍会挂起 CPU、但在将代码本身复制到 RAM 时不会这样做。
另一个问题是、我无法使 CPU DDR3控制器使用全部32位。 使用 ddr3phy_800_512MB/DDR3_800_512MB 时、它仅访问16位附加存储器。 我使用"K2 DDR3 Register Calc v1p60.xlsx"来计算正确的值、但没有结果。 我有支持 DDR3-1600的 SK Hynix RAM 模块、但计算它们以在 DDR3-800上运行也没有什么帮助。 任何计算出的配置都会在第一次 RAM 访问时立即停止。 然后、我尝试将 ddr3phy_800_512MB/DDR3_800_512MB 修改为32位、但这也不起作用。 我 将1放入.datax8_2_val 和.datax8_3_val、并在.sdcfg 中将 nm 从2更改为1。
我的反激式链首先访问第16-31位、然后仅访问第0-15位;我是否必须对此进行解释、它是否会以某种方式影响这一点?
在 PCB 上针对 DDR3信号完成长度匹配。
由于只能使用 UART 引导加载程序、我必须通过 UART 上载 U-Boot、这需要将近2.5分钟的时间。 此延迟是否会以某种方式影响稍后 U-Boot 尝试的 DDR3初始化?
请回答上述问题。 如果你能就如何进一步解决这些问题向我提出建议,我将不胜感激。
提前感谢。




