TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28335: 关于InstaSPIN-BLDC的PWM波关断脱尾问题的分析及解决

Part Number:TMS320F28335Other Parts Discussed in Thread: INSTASPIN-BLDC, DRV8301

我将InstaSPIN-BLDC移植到TMS320F28335上运行,在分析其PWM波控制方式时测试到如下波形:

上图中,黄色为PWM1A,蓝色为PWM2B,PWM2B存在关断脱尾现象

例程的PWM控制方式,以state1为例,代码如下:

/* State s1: current flows to motor windings from phase A->B, de-energized phase = C */\
case 0:                                                                    /* */\
    EPwm1Regs.CMPA.half.CMPA = uiPosDuty; /* */\
    EPwm2Regs.CMPA.half.CMPA = uiNegDuty; /* */\
    EALLOW;                                                           /* */\
    PHASE_C_OFF;                                                /* */\
    PHASE_A_ON;                                                  /* */\
    PHASE_B_ON;                                                  /* */\
EDIS;                                                                      /* */\
break;

其中,PHASE_X_ON及PHASE_X_OFF的定义如下:

#define PHASE_A_OFF EPwm1Regs.TZFRC.bit.OST = 1
#define PHASE_A_ON EPwm1Regs.TZCLR.bit.OST = 1

#define PHASE_B_OFF EPwm2Regs.TZFRC.bit.OST = 1
#define PHASE_B_ON EPwm2Regs.TZCLR.bit.OST = 1

#define PHASE_C_OFF EPwm3Regs.TZFRC.bit.OST = 1
#define PHASE_C_ON EPwm3Regs.TZCLR.bit.OST = 1

可以看到,例程是通过Tripe Zone单元关断或打开某路PWM波的,在f2803xpwm_cntl_8301.h头文件中有如下定义:

/*—————————————————————————-
Initialization constant for the F280X Trip Zone Control Register
—————————————————————————-*/
#define PWM_CNTL_TZSEL_INIT_STATE ( TZA_FORCE_LO + TZB_FORCE_LO + \
DCAEVT1_HI_Z + DCAEVT2_HI_Z + \
DCBEVT1_HI_Z + DCBEVT2_HI_Z )

但是,在配置ePWM单元时例程并没有使用该宏定义。因此,TZCTL保持其上电初始值:

TZA = TZB = 0,

即当触发TZ时,相应的PWM输出处于高阻态

High impedance (EPWMxA = High-impedance state)

High impedance (EPWMxB = High-impedance state)

这也就造成了PWM并不是立即关断,而存在一定脱尾。

我想这应该和硬件电路有关系,有可能是存在类似寄生电容,或者是存在长距离走线导致的这个问题。

我的系统是CPCI的,28335板卡发出的PWM波经过背板后连接至驱动板的ISO7760F,ISO7760F连接至DRV8301,因此PWM传输距离相对长一些。

为了解决这个问题,我尝试增加了如下代码:

EALLOW;
EPwm1Regs.TZCTL.bit.TZA = 2; // Force EPWMxA to a low state
EPwm1Regs.TZCTL.bit.TZB = 2; // Force EPWMxB to a low state
EPwm2Regs.TZCTL.bit.TZA = 2; // Force EPWMxA to a low state
EPwm2Regs.TZCTL.bit.TZB = 2; // Force EPWMxB to a low state
EPwm3Regs.TZCTL.bit.TZA = 2; // Force EPWMxA to a low state
EPwm3Regs.TZCTL.bit.TZB = 2; // Force EPWMxB to a low state
EDIS;

大家可以使用头文件中的宏函数配置一下TZCTL,从而在触发TZ时使PWM输出转态强制为低电平(如果电路中有反相器,则强制高电平)

在随后的测试中,PWM不再存在关断脱尾,而且BLDC运行的噪音进一步减小了(存在PWM关断脱尾问题时,电机运行没有明显异常,母线电流也没有过流,噪音稍稍大一些,但是并不明显)。

不知道大家在调试中遇到过这个问题没有,以上调试经历分享给大家。

Susan Yang:

谢谢您的分享!

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28335: 关于InstaSPIN-BLDC的PWM波关断脱尾问题的分析及解决
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1