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 用于应用。 我将通过使用 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 同步后恰好在同一时间开始。
此致、
艾里森