Other Parts Discussed in Thread: AM5706
部件号: AM5706
您好:
我们有自己的基于 AM5706BCBDJ 和 TPS659163RGZR 的定制设计。 当 AM5706 温度超过大约 50°C 时、我们的某些电路板会出现 DPLL_ABE 初始化问题。 这种行为引起了人们对 AM5706 可靠性的担忧、尽管进行了广泛的调查、但我们仍无法解决这一问题。 我想与您联系、看看您是否对我们可以尝试的其他内容有任何建议。
AM5706 温度通过读取内部温度传感器 (MPU、GPU、CORE、DSPEVE 和 IVA) 进行测量。
- 当温度低于~50°C 时、DPLL_ABE 在上电期间正确初始化、CM_IDLEST_DPLL_ABE 寄存器显示 “快速重新锁定停止“CM_IDLEST_DPLL_ABE = 0x00000002
- 当温度高于~50°C 时、DPLL_ABE 无法初始化、寄存器保持在 “瞬态状态“CM_IDLEST_DPLL_ABE = 0x00000000
当电路板在温度高于~50°C 的情况下上电并且寄存器读数为 0 时、任何软件干预(不同的初始化序列,延迟等)都不能更改 CM_IDLEST_DPLL_ABE 的值。
在我们的二级引导加载程序中、该寄存器在 main() 的入口点已包含 0。 在 main () 之前执行的代码与 pdk_AM57xx_1_0_15 中的 sbl_init.S 和 sbl_startup.c 文件相同(我们将它们直接复制到我们的工程中)。 由于这个问题在这个早期阶段已经存在、我们认为它是与硬件相关的问题、而不是与软件相关的问题。
我们仔细测量了上电顺序、以确保其满足数据表要求。


请注意、波形中 XI_osc0 信号显示为稳定线、因为它显示了实际 20MHz 时钟的平均值。 对于 20MHz 时钟源、我们的 SYSBOOT [9:8]引脚配置为“0b01“。
我们还使用频谱分析仪验证了 20MHz 时钟的质量、并尝试了不同的振荡器、但没有成功。 下面是在出现 DPLL_ABE 问题的电路板上测量的 20MHz 振荡器的频谱。

我们还测量了为 DPLL_ABE 供电的 AM5706 焊球的电流消耗。 在我们的电路板上、VDDA_MPU_ABE 和 VDDA_PER 连接在一起。 我们插入了一个 10R 分流电阻器并使用 INA280A2 测量了电流。

~的波形(黄色迹线)在 K16+L16+M10 上显示 Δ V 4.8mA。 遗憾的是、对于正常情况和故障情况(温度< 50°C 和> 50°C)、电流波形基本相同、即使在从不显示该问题的电路板上也是相同的。

到目前为止、我们的所有测量结果看起来都是正确的、并且与数据表一致:
- 上电顺序符合 AM5706 要求
- 通过 SYSBOOT [9:8]= 0b01 正确选择 20MHz 时钟
- 时钟在 PORZ 之前很稳定且存在(超过 5ms、符合图 5-5 中的注释 7)
- 时钟精度明显优于±50ppm
- VDDA_MPU_ABE + VDDA_PER 电流为 4.8mA 并在整个温度和电路板范围内保持一致
- 由同一电源域供电的其他 PLL (DPLL_MPU 和 DPLL_PER) 在高温下会初始化而不会出现问题
- AM5706 的其余部分通常在 50°C 以上运行
唯一失败的部分是内核温度高于~50°C 时的 DPLL_ABE 上电初始化。
我们的第二块电路板也显示了此问题、但在 45–60°C 范围内故障发生的频率要高得多。 下图显示了温度变化时多次下电上电。 红线(Y 轴)表示 DPLL_ABE 初始化失败的次数、而时间和温度变化位于 X 轴上。

此外、我尝试在 DPLL_ABE 问题处于活动状态时将 JTAG 连接到电路板。 之前、连接到 Cortex-A15 内核(运行 GEL 脚本)会将 IDLEST 寄存器从 0x0 更改为 0x10。 我尝试了手动配置 DPLL_ABE 并将其锁定为该状态、但寄存器保持在 0x10。
现在、行为发生了变化、我不确定原因。 当我通过 JTAG 连接时:
- 如果在 Cortex-A15 上运行的代码包含一个持续读取 ILEST 寄存器的 while 循环、则值从 0 变为 0x02。
- 如果代码未访问 ILEST 寄存器、则从 0 更改为 0x0A。
对于我还可以测量什么或者试图推进调查、并确定在温度高于 50°C 的上电初始化期间 DPLL_ABE 为什么会失败、您有什么建议吗?
谢谢你











