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.

[参考译文] TMS320F28027:PWM 波和死区问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1078825/tms320f28027-pwm-wave-and-dead-band-issue

部件号:TMS320F28027

大家好,团队

客户提出的问题可能需要您的帮助:

1) PWM 波形问题如下:

PWM2以20K 运行,PWM 波形遵循 SPWM 的模式,PWM 的 CTRMODE = TB_COUNT_updown;或 updown 模式,配置如下:

EPwm2Regs.TBPRD =1500;//CLK=60MHz 则PWM 频率 F=60*1000/2*1500=20K

EPwm2Regs.AQCTLA.Bit.CAU = AQ_SET;  
EPwm2Regs.AQCTLA.Bit.CAD = AQ_Toggle;

EPwm2Regs.AQCTLA.Bit.ZRO = AQ_CLEAR;

死区设置如下:

EPwm2Regs.DBCTL.bit.in_mode = DBA_All; // EPWMxA 是这两种延迟的源

EPwm2Regs.DBCTL.Bit.Out 模式= DB_Full-enable; //启用死区模块
EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;//活动高互补(AHC)

EPwm2Regs.DBFED =60;//死区设置 TBCLK 6US---360
EPwm2Regs.DBRED = 60;//

因此,此时只需要设置 CMPA (EPwm2Regs.CMPA),以设置 PWM 输出的占空比值。 PWM 的数组元素数为200,这是正弦反相50 Hz 的半周期。 现在,只需反转正弦半轴,数组元素的占空比从0到199显示在下图中(UC 显示在图的底部):

从49到199,CMPA 设置为1499 (TBPRD 为1500)。 通常,PWM2A 输出较低,PWM2B 输出较高。 但实际操作是 PWM2A 的电平较高,PWM2B 的低电平输出在49到199之间如果对49到199使用 TZ 力,PWM2A 的电压较低,PWM2B 的电压较高,则不会出现此问题。 程序代码如下:

代码1用于为 CMPA 分配值1499:

如果(((spwm_table_cnnt>=49)&(spwm_table_cnt <=199)){

  EPwm2Regs.CMPA-Halt.CMPA = 1499;

}

否则{

EALLOW;
IF (EPwm2Regs.TZFLG.bit.OST=1){

  EPwm2Regs.TZCLL.Bit.OST=1;

  EDIS;

}

代码2用于使用 TZ 强制 PWM 输出:

如果(((spwm_table_cnnt>=49)&(spwm_table_cnt <=199)){

  EPwm2Regs.CMPA-Halt.CMPA = 1499;

  EALLOW;
  EPwm2Regs.TZCTL.Bit.TZa=TZ_FORCE_LO;
  EPwm2Regs.TZCTL.Bit.TZB=TZ_FORCE_HI;
 EPwm2Regs.TZCLL.Bit.OST=1;
 EDIS;

}

否则{

EALLOW;
IF (EPwm2Regs.TZFLG.bit.OST=1){

  EPwm2Regs.TZCLL.Bit.OST=1;

  EDIS;

}

PWM2控制的 H 桥输出波形如下:(代码1)

PWM2控制的输出波形如下:(代码2)

2)死区问题如下:

 如果按照客户代码设置,不要使用 TZ,请假设以下情况:  

A. 当中最左侧的 EPWMxA 高且死区的两个边缘计数器都设置为60时,最右侧的 EPWMxA 输出是高还是低? 由于 PWMXA 的脉冲宽度为2 *(1500-1499),60 (即脉冲宽度小于死区计数器设置时),PWMxA 的输出是什么? 上一级输出或输出是否过低?

B. 当 CMPA 设置为1时,EPWMxB 引脚输出电平是高还是低? 还是保持先前的输出级别不变? 由于中的 EPWMxA 脉冲宽度小于 CMPA 为1时的下降边缘计数器,因此客户目前无法理解死区计数的输出。

请帮您检查此案例? 谢谢。

此致,

樱桃

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

    你好,Cherry,

    由于美国假期,请预计明天二月二十二日前作出回应。 给您带来不便的真诚道歉。

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

    樱桃,

    如果死区宽度超过配置的负荷,死区将阻止所有输出。 在上述情况下,EPWMxA 将保持低电平,避免短的高脉冲,而 EPWMxB 将保持高电平,避免短的低脉冲。


    此致,
    Cody