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.

[参考译文] TMS320F28375D:同步 ePWM 和计时器0

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1298657/tms320f28375d-synchronizing-epwm-and-timer-0

器件型号:TMS320F28375D
主题中讨论的其他器件: C2000WARESysConfig

您好

我将 TMS320F28375D 用于应用。 我将通过使用 CPU1中的计时器0来生成 ADC SOC。 我的 PWM 信号由 CPU2生成。 我可以以任何方式同步 CPU1中的计时器0和 CPU2中的 ePWM 吗?

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

    尊敬的 Murali:

    简短的答案是、您不一定要直接同步这两者、但我想首先澄清您尝试实现同步的方法:您是否尝试同时启动 CPUTimer 和 EPWM? 或者您是指在运行时发出某种同步脉冲?)。 也许您可以研究 CPU1和 CPU2之间的 IPC 握手,以便使用 IPC_SYNC();?

    此致、

    艾里森  

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

    尊敬的 Allison:

    我正在尝试同时启动 CPU 计时器和 ePWM。 这可以通过使用 IPC_SYNC()实现吗? 例如、我的要求是在一个开关周期中获取10个电流样本。 我还计划将 CPU1严格用于 ADC 操作和可能的滤波。 CPU2执行控制和 PWM 生成部分。

    此致、

    穆拉利

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

    尊敬的 Murali:

    可以、IPC_SYNC()函数可 用于同时启动 CPU 计时器和 EPWM。  

    作为当前设置的替代方案、您是否可以在 CPU1上使用 ePWM 模块生成 ADC SOC? 您可能已经注意到、在一些单 CPU ePWM 示例中、"TBCLKSYNC"位用于同时启动多个 ePWM 的计时器。 还有一个"GTBCLKSYNC"位可被用于启动多个 CPU 上多个 ePWM 的定时器。  

    要使 ePWM 模块在不同内核上同时启动、您需要使用该"GTBCLKSYNC"(全局时基时钟同步)位。 如果您想查看、可以查看过去的 E2E 中与此类似的案例的描述: e2e.ti.com/.../3780146

    此致、

    艾里森

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

    尊敬的 Allison:

    我已经研究了它。 但我需要在一个开关周期中获取几个样本、例如10个样本。 如果我的理解是正确的、则使用单个 ePWM 模块生成 SOC 无法获得这么多的样本。 我也无法在同一通道上使用多个 EPWM 模块进行采样来获取过采样信号。 是否有使用 IPC_sync()函数的示例可以供我研究? 我在 C2000Ware 中没有找到任何信息。

    谢谢!

    穆拉利

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

    尊敬的 Murali:  

    正确、 根据您的需要、ePWM 将无法在一个开关周期内支持足够的样本。  

    F2837xD 有一个使用 IPC_SYNC()的示例- IPC_ex2_GPIO_SysConfig 示例位于 {C2000Ware}\driverlib\f2837xd\examples\dual\ipc.you 可以使用 IPC_sync 函数同步两个内核。 仅当另一个内核也达到 IPC_SYNC 函数时、才会返回此函数。 以下是 CPU1和 CPU2使用标志31进行同步的示例:

    在 CPU1侧:  IPC_SYNC (IPC_CPU1_L_CPU2_R、IPC_FLAG31);

    在 CPU2侧:   IPC_SYNC (IPC_CPU2_L_CPU1_R、IPC_FLAG31);

    使用 IPC_SYNC 后、您应该能够在一个 CPU 上启动 CPUTimer、并在另一个 CPU 上启动 EPWM、以便在 CPU 同步后恰好在同一时间开始。

    此致、

    艾里森