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.

[参考译文] TMS570LC4357:禁用 OSCIN 时钟源时、PLL 跳周检测到故障时的行为

Guru**** 2470720 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/651488/tms570lc4357-behaviour-when-pll-slip-detects-a-failure-while-oscin-clock-source-is-disabled

器件型号:TMS570LC4357

您好!

如 TMS570LC4357 TRM 的第14.5.3章所述、当被启用时、PLL 差异检测将在检测到 PLL 差异时将 OSCIN 馈送到 GCM 时钟源1。

如果在检测到 PLL 跳周之前时钟源0 (主振荡器)被禁用、会发生什么情况?

我假设时钟监控被禁用:如果没有、时钟监控将把 HF LPO 馈送到 GCM 源0和 GCM 源1、从而防止 PLL 的使用。

但是、正如 TRM 的第14.4.2章所描述的那样、只有在振荡器发生故障时、时钟监控才会将时钟输入切换至 HF LPO、使 GCM 源0和 GCM 源1成为时钟源。 如果时钟监控被禁用、那么我知道、如果检测到 PLL 跳周、即使被禁用、主振荡器也将被馈送到 GCM 源1。

我对此是否正确、或者在文档中是否遗漏了任何信息?

一些背景:在我们的安全关键型系统中、我们有一个外部看门狗、可在 PLL 逻辑失效或者主振荡器失效时检测到故障。

尽管如此、我发现有一个备份时钟来继续执行软件、从而将故障记录到非易失性存储器中进行调查、即使 CPU 运行速度较慢。

我只是假设如果 PLL 出现故障、可能是由主振荡器故障引起的、我更希望 PLL 的备份直接是 HF LPO、而不是由多个源从 PLL 切换到主振荡器再切换到 HF LPO。

如果不能通过其他方法来完成、我将会这样做、但我只想知道是否可以直接这么做。

此致、

