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.

[参考译文] TM4C1294NCPDT:在运行期间切换时钟是否安全?

Guru**** 2559850 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/904980/tm4c1294ncpdt-is-it-safe-to-switch-clock-during-operation

器件型号:TM4C1294NCPDT

我有一个应用需要在运行期间来回切换主时钟、例如从25MHz 切换到24MHz。 我可以在设计中包含两个振荡器、但使用 GPIO 在它们之间切换是安全的? 在开关时刻、时钟脉冲将会中断、并且很有可能会出现高于25MHz 的急剧脉冲。

感谢您的任何指示!

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

    尊敬的 David:

     您的应用为何需要在两个不同的振荡器之间切换? 如何将 GPIO 开关与振荡器同步。 对我来说、做你描述的事情根本不是一个好主意。 您的通信外设中的所有波特率是否都会被丢弃? 是的、时钟上的尖锐脉冲会触发振荡器故障检测。 如果您使用的是 PLL、PLL 也可能失去锁定。 我建议您仅使用一个振荡器输入。

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

    在这个特定的操作中、在开关期间没有通信外设打开。

    这种情况是否允许在两个时钟源之间安全切换?

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

    您好!

     即使在这种"异步"时钟切换期间没有通信外设开启、仍有触发 MOSC 失败检测和 PLL 失锁的风险。  

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

    暂时"触发 MOSC 故障检测和 PLL 失锁"的最坏结果是什么?

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

    您好!

     器件可以复位。 请参阅以下数据表。

    5.2.3.2主振荡器验证失败
    TM4C1294NCPDT 微控制器提供一个生成的主振荡器验证电路
    如果振荡器运行得太快或太慢、则会出现错误情况。 验证时的频率
    电路使能、发生故障时、会产生上电复位并传输控制信号
    或产生中断。 MOSCCTL 寄存器中的 MOSCIM 位决定
    发生哪种操作。 在任一种情况下、系统时钟源都会自动切换至 PIOSC。
    如果一个 MOSC 故障复位发生、NMI 处理程序被用来处理主振荡器验证
    失败、因为可以从通用复位处理程序中删除必要的代码、从而加快速度
    复位处理。 通过设置主振荡器中的 CVAL 位来启用检测电路
    控制(MOSCCTL)寄存器。 主振荡器验证错误在主振荡器中指示
    复位原因(RESC)寄存器中的故障状态(MOSCFAIL)位。 主振荡器验证电路
    第236页的"主振荡器校验电路"一节对操作进行了更详细的描述。

    PLL 操作
    如果 PLL 配置发生变化、PLL 输出频率不稳定、直到它重新收敛(重新锁定)
    新设置。 配置更改和重新锁定之间的时间为 TREADY (见表
    第1835页的27-16)。 在重新锁定期间、受影响的 PLL 不能用作时钟基准。
    软件可以查询 PLL 状态(PLLSTAT)寄存器中的 LOCK 位以确定 PLL 的时间
    已锁定。
    当 PLL 用作时钟时、可能不会执行 PLL VCO 频率的修改
    电源。 对 PLL 的所有更改都必须使用不同的时钟源执行、直到
    PLL 具有锁定频率。 因此、必须按顺序更改 PLL VCO 频率
    从 PLL 到 PIOSC/MOSC、然后从 PIOSC/MOSC 到新的 PLL。