I'm trying to set up a trip-zone input on an F28377D part, based on the epwm_trip_zone example in controlSUITE. I'm configuring EPWM1 to set both signals low on TZ1. I'm using GPIO11 as an output and tying this physically to GPIO12 on my control card, which I'm configuring as an input and tying to TZ1 using the input x-bar. The idea is that I can change GPIO11 and see the effect of that on the PWM signals. The problem I'm having is that it appears to always be tripped, regardless of the value of GPIO11 or GPIO12. If I set the appropriate bits in the TZCLR or TZCBCCLR registers, the corresponding bit in TZFLG or TZCBCFLG always stays set.
I can see the values of GPIO11 and GPIO12 change as expected in the GPADAT register.
I also read through this post, and I think I'm understanding everything there and doing everything according to the suggestions: http://e2e.ti.com/support/microcontrollers/c2000/f/171/p/328007/1142569.aspx#1142569
Can anyone suggest what I might be doing wrong? Here are the relevant bits of code:
EALLOW;
// Configure GPIO11 to output a signal for TESTING the cap fault trip zone.
GPIO_SetupPinOptions(11, GPIO_OUTPUT, GPIO_ASYNC);
GPIO_SetupPinMux(11, GPIO_MUX_CPU1, 0);
GpioDataRegs.GPASET.bit.GPIO11 = 1;
// Configure GPIO12 as CAPFAULT_IN for TESTING capacitor fault trip-zone. We set it here
// as a GPIO input, then it is configured as a trip-zone through the input crossbar.
GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0; // enable pull-up on GPIO12 (TZ1)
GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 3; // asynch input for GPIO12 (TZ1)
InputXbarRegs.INPUT1SELECT = 12;
// Enable TZ1 to force PWMs LOW cycle-by-cycle.
EPwm1Regs.TZSEL.bit.CBC1 = 1;
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
EDIS;