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.

[参考译文] TMS320F28379D:CPU2 CLA 任务双执行、CPU2 EPWM 破坏 CPU1 EPWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1496651/tms320f28379d-cpu2-cla-task-double-executing-cpu2-epwms-corrupting-cpu1-epwms

部件号:TMS320F28379D
主题:C2000WARE 中讨论的其他器件

工具/软件:

我让 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充当从器件、从而在某种程度上消除了该问题。 不过、我对背后的推理仍然不满意。 但这种串扰干扰使我在此刻真的被咬住了。

     

    干扰图形会(以加法方式)叠加到应该存在的信号上。 我看不到任何能解释这一点的机制。

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

    您好、Jim、

    感谢您的解释。 我将跟我们的 ePWM 专家一起提示这种情况。

    此致、

    Ozino

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

    您好:

    问题1:CLA 任务1每个周期在 CPU2上执行两次

    这可能与您在 CPU2上配置 ePWM 的方式有关。 当您使 EPWM2成为主器件以及 EPWM1和3从器件时、由于 ePWM 同步的方式、CLA 任务可能会被触发两次。 您可以尝试检查 ePWM 同步设置和 CLA 任务配置、以确保每个周期仅执行一次任务。

    问题2:ePWM 损坏和串扰

     假设您已检查存储器映射并确保没有冲突、则问题可能与 ePWM 使用共享资源的方式或时钟的配置方式有关。

    一种可能的解释是、CPU1和 CPU2上的 ePWM 共享一个通用时钟源或同步到同一个时钟域。 如果时钟不正确同步或时钟之间存在相位差、则可能会导致 ePWM 之间出现干扰或串扰。

    另一种可能是 ePWM 使用共享的外设或资源(例如同一个计时器或计数器)、这些外设或资源可能会导致干扰。