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:无法正确使用 DCC 进行事实时钟故障检测

Guru**** 2584805 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1225497/tms320f28388d-cannot-properly-use-dcc-for-fact-clock-failure-detections

器件型号:TMS320F28388D
"Thread:SysConfig"中讨论的其他器件

您好!

我正尝试使用 F28388上的 DCC 模块来快速检测时钟故障:

  • SYSCLK 为100MHz、
  • CLOCK0为25MHz、来自 OUTPUTXBAR 16
  • CLOCK1为25MHz、来自 OUTPUTXBAR 15

我正在连续模式下使用 DCC0来检查 CLOCK0和 CLOCK1是否以相同的速度运行、精度非常高(容差为0.002%)->这没有问题、TRM 中提供的公式可以正常工作。

然后、我想使用 DCC1 (也在连续模式下) 快速检查其中一个时钟何时发生故障、因为我使用的是非常短的计数器和有效窗口:

  • Counter0 = 2、Valid0 = 4、Counter1 = 4 ->这不起作用、即使两个时钟都正常、我得到具有错误标志的中断(当我 在中断中读取寄存器值时、我看到 Counter0 = 0、Valid0 = 0、Counter1 = 0   )

其他函数则尝试更多裕度、以使其完全满足 16个时钟周期的 DCC 误差:  

  • Counter0 = 16、Valid0 = 32、 Counter1 = 32 ->相同的问题、在几毫秒后我得到错误中断、 Counter0 = 0、Valid0 = 0、Counter1 = 0     

我使用示波器进行了检查、发现当我的两个时钟信号到达28388芯片时、它们都是正常的。 如何查看这些计数器/窗口值的错误? 两侧16次计数的裕度似乎很大、我不应该获得错误中断。 在如何使用 DCC 模块方面是否有任何限制? 或 DCC 模块中存在问题?

此致、

Stephane.

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

    Stephane、您好!

    我建议使用 SysConfig 中的内置 DCC 计算器来计算计数器值,或使用 DCC_continuousMonitor ()函数。 对于此函数的参数、您可以将容差参数指定为0、将频率误差指定为非常高的值、例如75%。 该函数将自动计算正确的计数器值并相应地设置 DCC。

    如果您希望手动设置计数器值、请使用 SysConfig 中的 DCC 计算器、或按照器件 TRM DCC 一章中指定的公式进行操作。 在计算计数器值时、为了获得可靠的误差信号、需要考虑几个因素(例如内置数字化误差)。

    如果您在响应时间方面有具体限制、并且您在使用我刚才介绍的方法满足这些限制时有困难、敬请告知。

    此致、
    Ibukun