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.

[参考译文] TDA4VM:TDA4内部的 DCC (双时钟比较器)模块

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1134240/tda4vm-dcc-dual-clock-comparator-module-inside-the-tda4

器件型号:TDA4VM

各位专家、您好!

  我正在尝试了解 SDL 软件包中 DCC 的默认代码,该文件夹为:SDL_1.0/SDL_RLS_01.00.00/ SDL/examples/DCC/UC8。

  源时钟是 RC OSC、测试时钟是 HFOSC0、我也可以理解 HFOSC0是19200 (19.2MHZ)、但 RC OSC 时钟是什么? 我在代码中看到的是333334,但我只能在 TRM 中看到它的频率为12.5MHz,您能不能指导我们这是什么,它与硬件是否相关?  

 

  此外、我们为什么选择该时钟333334作为输入、它是否由硬件连接确定?

  

  提前感谢。

BR、

新生儿

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

    您好、Neo、

    根据安全手册、DCC 是一种诊断机制、可用于检测时钟问题、包括不正确的频率和时钟源之间的漂移。  DCC 使用另一个输入时钟作为基准来测量可选时钟源的频率。 可通过软件选择基准时钟和被测时钟、时钟频率的预期比率也是如此。

    对于 UC8、代码看起来有问题、 我在内部进行跟踪。

    UC8的代码

    • Input0参考时钟设置为 SDL_DCC_CLK0_SRC_CLOCK0_2、  
    • Input1测试时钟设置为 SDL_DCC_CLK1_SRC_CLOCKSRC_CLOCKSRC7。

    根据 TRM、并将变量命名与下表匹配、随后用户将需要使用以下设置:

    • 输入0 = CLK_12M_RC
    • 输入1 = HFOSC0_CLKOUT

    其频率为:

    • CLK_12M_RC = 12.5MHz
    • HFSOSC0_CLKUT = 19.2MHz

    并与 UC8代码中的注释保持一致、其中

    • 正在使用模块实例 MCU_DCC2
    • RC OSC0是正在使用的参考时钟
    • HFOSC0是被测时钟。  

    不匹配的是:

    • main.h 中的代码、其中333334kHz 被用作 被测时钟的预期输入。

    那么测试案例是如何通过的?  

    • main.c 中的注释指示 MCU_DCC2正在接受测试(这是 APP_DCC_MODULE_INST 设置为的值)、但下面的步骤4 中正在配置 SDL_DCC_INST_MCU_DCC0

    运行 UC8时、可以 看到 MCU_DCC0的 CLKSRC 设置如下。

    与步骤4中的代码匹配、其中正在配置 MCU_DCC0。

    在配置 MCU_DCC0后、启用 MCU_DCC2中断

    由于 MCU_DCC0 在分配的时间段内运行并通过、因为没有中断关闭。

    下面是通过 A72的 k3conf 查看 MCU_DCC2和 MCU_DCC0时钟的样子。

    此致、

    基普

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

    您好、Neo、

    我的理解是、 已经为您提供了一个解决此问题的补丁、[PROC_SDS-3701] DCC 中涵盖了该补丁:用于选择除 clock0_0之外的 Input0时钟的值不正确-德州仪器(TI) JIRA。

    关闭此主题。

    此致、

    基普

x 出现错误。请重试或与管理员联系。