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.

[参考译文] TMS320F28377S:ePWM1A 和 ePWM1B 之间的相位差问题

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/852067/tms320f28377s-phase-differences-problem-between-epwm1a-and-epwm1b

器件型号:TMS320F28377S

您好、Evereybody、

我尝试使用 ePWM1A 和 ePWM1B 输出。 当我使用它们时,没有任何问题。

但是、当我主动或被动它们时、会出现问题。 我试着用图片来解释。

对于 ePWM1A 和 ePWM1B、我的频率为16kHz。 但我不能将它们一起使用。 它们中只有一个可以具有输出。

在 t1:当 ePWM1A 被清零时,ePWM1B 被置位。

T2: 当 ePWM1B 被清零时、ePWM1A 被置位、但正如您在图1和图2中看到的、eachother 不相等。 2只是半个周期、但1是一个周期、并暂停...

这是我的应用程序上的问题、我无法理解? 为什么会发生这种情况?

在程序中、我在相同的位置设置和清除...

我的 PWM 初始化代码:

EPwm1Regs.TBPRD =周期;
EPwm1Regs.CMPA.bit.CMPA= 100;
EPwm1Regs.CMPB.bit.CMPB =周期-100;
EPwm1Regs.TBPHS.bit.TBPHS = 0;
EPwm1Regs.TBCTR = 0x0000;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//主 EPWM1A
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_IMMETERM;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_Zero_PRD;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_Zero_PRD;

EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;

EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.CBD = AQ_SET;

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

    您好!

    我认为这是因为您的配置。
    您使用的是向上/向下计数模式、但 PWM 设置不同。

    EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
    EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
    EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;
    EPwm1Regs.AQCTLB.bit.CBD = AQ_SET;

    当您在打开/关闭 PWMA 和 PWMB 之间切换时-这可能是 PWM 的时基不同的时间实例。
    因此、根据您在打开/关闭 PWMA 和 PWMB 之间进行切换的时间、波形看起来非常像上面所示。
    如果您需要相同的 T1/T2、则可以尝试对 PWMA 和 PWMB 使用相同的配置、如下所示。
    EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;
    EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR;

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

    您好!

    感谢您的宝贵意见。

    您可能是对的、但我无法更改设置。 因为我需要180度的相位差来达到1A 和1B,所以采用这种设置时,相位差为180度。

    如果我更改设置的值为 r.t、则1A 和1B 之间不会存在相位差。

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

    您好!

    我从波形中看到、在给定的时间、您只有一个 PWM 打开- PWMA 或 PWMB。
    那么、如果一次只有1个 PWM 导通、上面提到的相位差是什么?
    对于上述配置、T1和 T2的差异是预期行为。  

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

    您好!

    是的、你是对的。 在我的应用中、有时只打开 EPWM1A (此时 EPWM1B 关闭)、有时只打开 EPWM1B (此时 EPWM1A 关闭)、有时 ePWM 1A 和 ePWM 1B 都打开(具有相位差的所有方法)。

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

    您好!

    感谢您的确认。 由于这是预期行为-我将继续并将其标记为已解决、请关闭 TT。