Part Number: TMS320F28379D Tool/software: Hello, I use four IO as trip signals for EPWM4, EPWM5, and EPWM6. I have an additional IO that I have configured for XINT4, where in the XINT4 ISR, I will disable those same EPWM channels (4,5,6). I am seeing an issue where at the start of XINT4 ISR (where I set a breakpoint), the EPWM channels are turned off / tripped before reaching the code that should turn them off. The ISR: __interrupt void xint4_isr(void){ EPWM_forceTripZoneEvent(EPWM4_BASE, EPWM_TZ_FORCE_EVENT_OST); EPWM_forceTripZoneEvent(EPWM5_BASE, EPWM_TZ_FORCE_EVENT_OST); EPWM_forceTripZoneEvent(EPWM6_BASE, EPWM_TZ_FORCE_EVENT_OST); Interrupt_clearACKGroup(INTERRUPT_ACK_GROUP1); } I have the breakpoint set on the first call to EPWM_forceTripZoneEvent. When I force XINT4 interrupt, it stops at the breakpoint, but all EPWM channels have already turned off. I configure this with XBAR_setInputPin(XBAR_INPUT1, 131); XBAR_setInputPin(XBAR_INPUT2, 24); XBAR_setInputPin(XBAR_INPUT3, 27); XBAR_setInputPin(XBAR_INPUT4, 60); XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX01_INPUTXBAR1); XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX03_INPUTXBAR2); XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX05_INPUTXBAR3); XBAR_setEPWMMuxConfig(XBAR_TRIP4, XBAR_EPWM_MUX07_INPUTXBAR4); XBAR_enableEPWMMux(XBAR_TRIP4, XBAR_MUX01 | XBAR_MUX03 | XBAR_MUX05 | XBAR_MUX07); EPWM_setTripZoneAction(EPWM4_BASE, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW); EPWM_setTripZoneAction(EPWM4_BASE, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW); EPWM_enableTripZoneSignals(EPWM4_BASE, EPWM_TZ_SIGNAL_DCAEVT1); EPWM_selectDigitalCompareTripInput(EPWM4_BASE, EPWM_DC_TRIP_TRIPIN4, EPWM_DC_TYPE_DCAH); EPWM_setTripZoneDigitalCompareEventCondition(EPWM4_BASE, EPWM_TZ_DC_OUTPUT_A1, EPWM_TZ_EVENT_DCXH_HIGH); EPWM_setDigitalCompareEventSyncMode(EPWM4_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_INPUT_NOT_SYNCED); EPWM_setTripZoneAction(EPWM5_BASE, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW); EPWM_setTripZoneAction(EPWM5_BASE, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW); EPWM_enableTripZoneSignals(EPWM5_BASE, EPWM_TZ_SIGNAL_DCAEVT1); EPWM_selectDigitalCompareTripInput(EPWM5_BASE, EPWM_DC_TRIP_TRIPIN4, EPWM_DC_TYPE_DCAH); EPWM_setTripZoneDigitalCompareEventCondition(EPWM5_BASE, EPWM_TZ_DC_OUTPUT_A1, EPWM_TZ_EVENT_DCXH_HIGH); EPWM_setDigitalCompareEventSyncMode(EPWM5_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_INPUT_NOT_SYNCED); EPWM_setTripZoneAction(EPWM6_BASE, EPWM_TZ_ACTION_EVENT_TZA, EPWM_TZ_ACTION_LOW); EPWM_setTripZoneAction(EPWM6_BASE, EPWM_TZ_ACTION_EVENT_TZB, EPWM_TZ_ACTION_LOW); EPWM_enableTripZoneSignals(EPWM6_BASE, EPWM_TZ_SIGNAL_DCAEVT1); EPWM_selectDigitalCompareTripInput(EPWM6_BASE, EPWM_DC_TRIP_TRIPIN4, EPWM_DC_TYPE_DCAH); EPWM_setTripZoneDigitalCompareEventCondition(EPWM6_BASE, EPWM_TZ_DC_OUTPUT_A1, EPWM_TZ_EVENT_DCXH_HIGH); EPWM_setDigitalCompareEventSyncMode(EPWM6_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_INPUT_NOT_SYNCED); and XBAR_setInputPin(XBAR_INPUT13, 63); GPIO_setInterruptType(GPIO_INT_XINT4, GPIO_INT_TYPE_FALLING_EDGE); GPIO_enableInterrupt(GPIO_INT_XINT4); Do you see any issue in the above configuration that will cause EPWM4/EPWM5/EPWM6 to trip when I have asserted (0) GPIO63/XBAR_INPUT13? Thanks
↧