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

TMS320F280049C: TZ异常触发

Part Number:TMS320F280049C

TI的工程师,你好:

  我现在在用280049C这颗芯片做电机控制,发现一个异常现象,停机时刻有时候会触发TZ_OST的故障,本身软件的TZ保护配置了三个,一共两种(外部的TZ输入,内部的TZ_CBC6,内部的比较器输出触发的DC时间),我现在将外部的TZ口上拉,软件内部屏蔽掉该TZ口和TZ_CBC6的功能配置,还是会出现TZ触发的情况(比较器事件并未产生,我做过故意触发DC事件,输出标志位会是两个,一个是OST,另一个是event),已经搞了好几天了,没有头绪,希望给个解析思路,谢谢。

Green Deng:

你好,按照你的说法,3种保护都不可能触发TZ,但是TZ还是被触发了?

那么就需要确定2点,首先TZ到底有没有触发,或者说电机的故障确实是TZ_OST引起的吗?

另外,如果确实是TZ引起的,有没有检测过是哪个TZ引起的,比如TZ口到底有没有信号?

,

Felix:

我的故障显示标志位判断如下:

if(HAL_getPwmEnableStatus(halHandle) == true) //HW OC charles {

  if(HAL_getTripFaults(halHandle) != 0)  {  temp_error_value = EPWM_getTripZoneFlagStatus(halHandle->pwmHandle[0]) | EPWM_getTripZoneFlagStatus(halHandle->pwmHandle[1]) | EPWM_getTripZoneFlagStatus(halHandle-     >pwmHandle[2]);

motorVars.faultNow.bit.moduleOverCurrent = 1; Flag_Faults_II = (Flag_Faults_II | ((uint64_t)0x01 << (1 – 1)));//故障定义位1 硬件过流

  }

}

static inline uint16_t HAL_getTripFaults(HAL_Handle handle){ HAL_Obj *obj = (HAL_Obj *)handle; uint16_t tripFault = 0;

tripFault = (EPWM_getTripZoneFlagStatus(obj->pwmHandle[0]) & (EPWM_TZ_FLAG_OST | EPWM_TZ_FLAG_DCAEVT1 | EPWM_TZ_FLAG_DCAEVT2)) | (EPWM_getTripZoneFlagStatus(obj->pwmHandle[1]) & (EPWM_TZ_FLAG_OST | EPWM_TZ_FLAG_DCAEVT1 | EPWM_TZ_FLAG_DCAEVT2)) | (EPWM_getTripZoneFlagStatus(obj->pwmHandle[2]) & (EPWM_TZ_FLAG_OST | EPWM_TZ_FLAG_DCAEVT1 | EPWM_TZ_FLAG_DCAEVT2));

}

故障出现在停机时刻,我当前的停机控制做了一个逻辑,降速到3000转上桥臂全部断开,下桥臂全部闭合制动,在此制动过程中如果检测电流大于设定阈值将PWM全关闭(软件强制触发TZ的方式)

在故障时刻temp_error_value 读取到的值为EPWM_TZ_FLAG_OST;TZ口原先用示波器测量过未发现明显下探信号,但是信号干扰比较大,为了排除原因选择了将外部输入信号上拉。

,

Felix:

问题闭环,EPWM_getTripZoneFlagStatus反馈回来的故障就是EPWM_TZ_FLAG_OST,但同时通过EPWM_getOneShotTripZoneFlagStatus反馈发现片上的比较器关联的DC事件被触发,应该关乎比较器配置或外部信号输入的问题,多谢

,

Green Deng:

好的,非常感谢你的反馈!

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280049C: TZ异常触发
分享到: 更多 (0)