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.

[参考译文] AM263P4:ECP:配置 PLL 内核后将设置 AM263P4 抖动标志

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1593041/am263p4-ecp-am263p4-jitter-flag-is-getting-set-after-configuring-pll-core

器件型号: AM263P4

尊敬的团队:

大家好。

我正在为自定义 OSPI 引导工程配置 PLL。 PLL 配置后、我转储 TOP_RCM 寄存器、并注意到 抖动高电平 标志在PLL_CORE_STATUS寄存器中设置。
读取的值为TOP_RCM_PLL_CORE_STATUS = 0xC0001E12、其中 设置了位 1

image.png

问题可能是什么、如何解决?

提前感谢...

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

    尊敬的 Sanith:

    您能否确认您在此处用于定制 OSPI 引导工程的时钟源和时钟分频器设置?  基本上、时钟源在这里很关键、如果抖动、那么它可能影响整个 SoC 的时钟。

    此致、
    Mayank Shadwani

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

    尊敬的 Sanith:

    感谢您共享寄存器转储。

    我可以从您的寄存器值中看到问题:

    [引述 userid=“637661" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1593041/am263p4-ecp-am263p4-jitter-flag-is-getting-set-after-configuring-pll-core/6140736
    TOP_RCM_TOP_RCM_PLL_CORE_STATUS 0xC0001E12
    [/报价]

    [引述 userid=“637661" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1593041/am263p4-ecp-am263p4-jitter-flag-is-getting-set-after-configuring-pll-core/6140736
    TOP_RCM_TOP_RCM_PLL_PER_STATUS 0xC0001618
    [/报价]

    TOP_RCM_PLL_CORE_STATUS显示了位 6 1'b0 、表示 PLL_CORE_STATUS_LOSSREF (基准输入损耗)。 同样、TOP_RCM_PLL_PER_STATUS显示了相同的问题。 请参阅 AM261x 寄存器附录 (https://www.ti.com/lit/ug/spruj94a/spruj94a.pdf#page=410) 的表 2-588。

    您的 PLL(内核和 PER)都没有从外部振荡器接收到有效的基准时钟。

    此致、
    Mayank Shadwani

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

    你好、 Mayank Shadwani 
    如何解决这个问题,你能建议任何步骤吗?

    按照 TRM“ 6.4.7.1.1.2 序列以配置内核 PLL“中提到的步骤、Im 将寄存器转储值与 SDK 示例工程进行了比较、除了某些寄存器外、几乎所有这些值都相同。

    由于 SDK SBL 示例项目工作正常,所以我假设 XTAL 25MHz 工作正常。

    任何调试建议。

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

    尊敬的 Sanith:

    感谢您分享详细信息。 SDK SBL 示例工程在您的电路板上运行正常、这是 25MHz 晶体振荡器正常工作的良好指示。 但是、设置的抖动标志表明基准时钟上可能存在间歇性噪声或不稳定、这会影响 PLL 性能。 在我们继续进行软件调试之前、我想先排除任何潜在的硬件问题。

    您能否使用示波器直接探测外部 25MHz 振荡器输出并验证信号质量? 在探测振荡器时、应该会观察到差分正弦波。 请检查它是干净的正弦波、没有任何失真、噪声或不规则性。 即使振荡器足够适合 SDK 示例启动、边际信号质量仍会导致抖动标志在 PLL 锁定期间置位、尤其是在设计的不同部分的 PCB 布局、电源质量或负载条件存在差异的情况下。 正弦波或周期性干扰上是否存在任何失真、这些失真可能表明电源噪声耦合到时钟路径中。

    此外、我需要对您的设置进行一些澄清、以便更好地理解问题。 首先、是仅在一个器件上看到这个抖动标志问题、还是在所有器件上观察到这个问题? 如果隔离到特定电路板、则会导致硬件差异或组装问题。 其次、您使用的是定制 PCB 还是 TI 的 EVM? 这一点很重要、因为如果您使用定制电路板、我们需要验证围绕振荡器、电源去耦和时钟布线的 PCB 布局是否遵循硬件设计指南中的建议指南。 有时、即使是 PCB 设计的微小偏差也会导致表现为抖动标志的时钟质量问题。

    在获得示波器测量结果和有关硬件设置的信息后、我们可以确定这是需要在 PCB 设计中解决的硬件信号完整性问题、还是需要调整的 PLL 配置顺序中的特定问题。 请分享 25MHz 时钟信号的示波器屏幕截图以及上述问题的答案、我们可以从中进行评估。

    此致、
    Mayank Shadwani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请分享 25MHz 时钟信号的示波器屏幕截图

    上面是示波器屏幕截图、我在 R178 的其中一个焊盘 (XTAL_IN) 处测出

    为了更好地理解问题、我需要对您的设置进行一些说明。 首先、是仅在一个器件上看到此抖动标志问题、还是在所有器件上都观察到这一点?

    我可以在两个不同的 CC 板上看到抖动标志问题。

    第二、您使用的是定制 PCB 还是 TI 的 EVM? 这很重要、因为如果您使用定制电路板、我们需要验证振荡器、电源去耦和时钟布线周围的 PCB 布局是否遵循硬件设计指南中的建议指南。[/报价]

    从现在开始、我使用 TI 的 AM263Px 控制卡、稍后我们会采购定制 PCB

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

    尊敬的 Sanith:

    感谢您分享示波器屏幕截图。 正弦波上存在可见的凸点和失真、这对于晶体振荡器来说肯定不是正常行为。 健康的 25MHz 晶体应产生干净、平滑的正弦波、不会出现任何不规则或失真、如您所观察到的情况。 波形上的这些凸点表明晶体振荡器无法正常工作、并且可能已降级或损坏。 这将解释 PLL 检测抖动并设置状态寄存器中抖动标志的原因。 我在这里的设置中探测到相同的信号、得到的正弦波很干净、没有任何这样的失真。

    在我们得出需要更换晶体的结论之前、我想排除与您的硬件配置相关的另一种可能性。 您能否验证并确认已正确组装 R178 和 R179、且未组装 R176 以使用晶体振荡器?  

    如果您可以确认已组装 R178 和 R179、未组装 R176、并且晶体电路与参考设计匹配、则晶体本身可能出现故障、需要更换为已知良好的元件。 更换晶体后、波形应该干净、并且 PLL 抖动标志应该清除。 请在验证硬件配置后告知我结果。

    此致、
    Mayank Shadwani

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

    尊敬的 Sanith:

    感谢您提供详细信息。 在继续比较寄存器配置之前、我需要澄清一个重要事项、以确保我们比较苹果。 您提到 SDK SBL 示例在您的电路板上运行正常、但我需要确认 SDK 示例是否也配置为使用 外部时钟源 (如自定义引导加载程序)或配置是否不同。 当运行 SDK SBL 示例时、您能否在同一探测点捕获相同的示波器屏幕截图? 这将有助于我们验证 SDK 和您的自定义代码是否都使用相同的时钟源配置。 如果 SDK 使用不同的时钟源或者波形看起来不同、那么就说明了差异。

    此外、为了帮助确定 PLL 初始化可能与正常工作的 SDK 实现有哪些不同、您能分享您的确切 PLL 编程序列吗? 我需要查看您在自定义引导加载程序中执行的分步寄存器写入、包括寄存器地址、写入的值以及编程顺序。 请分享您的实际代码片段或详细的寄存器操作序列、以便我可以将其与 TRM 序列和 SDK 实现进行比较、以识别可能导致设置抖动标志和不正确 OSPI 时钟频率的任何潜在问题。

    此致、
    Mayank Shadwani

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    、但我需要确认是否也将 SDK 示例配置为使用 外部时钟源 (如自定义引导加载程序)或配置是否不同。 当运行 SDK SBL 示例时、您能否在同一探测点捕获相同的示波器屏幕截图? 这将有助于我们验证 SDK 和您的自定义代码是否都使用相同的时钟源配置。 如果 SDK 使用不同的时钟源或波形看起来不同、这将解释差异。

    同时运行 SDK SBL 示例工程 、我探测了同一个测试点和 在示波器上观察到相同的波形

    如何确认 SDK 使用哪个外部时钟源作为参考时钟? 您能否向我指出寄存器名称或 SDK SBL 代码(C 文件名)中用于配置它的逻辑?

    我检查了寄存器 TOP_RCM_TOP_RCM_PLL_REF_CLK_SRC_SEL、其值为、0x00000000表示 选择片上时钟作为 PLL 基准时钟 。 在 SDK SBL 示例和我的自定义引导工程中、该寄存器值都是相同的。

    最大功率耗散

    TOP_RCM_PLL_CORE_STATUS显示位 6 1'b0 、表示 PLL_CORE_STATUS_LOSSREF (基准输入损耗)。 [/报价]

    在 SDK SBL 工程中、的值为 TOP_RCM_TOP_RCM_PLL_CORE_STATUS0xC0001E10、但在自定义引导项目中是0xC0001E12
    在这两种情况下、 位 6 是 1'b0、表示 PLL_CORE_STATUS_LOSSREF

    在了解 PLL 配置的完成位置方面、我需要一些帮助 SDKsbl_ospi_multicore_elf 示例
    您能否向我指出源文件或负责 PLL 配置的 API、以便我可以查看配置序列并将其与我的自定义引导工程进行比较?

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

     你可以看着马亚克·沙德瓦尼

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

     你可以看看这个

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

    您好、
    检查 soc 配置 soc 的以下路径:sdk_path/source/drivers/plus/{device}/plus.c 和 soc_rcm.c

    此致、
    史瓦克