TIDM-02013: Regarding the overcurrent protection in Lab 3

Part Number: TIDM-02013


Hello, expert. I'm sorry to bother you.

 

Regarding the overcurrent protection in Lab 3, when I run the program, it will enter the judgment condition of if((TTPLPFC_PWM_TRIP_STATUS(TTPLPFC_LOW_FREQ_PWM_BASE) & EPWM_TZ_INTERRUPT_DCAEVT1) != 0) and meet this condition, then proceed to execute the following program.

When the input voltage is 81V and the output voltage is 130V, the voltage is boosted but does not reach the expected level. The values of TTPLPFC_pwm_SwState.enum_pwmSwState and TTPLPFC_board_Status.enum_boardStatus are shown in the figure. Afterwards, the output voltage slowly drops to 81V multiplied by the square root of 2.

Subsequently, I commented out these two lines of code.

The values of TTPLPFC_pwm_SwState.enum_pwmSwState and TTPLPFC_board_Status.enum_boardStatus are shown in the figure.There is no voltage boost.

On this basis, I commented out the seventh line of code.

The output voltage reached 173V, which is the result of normal voltage boosting, but only momentarily. After that, the circuit board showed a PH-1-h overcurrent status, yet no current value exceeding the limit of 30A was observed in the monitoring window. Subsequently, the output voltage dropped slowly, but the circuit board continued to display the overcurrent status.

My questions are as follows:
  1. What does the overcurrent protection judgment condition if((TTPLPFC_PWM_TRIP_STATUS(TTPLPFC_LOW_FREQ_PWM_BASE) & EPWM_TZ_INTERRUPT_DCAEVT1) != 0) mean? Why does the system enter overcurrent protection?
  2. Why didn't overcurrent protection occur before commenting out the last two lines of code, but boardStatus_OverCurrentTrip_Ph1_H appeared after commenting them out?
  3. Why is there such a large difference between the values of TTPLPFC_iL2_sensed_Amps and TTPLPFC_iL1_sensed_Amps? Could there be a problem with the sampling?
  • Hello!

    We have received your case and will take some time. Thank you for your patience.

  • The statement if((TTPLPFC_PWM_TRIP_STATUS(TTPLPFC_LOW_FREQ_PWM_BASE) & EPWM_TZ_INTERRUPT_DCAEVT1) != 0) is used to check whether the 3rd bit of the TZFLG register equals 1. However, how does this judgment condition change? Why does this bit remain set to 1 once the program starts boosting voltage, and even stay unchanged after a power-off? This judgment condition should be updated in real time, so why does it remain stuck at 1? How can I solve this problem?

  •  Will adding code to clear the fault in the overcurrent protection function by writing 1 to the TZCLR register have any effect? I'm worried that overcurrent damage might occur.