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.

[参考译文] TM4C129XNCZAD:识别主振荡器(MOSC)的故障

Guru**** 2390755 points
Other Parts Discussed in Thread: TM4C129XNCZAD

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124298/tm4c129xnczad-identifying-failure-of-the-main-oscillator-mosc

器件型号:TM4C129XNCZAD

我的客户有以下问题:

我目前正在使用 TM4C129XNCZAD 微控制器、使用频率为25MHz 的外部振荡器。

我怀疑的是主振荡器(MOSC)在适当的频率范围内不工作时的故障识别。

 

我发现可以配置主振荡器验证电路、从而设置寄存器中的 CVAL 位

MOSCCTL。 我的问题是:

  • 验证电路是在启动阶段还是在微控制器运行时工作?

例如、如果我在外部晶振加电并正常运行后将其从电路上分离、MOSC 验证是否会引发故障事件?

  • 验证电路检查振荡器是否在5至25MHz 的允许范围内工作、或者连接的晶振是否在25MHz 左右的正确范围内工作? 如果是、我们如何选择要检查的范围?
  • 如果我不在 MOSCCTL 中设置 CVAL 位、是否有另一个监控器来监控主振荡器故障?
  • MOSCCTL 的 MOSCIM 位只有在 CVAL 之前被置位时才有效?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jason、

    [引用 userid="100788" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124298/tm4c129xnczad-identificing-failure-of the main-oscillator-mosc"]验证电路是否在启动阶段或在微控制器运行阶段正常工作[引用]

    主振荡监控也在 MCU 运行时进行。 断开或中断 MCU 的振荡器输入应触发故障事件。

    数据表摘录: 时钟控制包括确保主振荡器以适当频率运行的电路。 如果频率超出所连接晶体的允许频带、该电路会监控主振荡器频率和信号。

    [引用 userid="100788" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124298/tm4c129xnczad-identificing-failing-of the main-oscillator-mosc"]验证电路是否允许振荡器在5 MHz 至25 MHz 的工作范围内工作? 如果是、我们如何选择要检查的范围?

    它将根据作为时钟配置一部分提供的所选晶体来监控变化、而不是整个允许时钟频率范围内的变化。 因此、选择正确的支持晶体频率作为配置的一部分非常重要、否则将始终无法启动振荡器。

    [引用 userid="100788" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124298/tm4c129xnczad-identify-failure-of the main-oscillator-mosc"]如果我没有在主控制器中设置 CVAL 位,则主控制器出现故障[MOCTL]

    没有。

    [引用 userid="100788" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124298/tm4c129xnczad-identify-failure-of the main-oscillator-mosc"]如果 MOSCIM 位之前设置了 CVAL、则该位仅具有引用的效果[?]

    正确。

    回答以下问题...

    当我听到 MOSC 和"失败"相关的情况时、我总是有点怀疑。 我建议检查客户是否尝试使用 MOSC 作为系统的 OSCCLK 源。

    如果是、那么触发这些问题的可能原因是它们正在达到勘误表 SYSCTLT#23、这会导致复位时出现总线故障: https://www.ti.com/lit/er/spmz850g/spmz850g.pdf#page=84

    此致、

    Ralph Jacobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [~引语 userid="189615" URL"/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124298/tm4c129xnczad-identify-fy-of the main-osc/4169519#4169519"]
    验证电路检查振荡器是否在5至25MHz 的允许范围内工作、或者连接的晶振是否在25MHz 左右的正确范围内工作? 如果是、我们如何选择要检查的范围?

    它将根据作为时钟配置一部分提供的所选晶体来监控变化、而不是整个允许时钟频率范围内的变化。 因此、选择正确的支持晶体频率作为配置的一部分非常重要、否则将始终无法启动振荡器。

    [/报价]

    MOSCFAIL‘RESC 寄存器如何变为“1”状态? 我们的范围是监控振荡器,即,如果我们使用的25MHz 源自24MHz,是否有任何故障警报/标志可以通知 UC 这种变化? 我指的是 CVAL 处于活动状态(‘1’),并且我们正在监视 RESC 寄存器。

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

    您好 Jason、

    深入了解这一点、我在这里了解了有关该过程的更多信息。

    关于我先前的评论:

    [~ userid="189615" URL"/support/microcontrollers/arm-based microcontrollers-group/arm -based-microcontrollers/f/arm based-microcontrollers-forum/1124298/tm4c129xnczad-identify-faile-of the 主体振荡器 mosc/4169519#4169519"]由于整个时钟频率范围内所允许的时钟变化、因此不会在整个时钟范围内提供。 因此、选择正确的支持晶体频率作为配置的一部分非常重要、否则将始终无法启动振荡器。[/QUERP]

    我了解到、选择正确的支持晶体频率是晶体启动的重要组成部分、但在晶体稳定后、它不会影响变化检测。

    有一个单独的值决定了它、它也是 MOSCCTL 寄存器的一部分。 我们已经讨论了 CVAL 和  MOSCIM 位、这里的另一个关键是 OSCRNG、因为它指定了振荡器的范围、并影响了如何检查变化。

    遗憾的是、由于该器件在许多年前(~2014)发布、设计文件此时已存档、因此我们无法检查用于变化检测的确切电路、因此无法在此处提供特定的图。

    接下来的部分仅基于有关 MCU 设计的一般知识、以便对预期结果有所了解。

    通常、对于这种架构、差异检查基于使用内部参考时钟设置的广泛范围。 对于 TM4C、这可能是16MHz PIOSC。 因此、这种变化将以此为基础、并设置一个高于和低于 PIOSC 的范围来检查频率。 例如,如果将设备设置为大于10MHz,则可能是范围为 PIOSC/2 < OSC < PIOSC*2,范围为8MHz 至32MHz,超出该范围的任何内容都可能触发故障。 同样、这只是一个示例、用于说明器件可能执行的操作。

    归根结底、这里的重点是...

    [引用 userid="100788" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124298/tm4c129xnczad-identify-the-failure-of the main-osc/mosc/4173976#4173976#4mc/245MHz],即如果我们使用 uC 标记时,我们会发出有关故障的警报,即2425MHz/uC 标记是否存在任何变化,即,则通知我们使用 uC 标记。]

    变体检测不太可能像这样检测 MCU 中的频率偏差水平。  

    此致、

    Ralph Jacobi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="100788" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1124298/tm4c129xnczad-identify-the-failure-of the main-osc/mosc/4173976#4173976#4mc/245MHz],即如果我们使用 uC 标记时,我们会发出有关故障的警报,即2425MHz/uC 标记是否存在任何变化,即,我们会发出警报[引用 uC/2425MHz]

    也许软件可以比较两个时钟的频率、一个由 MOSC 提供、另一个由 PIOSC 提供。

    TM4C129_self_test.c 中的 initialize_clock 函数 是之前使用过此类测试的示例。 检查不是直接针对 MOSC 频率、而是针对 PLL 输入时钟中的 MOSC 的 CPU 频率。