公司使用了F28335芯片开发逆变器,应用了EPWM1A/B、EPWM2A/B、EPWM4A/B六路PWM。当出现异常保护时,现采用的处理方式是先将六路PWM口模式改为GPIO口模式,然后再将出口数据置零,经试验不可靠,六路输出不能都同时置为低电平,有1到2路仍为高电平的情况出现,严重时出现IGBT直通而烧坏管子。烦请TI专家和各位高手帮忙参考一下,并提供可行的解决方案,先行谢过啦!参考程序如下:
/*PWM端口数据宏定义*/
#define PWM_AL GpioDataRegs.GPADAT.bit.GPIO1
#define PWM_AH GpioDataRegs.GPADAT.bit.GPIO0
#define PWM_BL GpioDataRegs.GPADAT.bit.GPIO3
#define PWM_BH GpioDataRegs.GPADAT.bit.GPIO2
#define PWM_CL GpioDataRegs.GPADAT.bit.GPIO7
#define PWM_CH GpioDataRegs.GPADAT.bit.GPIO6
逆变器异常保护时如下处理:
/* PWM 模式设置为GPIO */
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // GPIO0 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0; // GPIO1 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; // GPIO2 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0; // GPIO3 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0; // GPIO6 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0; // GPIO7 = GPIO
EDIS;
/* PWM口清零关断 */
PWM_AH=0;
PWM_BH=0;
PWM_CH=0;
PWM_AL=0;
PWM_BL=0;
PWM_CL=0;
fanhua kong:
回复 Joey Mao:
好的,我试验一下,看看效果怎么样,多谢了啊!
公司使用了F28335芯片开发逆变器,应用了EPWM1A/B、EPWM2A/B、EPWM4A/B六路PWM。当出现异常保护时,现采用的处理方式是先将六路PWM口模式改为GPIO口模式,然后再将出口数据置零,经试验不可靠,六路输出不能都同时置为低电平,有1到2路仍为高电平的情况出现,严重时出现IGBT直通而烧坏管子。烦请TI专家和各位高手帮忙参考一下,并提供可行的解决方案,先行谢过啦!参考程序如下:
/*PWM端口数据宏定义*/
#define PWM_AL GpioDataRegs.GPADAT.bit.GPIO1
#define PWM_AH GpioDataRegs.GPADAT.bit.GPIO0
#define PWM_BL GpioDataRegs.GPADAT.bit.GPIO3
#define PWM_BH GpioDataRegs.GPADAT.bit.GPIO2
#define PWM_CL GpioDataRegs.GPADAT.bit.GPIO7
#define PWM_CH GpioDataRegs.GPADAT.bit.GPIO6
逆变器异常保护时如下处理:
/* PWM 模式设置为GPIO */
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // GPIO0 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0; // GPIO1 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; // GPIO2 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0; // GPIO3 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0; // GPIO6 = GPIO
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0; // GPIO7 = GPIO
EDIS;
/* PWM口清零关断 */
PWM_AH=0;
PWM_BH=0;
PWM_CH=0;
PWM_AL=0;
PWM_BL=0;
PWM_CL=0;
fanhua kong:
回复 Joey Mao:
好的,我试验一下,看看效果怎么样,多谢了啊!