Part Number: LAUNCHXL-F280049C
Tool/software:
Hi.
I am studying the code available for the C2000 DPS BoosterPack, and I have a question about the blanking window (I am working in open-loop VMC). This is what the CMPSS module ends up with after configuration:

-
CTRIPL goes to the EPWM X-Bar.
-
CTRIPOUTL goes to the OUTPUT X-Bar.
After configuring the trip current and the digital filtering, the code selects the EPWM1BLANK signal as the source and enables the EPWMBLANK signal.
// // Use the Blanking signal from Sync Buck EPWM to reject switching noise // CMPSS_configBlanking(BUCK_OC_CMPSS_BASE, BUCK_DRV_EPWM_NUM); CMPSS_enableBlanking(BUCK_OC_CMPSS_BASE);
Then, it configures the blanking window for the EPWM
//BUCK_DRV_EPWM_TBPRD = 499 (100MHz/200kHz -1)
//BUCK_DRV_EPWM_DC_BLANK_EARLY (5)
#define BUCK_DRV_EPWM_DC_BLANK_OFFSET ((uint16_t)BUCK_DRV_EPWM_TBPRD - BUCK_DRV_EPWM_DC_BLANK_EARLY)//494
//BUCK_EPWM_NS = 10nS
//BUCK_DRV_EPWM_DC_BLANK_EARLY = 5
#define BUCK_DRV_EPWM_DC_BLANK_LENGTH ((uint16_t)(190 / BUCK_EPWM_NS) + BUCK_DRV_EPWM_DC_BLANK_EARLY)//24
//
// BUCK_HAL_setupSyncBuckBlankingWindow - Use ePWM blanking window (filter) to:
// A) Avoid boundary conditions originating from comparator trips arriving
// near the end of ePWM cycles, and
// B) Switching noise at the start of ePWM cycles (VMC)
//
void BUCK_HAL_setupSyncBuckBlankingWindow(void)
{
EPWM_setDigitalCompareFilterInput(BUCK_DRV_EPWM_BASE,
BUCK_DRV_EPWM_DC_BLANK_SOURCE);
EPWM_setDigitalCompareBlankingEvent(BUCK_DRV_EPWM_BASE,
BUCK_DRV_EPWM_DC_BLANK_PULSE);
EPWM_setDigitalCompareWindowOffset(BUCK_DRV_EPWM_BASE,
BUCK_DRV_EPWM_DC_BLANK_OFFSET);
EPWM_setDigitalCompareWindowLength(BUCK_DRV_EPWM_BASE,
BUCK_DRV_EPWM_DC_BLANK_LENGTH);
EPWM_enableDigitalCompareBlankingWindow(BUCK_DRV_EPWM_BASE);
}
My questions are:
-
In the first code, when you configure:
-
CMPSS_Reg.COMPDACCTL.BLANKSOURCE = 0 -
CMPSS_Reg.COMPDACCTL.BLANKSOURCE = 1
Does this mean I am telling the MCU that EPWM1 will hold the trip when it occurs? Is this correct?
-
-
I don’t fully understand the configuration of the blanking window. I understand that the blanking window helps DCAEVT1/2 and DCBEVT1/2 avoid glitches, false flags (e.g., overcurrent), etc. However, how do I know if CTRIPL or CTRIPOUTL corresponds to DCAEVT1?
Checking Table 9-2, I see:
-
CMPSS1_CTRIPL = INPUTXBAR1 | CLB1_OUT12 | ADCCEVT1 -
CMPSS1_CTRIPH = ADCAEVT1
How do I determine which signal corresponds to DCAEVT1?
-

-
The blanking window configuration code selects:
-
ePWM_Reg.DCFCTL.PULSESEL = 1(Pulse select whenTBCTR = 0x00) -
ePWM_Reg.DCFOFFSET = 494 -
ePWM_Reg.DCFWINDOW = 24
How did the code select these values? How do I determine what window value and offset are suitable for my application?
-
