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:使用 SysConfig 的 EPWM 设置不起作用

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1521778/tms320f28379d-epwm-set-up-using-sysconfig-is-not-working

部件号:TMS320F28379D
Thread 中讨论的其他器件:SysConfigC2000WARE

工具/软件:

您好、

我使用 SysConfig (C2000Ware_5_04_00_00)设置 EPWM、但它不会运行。 以下是配置:

时基周期和计数器模式设置为(时基周期= 27800/计数器模式在同步=向上向下双向计数模式后)。 SYNC 脉冲设置为由软件生成。 CPMA 设置为时基周期的一半。

ePWMxA 的操作限定符设置为在达到 COMPA 时向上计数输出变为高电平、在向下计数和拉取 COMPA 时变为低电平。 所有其他配置均设置为输出引脚无变化。

ePWMxB 是 ePWMxA 反相、但其他方面相同。  

使用提供的预设来配置 ePWM 死区。 我使用了"高电平活动互补"预设。

PinMux 配置会将此设置分配给 EPWM1:

我使用以下 API 函数通过软件生成软件 SyncOutPulse:

ePWM_setSyncOutPulseMode (EPWM1_BASE、ePWM_SYNC_OUT_PULSE_ON_SOFTWARE);
ePWM_forceSyncPulse (EPWM1_BASE);

什么是我的缺失?

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

    您好:

    在第一张图片中、将仿真模式更改为自由运行。 如果没有任何帮助、请在同步事件后更改计数。 让我们看看这是否解决了问题。

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

    尊敬的 Stevan:

    感谢您的回答。 我试了两次。 它没有任何改变。

    此外、按照此处的说明、ePWM_ECAP 示例也未在我的电路板上运行:

    dev.ti.com/.../node

    是否有可能干扰 PWM 运行的硬件配置?

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

    您好:

    最初、您能否试一试 ePWM driverlib C2000Ware 示例、看看它们是否适合您? 我们可以从这里开始。  

    C:\ti\c2000\C2000Ware_5_04_00_00\driverlib\f2837xd\examples\cpu1\epwm

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

    我尝试了 ex1 (示例1)、这是有效的。 我将研究这个示例、看看我可以从中学习哪些内容。 这是否能让您了解其他设置的问题?

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

    您好、Ehsan、

    我的建议是取最接近您的应用的工作 ePWM C2000Ware 示例。 然后、 逐步缓慢地添加您的功能、并测试其停止工作的位置。 这将使您能够更深入地了解误差的来源。

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

    我的应用同时使用这两个 CPU。 CPU2设置中是否有任何干扰行为?  

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

    我遇到了另一个问题。 现在、我想导入一些其他 ePWM 工程、它们似乎不可用。 任何想法这里有什么不好的:

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

    您好:

    它们将不可用(如果已存在于您的 CCS 工作区中)。  

    首先、转到 EPWM 文件夹以精简示例列表。 然后选中该框。 如果显示 x、则表示它不可用。 您需要首先将其从 CCS12工作区中删除。

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

    感谢您的回答。 我没有进入 EPWM 文件夹的原因是为了突出 CCS 显示该文件夹与其他文件夹之间的差异。  我也没有在工作区中打开任何 EPWM 文件夹的工程。 我针对该问题的权变措施是 在其他文件夹中重新安装 C2000Ware、并从新位置导入工程。 我希望您能解释此权变措施的实施情况、以供将来参考。  

    需要补充的是、在 CCS 不再在 ePWM 文件夹中找到任何其他工程(示例)之前、我已从 ePWM 文件夹中导入了一个工程(示例1)。

    我还意识到、根据代码中的位置、同步两个 CPU (使用 IPC API) PWM 启动/停止工作。 当 PWM 正常工作时、CPU (和 CPU1上的 SCI 模块)之间的消息传递停止工作。 我有一个预言、这可能与外设时钟有关?

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

    您好:

    很遗憾听到您在导入工程时遇到问题。 如果以适当的存储库安装了 C2000Ware、则情况并非如此。 我建议删除所有旧的安装文件并重新安装 C2000Ware。

    如果设置不正确、使用两个 CPU 可能会导致硬件问题。 请参阅 C2000Ware 双核示例以检查设置是否正确。

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

    我正在发布针对此问题的解决方案、以防其他人遇到相同问题。

    在我 SysConfig 文件的 SYSCTL 模块中、未检查 TBCLKSYNC 时钟和 GTBCLKSYNC 时钟(我已经使用其中一个示例的 SysConfig 文件启动了工程)。 选中这些复选框或通过启用它们  

    SysCtl_enablePeripheral (SYSCTL_PERIPH_CLK_TBCLKSYNC);

    已经解决了问题。  

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

    感谢您记下它。 很高兴您解决了这个问题。 祝你度过美好的一天!