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: TMS320F28379D

Part Number: TMS320F28379D

我想生成带死区互补HRPWM。死区时间为40ns,但使用高分辨率的比较A时,会对死区时间产生影响。采用利用高分辨率的DB死区,在原有的DB死区上再叠加一定的高分辨率延时,来补偿死区。但示波器测量结果发现我的死区延时实际值和理论值不符。下面是我的代码,请大家帮我找一下错误好吗?

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void UserInitEpwm3()
{
EPwm3Regs.CMPA.bit.CMPA =33; //EPWM_CMP3A;
//EPwm3Regs.CMPB.bit.CMPB = EPWM_CMP3B;//33;
EPwm3Regs.TBPRD = 99; /*Time Base Period Register*/
EPwm3Regs.CMPA.bit.CMPAHR = 12096;//EPWM_CMP3AHR; //25*256;// 10688;
//EPwm3Regs.CMPB.bit.CMPBHR =0; //12096;
EPwm3Regs.TBCTL.bit.CLKDIV = 0x0; /*Time Base Clock Pre-Scale Bits*/
EPwm3Regs.TBCTL.bit.CTRMODE = 0x0; /*Counter Mode*/
EPwm3Regs.TBCTL.bit.FREE_SOFT = 0; /*Emulation Mode Bits*/
EPwm3Regs.TBCTL.bit.HSPCLKDIV = 0x0; /*High Speed Time Base Clock Pre-Scale Bits*/
EPwm3Regs.TBCTL.bit.PHSDIR = 0x1; /*Phase Direction Bit*/
EPwm3Regs.TBCTL.bit.PHSEN = 0x1; /*Counter Reg Load from Phase Reg Enable*/
EPwm3Regs.TBCTL.bit.PRDLD = 0x1; /*Active Period Reg Load from Shadow Select*/
/*PWM.TBCTL.bit.SWFSYNC*/
// EPwm3Regs.TBCTL.bit.SYNCOSEL = 0x3; /*Sync Output Select*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 您好我们已收到您的问题并升级到英文论坛寻求帮助,如有答复将尽快回复您。谢谢!

  • 您好,

    我想生成带死区互补HRPWM

    您这边计数器模式设置为up-count mode。 您能否尝试使用up-down count mode。 如果使用 HRPWM,则在使用up-count mode时不支持死区。

    以下是F28003x TRM 的一个片段。 我们尚未更新 F2837x TRM,但相同的注释同样适用:

  • 您好,我比着例程设置为up-down count mode,但BEP,REP控制模式我都试过了,PWM波形边沿的延时都不正确。

  • Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    (*ePWM[4]).TBCTL.bit.PRDLD = TB_SHADOW; // Set Immediate load
    //
    // PWM frequency = 1 / PeriodConfig
    //
    (*ePWM[4]).TBPRD = 100;
    //
    // Set duty 50% initially and initialize HRPWM extension
    //
    (*ePWM[4]).CMPA.bit.CMPA = 40;
    (*ePWM[4]).CMPA.bit.CMPAHR = (40<< 8);
    (*ePWM[4]).CMPB.bit.CMPB = 40;
    //(*ePWM[4]).CMPB.bit.CMPBHR = (1 << 8);
    (*ePWM[4]).TBPHS.all = 0;
    (*ePWM[4]).TBCTR = 0;
    (*ePWM[4]).TBCTL.bit.CTRMODE = 0x02;
    (*ePWM[4]).TBCTL.bit.PHSEN = 0x1; // ePWM1 is the Master
    (*ePWM[4]).HRPCTL.bit.TBPHSHRLOADE = 1;
    (*ePWM[4]).TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 好的我们跟进给工程师看下。

  • 比着例程设置为up-down count mode,但BEP,REP控制模式我都试过了,PWM波形边沿的延时都不正确。

    您好,请问相比起测量值来说,预期值是多少?

x 出现错误。请重试或与管理员联系。