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.

[参考译文] F28M35H52C:EPWMxB 的工作原理与 EPWMxA 不同

Guru**** 2538950 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1020230/f28m35h52c-epwmxb-is-not-working-same-as-epwmxa

器件型号:F28M35H52C

您好!

下面是我的 EPWM9配置。 我使用 PWM2到7生成了三相 SPWM。

我希望 t 生成与 SPWM 同步的50Hz 方波。 我使用 PWM9A 为 Uphase 生成50Hz、为 W phase 生成9B。

我的配置如下。

EALLOW;
// TZ1中断使能
EPwm9Regs.TZSEL.bit.OSHT1 = 1;// TZ 1拉电流以强制 PWM 为高电平
EPwm9Regs.TZCTL.bit.TZA = TZ_FORCE_HI;
EPwm9Regs.TZCTL.bit.TSB = TZ_FORCE_HI;

EPwm9Regs.TBPRD = 18750;//PWM 周期
EPwm9Regs.TBPHS.Half.TBPHS = 0;//相位为0
EPwm9Regs.TBCTR = 0;//清除计数器

//设置 TBCLK
EPwm9Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
EPwm9Regs.TBCTL.bit.PHSEN = TB_ENABLE;
EPwm9Regs.TBCTL.bit.PHSDIR = TB_UP;
EPwm9Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm9Regs.TBCTL.bit.CLKDIV = TB_DIV1;

EPwm9Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm9Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm9Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm9Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

//设置比较
EPwm9Regs.CMPA.half.CMPA = 0;//初始比较
EPwm9Regs.CMPB = 0;//初始比较

EPwm9Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm9Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm9Regs.AQCTLB.bit.CBU = AQ_SET;
EPwm9Regs.AQCTLB.bit.CBD = AQ_SET;

EPwm9Regs.AQSFRC.bit.ACTSFA = 0x02;
EPwm9Regs.AQSFRC.bit.ACTSFB = 0x02;
EPwm9Regs.AQSFRC.bit.RLDSF = 0x03;

EPwm9Regs.DBCTL.bit.OUT_MODE = DB_DISABLE;//死区模块被禁用
EDIS;

为了生成正弦波、只要有正弦器件、我就将 PWM 引脚设为高电平、而正弦为负时将 PWM 引脚设为低电平。

50Hz 壁挂生成的代码;
实际要求有一些不同、但这是代码的一部分、其中我必须生成与 SPWM 同步的50Hz 降噪波。

VUREF_RAM_PWM12 =>正弦 PWM

IF (VUREF_RAM_PWM12 >= 0)

EPwm9Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm9Regs.AQCTLB.bit.CBU = AQ_SET;

其他

EPwm9Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm9Regs.AQCTLB.bit.CBU = AQ_CLEAR;

在引脚9A:有50Hz 方波

在引脚9B 上:只观察到恒定高+3.3V 电压。

我在 PWM7模块中进行了相同的配置来验证。 此外、PWM7A 提供50Hz 正弦波、而 PWM7B 提供恒定高电平。

有人可以帮助吗?

回复、

Umang

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

    您是否在 GPIO 缓冲器中启用了 EPWM7b 或9B 多路复用器选项?

    您是否有任何其他配置、如跳闸区域模块? 由于我在那里看到了一些配置、我会说跳闸区域是影响 PWM 输出的最后一个模块、因此如果它尝试将 PWM 输出驱动为高电平、则无论操作限定符内部发生了什么情况。

    您是否使用了死区子模块?

    此致、
    Cody