SPRACY3 June   2021 TMS320F280023C , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040C-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280048C-Q1 , TMS320F280049C , TMS320F280049C-Q1 , TMS320F28076 , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S , TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1

 

  1.   Trademarks
  2. 1Introduction
  3. 2Design Overview
  4. 3CLB Implementation
    1. 3.1 CLB Input Selection
    2. 3.2 Counter and FSM Configuration
    3. 3.3 CLB Output
    4. 3.4 Completed Design
  5. 4Normal Operation With CBC Protection Configuration
    1. 4.1 CBC Protection Configuration
    2. 4.2 Swapping EPWM Configurations During Zero Cross Point
  6. 5Other Considerations
    1. 5.1 Trip Sourced From CMPSS
    2. 5.2 Extend to 3 Phase Inverter
      1. 5.2.1 Input Selection
      2. 5.2.2 Output Selection
    3. 5.3 Achieve 2 Level Protection Scheme
  7. 6Test Results
  8. 7References

CBC Protection Configuration

The trip signal (active low) is required to set as CBC trip event, which forces EPWM1A/B or EPWM2A/B low.

The following code shows that GPIO14, that is EPWM8A, is set as the source for INPUT X-BAR 1, and then fed to ePWM X-BAR TRIP4.

    XBAR_setInputPin(XBAR_INPUT1,14);        // INPUT X-BAR 1 = GPIO14 = EPWM8
    // Configure INPUT X-BAR 1 as EPWM X-BAR TRIP 4 source
    XBAR_setEPWMMuxConfig(XBAR_TRIP4,XBAR_EPWM_MUX01_INPUTXBAR1);
    XBAR_enableEPWMMux(XBAR_TRIP4, XBAR_MUX01);

The trip signal (EPWM8A) is configured as Digital Compare A High (DCAH) in both EPWM1 and EPWM2 modules, and DCAEVT2 event takes effect when DCAH becomes low. The following code snippet shows the configuration for EPWM1, which is achieved in the function “EPWM_CBC_CONFIG(uint32_t base1, uint32_t base2)”, and base1 and base2 are the base addresses of the 2 EPWM modules.

    //EPWM1 CBC
    // DCAH = TRIPIN4 = INPUT X-BAR 1 = EPWM8A
    EPWM_selectDigitalCompareTripInput(base1,EPWM_DC_TRIP_TRIPIN4,EPWM_DC_TYPE_DCAH);

    // DCAH = Low and DCAL = Don't care,Trigger DCAEVT2 when EPWM8A goes low
	
EPWM_setTripZoneDigitalCompareEventCondition(base1,EPWM_TZ_DC_OUTPUT_A2,EPWM_TZ_EVENT_DCXH_LOW);
	
EPWM_setTripZoneDigitalCompareEventCondition(base1,EPWM_TZ_DC_OUTPUT_B2,EPWM_TZ_EVENT_DCXL_LOW);
    // Enable CBC Trip in  ePWM1
    EPWM_setTripZoneAction(base1,EPWM_TZ_ACTION_EVENT_TZA,EPWM_TZ_ACTION_LOW);
    EPWM_setTripZoneAction(base1,EPWM_TZ_ACTION_EVENT_TZB,EPWM_TZ_ACTION_LOW);