盖尔

 

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

    如果时钟检测器被禁用、它将无条件地将 GCM 时钟源0切换回振荡器、所以在禁用时钟检测器之前、应该注意确保振荡器良好。

    如果振荡器在检测到 PLL 跳周之前发生故障、LPO HF 将作为 GCM 源0和1的时钟源。

    PLL 跳周意味着 PLL 未正确锁定:PLL 过快或过慢。 振荡器故障也会导致 PLL 跳周。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    抱歉、如果我的问题不清楚、但如果主振荡器时钟源被禁用、它与 CPU 行为更相关。

    在启动阶段、:

    -PLL 已设置和锁定。

    - PLL 被选为时钟域的源

    -时钟检测器被禁用(以避免由于振荡器禁用下面一步而导致的故障)

    -在 CSDIS 寄存器中主振荡器(时钟源0)被禁用

    第一个问题:如果 PLL1计划用于时钟域、那么可以在 CSDIS 寄存器中禁用主振荡器(时钟源0)吗?

    现在-假设我们可以禁用主振荡器并使用 PLL1 - CPU 在 PLL1时钟源上运行并且 PLL 跳周被启用。

    我的问题是:在这些条件下、如果检测到 PLL 差异:

    1) 1) PLL1源是否切换到主振荡器(已禁用)? (在这种情况下、CPU 暂停)

    2) 2) PLL1源是否切换到主振荡器、该振荡器由时钟逻辑自动启用? (在这种情况下、CPU 继续在主振荡器上运行)

    3) 3) PLL1源是否切换到 HF LPO?

    此致、

    盖尔

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

    我找到了有关 TMS570LC4357器件 B 勘误文档的信息、其中包括 GCM#59。
    在文本中、我们可以发现、如果 PLL 时钟源被启用、那么主振荡器一定不能被禁用。

    这回答了之前的所有问题。

    不过、我还是做了一些实验:
    - GCLK、HCLK、VCLK、VCLK2和 VCLK3时钟源设置为 PLL1
    - RTI 时钟源被设定为 VCLK (缺省值)、此值源自 PLL1
    - VCLKA1、VCLKA2和 VCLKA4时钟域被禁用(CDDIS = 0x00000830)
    -时钟检测器被禁用(CLKTEST = 0x010A0000)
    -全局状态寄存器指示无错误(GLBSTAT = 0x00000000)
    我想通过向 CSDISSET 写入0x000000FC 来禁用所有未使用的时钟源:LPO LF、LPO HF、EXTCLKIN1、EXTCLKIN2、PLL2
    -在无限循环中、我轮询 CSVSTAT 寄存器、但它保持为值0x000009B、这表示 OSCIN、PLL1、EXTCLKIN1、LF LPO 和 EXTCLKIN2时钟源有效。 我期望只有 OSCIN 和 PLL1被指示为有效。

    您如何解释 EXTCLKIN1、EXTCLKIN2和 LF LPO 时钟源在 CSVSTAT 寄存器中仍然有效?

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

    PLL 源始终是 OSCIN。
    GCM 源可以是 PLL1/2、OSCIN、LPO 和外部时钟
    如果 PLL 是 GCM 时钟源、并且时钟检测器被禁用、并且 OSC 也被禁用、那么 PLL 没有时钟源、GCM 不会使用 LPO 作为时钟源、因为时钟检测器被禁用。 CPU 将停止运行。
    4、如果 PLL 跳周、转差检测器将把 GCM 时钟源切换到 OSCIN、但 OSCIN 被禁用、所以 GCM 没有时钟源。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gael、

    默认情况下、时钟源#3、#4和#7有效、并且始终可用。 禁用时钟源#3/4/7不会影响 CSVSTAT 中的值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我不确定您刚才所写的内容:使用3、4和7的时钟源:

    a)可以禁用、但它们的状态不在 CSVSTAT 寄存器中得到反映?

    b)无法禁用(您写的"始终可用")?

    如果 a)为 true、那么当我尝试禁用 LPO 的偏置电流(在 LPOMONCTL 寄存器中将 BIAS_EN 设置为0)时、为什么我的调试器失去对 CPU 的控制?

    如果 B)为 true、那么 TRM 为什么在第2.4.1.1章中提到它是可行的:"每个时钟源都可以使用一组时钟源禁用寄存器来独立启用或禁用"、以及在第14.4.5.2章中(对于 LF LPO 时钟源): "同样、通过设置 CSDIS.4 [...]、LPO LF 时钟被复位。 在 CSDIS 被置位后、LF LPO 禁用几个 LF LPO 周期。" ?

    谢谢、

    盖尔

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

    根据 TRM 语句、可以使用 CSDIS 寄存器启用和禁用这些时钟源。 但向 CSDIS 中的这些位写入"1"不会影响该寄存器中的默认值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、这肯定是 TRM 中的错误、但我编写的代码正确执行了对设置或清除时钟源(CSDISSET 和 CSDISCLR)的寄存器的访问。

    我之前的问题是否有解答? 您说的"禁用时钟源#3/4/7不会影响 CSVSTAT 的值"是什么意思? 为什么它们与其他可被禁用的时钟源不同? 我对 CSVSTAT 寄存器的理解也是、如果时钟源被有效禁用、那么该时钟源应该在 CSVSTAT 中被指示为无效、对吗?

    如果这是专门针对时钟源#3、#4和#7的正确行为、则应该记录它、因为这不符合文档。

    此致、

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

    外部时钟源(EXTCLKIN1、EXTCLKIN2;时钟源#7和#3)不会被检查有效性。 它们被认为是有效的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 QJ、

    对于外部时钟、好的、我理解。 但时钟源#4 (LF LPO)会怎么样呢? 当我通过 CSDISSET 寄存器禁用它、然后尝试禁用 LPO 的偏置电流(在 LPOMONCTL 寄存器中将 BIAS_EN 设置为0)时、CPU 会通过调试器冻结。
    您能向我解释原因吗?

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

    在时钟检测被禁用并且 LPO (HF、LF)时钟源被禁用后、LPO 电流源可被禁用。 可通过将 CLKTEST 设置为1并将 CLKTEST 设置为0来禁用时钟检测。