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.

TMS320F280049C: TZ异常触发

Part Number: TMS320F280049C


TI的工程师,你好:

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

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

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

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

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

    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口原先用示波器测量过未发现明显下探信号,但是信号干扰比较大,为了排除原因选择了将外部输入信号上拉。

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

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