主题:C2000WARE 中讨论的其他器件
工具/软件:
我让 CPU1使用 EPWM4、5和6并正常工作。 但是、当我让 CPU2使用 EPWM1、2和3时、会出现两个问题。 在 CPU2上、CLA 任务1会执行所有涉及 ePWM 的工作、但此任务每个周期始终会执行两次、而不是执行一次。 其次、如果使用 EPWM1、它会以非常周期性的重复方式损坏连接到 CPU1的 EPWM。 可能有没有任何使用两个 CPU 和所有这些 ePWM 的示例代码? 谢谢。
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.
工具/软件:
我让 CPU1使用 EPWM4、5和6并正常工作。 但是、当我让 CPU2使用 EPWM1、2和3时、会出现两个问题。 在 CPU2上、CLA 任务1会执行所有涉及 ePWM 的工作、但此任务每个周期始终会执行两次、而不是执行一次。 其次、如果使用 EPWM1、它会以非常周期性的重复方式损坏连接到 CPU1的 EPWM。 可能有没有任何使用两个 CPU 和所有这些 ePWM 的示例代码? 谢谢。
您好、Jim、
您似乎正在运行一个双核示例。 是这样吗? 您能否确认是否已将 EPU1专门映射到 CPU2?
我将参考 C2000Ware https://dev.ti.com/tirex/explore/node?node=A__ANDL8U1U0CdQrcsu6kVbQg__C2000WARE__1kRFgrO__LATEST&placeholder=true 中的双核示例
此致、
Ozino
尊敬的 Ozino:
我之前运行过 TI 双处理器示例、没有出现问题。 我现在在处理我自己的代码时遇到问题。 我有针对 CPU1和 CPU2的单独代码/编译版本。 我已经用一个细牙梳检查了我的记忆图、以确保没有冲突。 CPU1上的程序能够在独立模式下完美运行。 即使我连接 CPU2、三个 CPU1 ePWM 输出中的两个都正常、但其中一个 ePWM 输出可能会表现出 CPU2 ePWM 产生的相当严重的"串扰"。 干扰模式是周期性的且恒定的、除非我短暂更改 CPU1 ePWM 的输出频率。 由于这种短期频率变化、干扰模式会发生变化、但随后始终稳定到固定的周期性干扰。
我正在运行两个 CPU 以及它们在我的代码中各自的 CLA。 可避免此干扰问题的单条指令是:如果我没有更新与 CPU2关联的主 ePWM 上的 Compare_A 寄存器。 但是、ePWM 基地址正确、所有内容看起来都正确。 CPU1使用 EPWM4、5和6。 CPU2使用 EPWM1、EPWM2和 EPWM3。 最初、我使 EPWM1作为主器件(对于 CPU2)、但这时与 ePWM 相关的 CLA 任务在每个 ePWM 周期总是执行两次。 使 EPWM2成为主器件、EPWM1和2充当从器件、从而在某种程度上消除了该问题。 不过、我对背后的推理仍然不满意。 但这种串扰干扰使我在此刻真的被咬住了。
干扰图形会(以加法方式)叠加到应该存在的信号上。 我看不到任何能解释这一点的机制。
您好:
问题1:CLA 任务1每个周期在 CPU2上执行两次
这可能与您在 CPU2上配置 ePWM 的方式有关。 当您使 EPWM2成为主器件以及 EPWM1和3从器件时、由于 ePWM 同步的方式、CLA 任务可能会被触发两次。 您可以尝试检查 ePWM 同步设置和 CLA 任务配置、以确保每个周期仅执行一次任务。
问题2:ePWM 损坏和串扰
假设您已检查存储器映射并确保没有冲突、则问题可能与 ePWM 使用共享资源的方式或时钟的配置方式有关。
一种可能的解释是、CPU1和 CPU2上的 ePWM 共享一个通用时钟源或同步到同一个时钟域。 如果时钟不正确同步或时钟之间存在相位差、则可能会导致 ePWM 之间出现干扰或串扰。
另一种可能是 ePWM 使用共享的外设或资源(例如同一个计时器或计数器)、这些外设或资源可能会导致干扰。