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:TMDSCNCD28388D:EtherCAT PHY 时钟

Guru**** 2540720 points
Other Parts Discussed in Thread: TMS320F28388D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/988436/tms320f28388d-tmdscncd28388d-ethercat-phy-clock

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

尊敬的 E2E 支持专家:

我们将 TMS320F28388D 用于 EtherCAT 通信。

当使用调试器时、根据下面的设置、PHY 时钟的输出频率为25MHz。

但是、当我不使用调试器并将其用作闪存时、它通常输出50MHz、并且无法进行 EtherCAT 通信。

谢谢、此致、

HJ。

MAIN ()

(笑声)

DEVICE_BOOTCPU2 (BOOTMODE_BOOT_TO_FLASH);
configureAndReleaseCMToWait();
SYSCTL_setECatClk (SYSCTL_ECATCLKOUT_DIV_2、SYSCTL_Source_SYSPLL、ESC_USE_INT_PHY_CLK);//PLLSYSCLK = 200MHz、ECatCLK = 100MHz
releaseCMToApplication();

(笑声)

configureAndReleaseCMToWait (空)

SYSCTL_setCMClk (SYSCTL_CMCLKOUT_DIV_1、SYSCTL_SOURCE_AUXPLL);//AUXPLLCLK = 120MHz、CMCLK = 120MHz
IPC_setBootMode (IPC_CPU1_L_CM_R、(BOOT_KEY | CM_BOOT_FREQ_120MHz | BOOTMODE_BOOT_TO_WAIT));
IPC_setFlagLtoR (IPC_CPU1_L_CM_R、IPC_FLAG0);
SYSCTL_controlCMReset (SYSCTL_CORE_DEACTIVE);

releaseCMToApplication (空)

IPC_setBootMode (IPC_CPU1_L_CM_R、(BOOT_KEY | CM_BOOT_FREQ_120MHz | BOOTMODE_BOOT_TO_FLASH));
IPC_setFlagLtoR (IPC_CPU1_L_CM_R、IPC_FLAG0);

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

    您好、HJ、

    在将器件重置为闪存引导时、您是否仅看到错误的50MHz 时钟? 当您对配置了闪存(而非 RAM)的应用程序进行编程并在运行时保持调试器连接时、您会看到25MHz 是否正常?

    最棒的

    Kevin

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

    尊敬的 Kevin:

    当我在连接到 CCS 中的调试器时运行它、它会正确输出25MHz PHY 时钟。 但是、如果您在未连接调试器的情况下打开电源并查看输出波形、则有时会变为50MHz。

    此致、

    HJ

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

    使用中的静态内联 void sysctl_setECatClk 函数解决了该问题 在 c2000Ware 中、driverlib 在项目中定义为 void sysctl_setECatClk。
    我不确定问题是如何解决的。 请告诉我原因。

    此致、

    HJ

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

    您好、HJ、

    我不明白、您是否使用了 SYSCTL_setECatClk (在中找到 )吗? 我看到它包含在您的第一个帖子的代码中。

    最棒的

    Kevin