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.

TMS320F280021-Q1: ePWM做LLC控制过程pwm上下管驱动发波直通问题

Part Number: TMS320F280021-Q1
Other Parts Discussed in Thread: TMS320F280021

问题:用TMS320F280021做LLC充电过程,ePWM3和ePwm4为驱动H桥LLC,PWM工作频率为80K~150K,为软件设置的上下限值,谐振工作频率为90KHZ。当LLC工作过程进行调节频率从85K往下调节,接近80K时,偶尔有几率有发生半桥上下MOS管驱动同高现象,非百分百,MOS管直通短路,管子烧坏。请问各位大神帮忙审核下配置是否有问题?感谢!

波形如下:

短路前一时刻的驱动波形和频率:

以下为PWM配置代码:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void UserSetEPWM()
{
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;
EALLOW;
GpioCtrlRegs.GPHAMSEL.bit.GPIO242 = 0;
GpioCtrlRegs.GPHQSEL2.bit.GPIO242 = 3;
InputXbarRegs.INPUT1SELECT = 242;
GpioCtrlRegs.GPHLOCK.bit.GPIO242 = 1;
GpioCtrlRegs.GPHCR.bit.GPIO242 = 1;
InputXbarRegs.INPUTSELECTLOCK.bit.INPUT1SELECT = 1;
EPwm1Regs.TZSEL.bit.OSHT1 = TZ_ENABLE;
EPwm2Regs.TZSEL.bit.OSHT1 = TZ_ENABLE;
EPwm3Regs.TZSEL.bit.OSHT1 = TZ_ENABLE;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

以下为PWM转载代码:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void loadpwm()
{
F_SW = CC_PID.PIDU; //PI
F_SW = __fmin(150,F_SW);
F_SW = __fmax(80,F_SW);
EPWMPeriod = 50000 / F_SW;
EPWMPeriod_DIV2 = EPWMPeriod / 2;
LLC_Hduty_EPWM = LLC_duty * EPWMPeriod_DIV2;
if( LLC_Hduty_EPWM > EPWMPeriod_DIV2 - 25 )
{
LLC_Hduty_EPWM = EPWMPeriod_DIV2 - 25;
}
EPWMPeriod = EPWM_Cal_SW / F_SW;
EPWMPeriod_DIV2 = EPWMPeriod / 2;
EPWMPeriod = EPWMPeriod_DIV2 * 2;
F_Int = 50;
T_Ctrl = 0.001f/F_Int;
EPwm3Regs.TBPRD = EPWMPeriod; //Period of TB = 10kHz
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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