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.

[参考译文] TMS320F28388D:澄清 F28388D 上发生 XTAL 故障时 DCC 与 MCD 的行为

Guru**** 2538930 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1567600/tms320f28388d-clarification-on-dcc-vs-mcd-behavior-when-xtal-failure-occurs-on-f28388d

器件型号:TMS320F28388D
主题:C2000WARE 中讨论的其他器件

工具/软件:

成分

在我们的系统中、我们当前使用的是 XTAL 作为系统时钟源。
我正在配置 DCC 一方 INTOSC2 Clock0(参考)和 PLLRAWCLK 作为 Clock1(测试)、以确保 PLL 输出正常运行。

但是、我对的场景感到担忧 XTAL 失败(开路/停止) 。 在这种情况下、PLL 将丢失其输入源、从而可能导致 CPU 丢失其系统时钟 并可能冻结。 这将阻止检测和处理 DCC 错误。

根据我的理解、当 MCD 检测缺少时钟、将自动强制 PLL 旁路并将时钟源切换至 INTOSC1 、允许 CPU 继续以回退频率运行。 我没有在 DCC 部分中找到描述的类似机制。

因此、我想澄清以下几点:

  1. 如果 DCC 配置为 INTOSC2 (Clock0) 和 PLLRAWCLK (Clock1)、并且 XTAL 出现故障:

    • 这是否会立即导致 CPU 冻结、从而无法诊断 XTAL 故障并且无法触发 SYS_ERR 中断?

    • 还是系统仍然能够运行一段时间?

  2. 如果 CPU 未冻结且系统继续运行一段时间:

    • 我计划将系统时钟源切换到 INTOSC1 或 INTOSC2 内部以维持基本操作。

    • 在这种情况下、如何确保可靠地执行 SYS_ERR ISR? 这是否意味着我需要保证在特定的 SysTick 周期内处理?

  3. 如果在 XTAL 发生故障时 CPU 将冻结:

    • 它是否意味着我必须使用 MCD 和 DCC 是否相结合?

    • MCD 负责检测时钟丢失并自动将源切换到 INTOSC1 以保持 CPU 运行、

    • DCC 主要用于检查时钟频率容差。

非常感谢您的支持和澄清!

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

    尊敬的 Nai Wen:

    MCD 使用 INTOSC1 作为参考时钟源来检测到 OSCCLK 故障(特别是完全丢失)、其中一个步骤是强制 PLL 旁路。  加电时启用了 Ctl_Set、Driverlib 示例展示了如何在 SysSys SysClock() 函数中处理此问题。  

    根据其计数器的比率、 DCC 会生成错误(和中断)。该错误可用于调试问题的根本原因、以及切换时钟源、还提供容差限制灵活性。 请参阅 下面的 C2000WARE 示例 (dcc_ex4_clock_fail_detect)、该示例似乎与您的用例相匹配、可解决您对配置和 CPU 可靠运行的担忧。 单独 DCC 不会自动更改时钟源、但您可以使用它的信息来采取适当的操作。 如果您使用 MCD 和 DCC、则还必须处理 MCD 生成的不需要的 NMI。 使用 MCD 或 DCC、尽管 DCC 允许您使用 INTOSC1 继续使用应用、而 MCD 将从本质上强制通过 NMI 关闭系统。  

    此致、

    Aishwarya