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.

[参考译文] LAUNCHXL-F280049C:相移 ePWM (4A/B、5A/B)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1183365/launchxl-f280049c-phaseshift-epwm-4a-b-5a-b

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件: C2000WARE

大家好、TI 专家、

在我的应用中、我猜我可能需要6或7个 ePWM (A/B)对[请参阅我附加的 PWM 输出波形]。 我正在尝试从 LAUNCHXL-F280049C Launchpad 中了解这一点。 因此、我计划从 C:/ti/c2000/C2000Ware_4_02_00_00/driverlib/f28004x/examples/epwm/CCS.中合并 ePWM_ex2_updown_Aq.c 和 ePWM_ex3_synchronization.c (如果需要)  

问题:  

1.能否使用这个带有 ePWM1、2、3、4、5、6、8的 Launchpad 生成仿真 PWM 输出(我看不到 ePWM7)?  

2.在 ePWM_ex2_updown_Aq.c 默认程序中、EPWM1A 和 EPWM1B 是否像 PWM 波形逆变 器图片中一样自然地相互补充? 如果不是、如何使它们进行180度相移。

我计划通过 添加[来激活 ePWM_ex2_upddown_Aq.c 中的 EPWM4、5、6、8

epwmInformation ePWM_xinfo;
void initEPWM_X (void);
_interrupt void ePWM_XISR (void);
等等...]

(如果我错了、请更正我)根据 EPWM_ex3_syn 的注释、EPWM1、2、3、4看起来是90度相移。 这是否意味着 EPWM5与 EPWM1具有相同的相位、EPWM6与 EPWM2具有相同的相位、EPWM8与 EPWM4具有相同的相位? 如果是、那么我可能需要调整 EPWM5、6、8的相移值。 听起来我们必须修改 ePWM_setPhaseShfit ()函数或定义 phasecount 值、但我不确定如何操作? 任何评论都将非常有帮助!

  

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

    1.能否使用这个带有 ePWM1、2、3、4、5、6、8的 Launchpad 生成仿真 PWM 输出(我看不到 ePWM7)?  

    是的! 每个 ePWM 都可以根据需要进行配置。

    2. 在 ePWM_ex2_updown_Aq.c 默认程序中、EPWM1A 和 EPWM1B 是否像 PWM 波形逆变 器图片中一样自然地相互补充? 如果不是、如何使它们进行180度相移。  这是否意味着 EPWM5与 EPWM1具有相同的相位、EPWM6与 EPWM2具有相同的相位、EPWM8与 EPWM4具有相同的相位? 如果是、那么我可能需要调整 EPWM5、6、8的相移值。 听起来我们必须修改 ePWM_setPhaseShfit ()函数或定义 phasecount 值、但我不确定如何操作?

    在 ex2中、我们调整这些中断处理程序内的 CMP 值以更改占空比。

    为了实现特定的相移、您可以执行以下操作:

    这是计算所需相移的公式。 从这个很棒 的资源中获取!  

    1.首先使用该 driverlib 函数启用相移

    ePWM_enablePhaseShiftLoad (myEPWM0_BASE);
    2、然后设置相移值  
    ePWM_setPhaseShift (myEPWM0_BASE、 180);
    如果您尚未了解 SysConfig 工具、我强烈建议您尝试一下。 此工具将在初始化 ePWM 方面提供很大帮助、它可以很好地直观地显示正在生成的代码。
    希望这对您有所帮助!
    此致、
    Ryan Ma
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    感谢您的快速回复! 我得到了想法(仍在尝试弄清楚...)。 同时、我有两个问题:

    1.在 ePWM_ex2_updown_AQ 中、我想查看 fsw (1/PWM 周期)是否可以将10倍提升至250kHz。 因此、我将#define EPWM1_TIMER_TBPRD 200U ( 从2000U 更改为200U)、但开关频率仍为25kHz。 我不确定是什么问题。 哪个 drivelib 的 XXX.h 文件和哪些函数决定了开关频率? 在 ePWM_ex2_updown_AQ 中添加哪些正确的函数?  

    2.对于 ePWM_ex3_synchorelization、我无法判断它的类型。 是递增计数吗? 倒计数? 还是向上计数(&D)?

    谢谢!

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

    您好、Hua、

    1.我假设您更改了.c 文件内的宏定义。 该文件中使用的宏仅用于标头、以便让您知道周期设置为2000。 为了实际更改周期、您需要在项目文件夹中打开 SYSCFG 文件。

    a.双击此.syscfg 文件

    b.您可以在 SYSCFG 中看到时基周期为2000。 在这里、您可以更改为200。

    c.保存此文件并重新编译项目、您应该会看到频率发生了变化。

    注意:单击此图标可找到从 syscfg 生成的代码、当您更改 SYSCFG 中的任何配置时、您可以看到实际更新。

    2.所有 EPWM 均处于向上计数模式。

    最棒的

    Ryan Ma

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

    我现在能够得到180度的相移。 这解决了我的问题。 最后一件事、我们将关闭它。  

    我使用 EPWM_ex3向上计数模式来生成 epwm1A/1B、如所附图片、占空比为25%、Fsw 为1MHz。 我发现有上升沿和下降沿振铃可能是由信号损坏或干扰引起的。 是否有任何快速方法可以将它们删除或缩小? 我是否可以尝试启用事件触发器、这是否有帮助?  

    此致、