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.

[参考译文] TMS320F280041-Q1:配置/初始化 PLL 时为什么需要60个周期延迟?

Guru**** 2520590 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1350624/tms320f280041-q1-why-60-cycle-delay-needed-when-configuring-initializing-pll

器件型号:TMS320F280041-Q1

尊敬的 BU 专家:  

我向我的客户询问此问题。  

在其应用程序中、他们在引导加载程序中配置了 IMUL-10、FMUL-0、DIV-2、并在应用程序中配置了 IMUL-5、FMUL-0、DIV-1。 他们发现系统将由 NMIWD 复位。 调试后、发现它由闪存 ECC 错误导致、并且在  PLL 初始化代码中执行 ClkCfgRegs.SYSPLLCTL1.bit.PLLEN = 0;和 ClkCfgRegs.SYSPLLMULT.all = temp_syspllmult;时发生该错误。 因为它们使用的是 F28004x 的旧版本驱动程序。 他们没有在上述2个代码之间插入以下60个周期延迟。  

添加延迟后、系统可以正常工作。 但客户需要 TI 回答以下问题、 :  

1) 1)为什么需要此延迟? 当不添加此延迟时、为什么闪存会报告 ECC 错误? 这背后的硬件机制是什么?  

2)在早期设计中、引导加载程序和应用程序都 配置了 IMUL-10、FMUL-0、DIV-2、并且它们强制应用程序执行 ClkCfgRegs.SYSPLLCTL1.bit.PLLEN = 0;以及 ClkCfgRegs.SYSPLLMULT.all = temp_syspllmult。 但在这种情况下、未发生错误或复位。 需要解释。  

此致、  

将会

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

    BU 团队、您好、  

    有任何意见吗?  

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

    您好、Will:

    对于此处的延迟响应、我们深表歉意。 这是器件 TRM 中记录的硬件要求(请参阅第3.7.11节中的注释(系统控制和中断>时钟>时钟配置示例)、并且是从一个时钟源到另一个时钟源无干扰转换所必需的。 如果跳过该60个周期延迟、则 可能会发生器件不稳定。 每当绕过 PLL 或切换 OSCCLK 源时、都必须实施60个周期延迟。

    此致、
    伊袋