Part Number: LAUNCHXL-F28P65X
Hello Team,
I am trying to use the CMPSS Low Comparator to trip the ePWM1 signal. For testing purposes, I have configured the DAC threshold value to 2048. However, I am unable to observe any trip event on ePWM1 when using the low comparator.
The same trip configuration works correctly when I use the High Comparator, and the ePWM signal trips as expected. Therefore, I would like to understand if there are any additional settings required for the Low Comparator path or if there is any issue in my current configuration.
Could you please review this and suggest the necessary changes or debugging steps?
// Enable CMPSS
Cmpss2Regs.COMPCTL.bit.COMPDACE = 1;
// Low comparator:
// Non-inverting input = CMPINx
// Inverting input = DAC
Cmpss2Regs.COMPCTL.bit.COMPLSOURCE = 0;
// Direct comparator output
Cmpss2Regs.COMPCTL.bit.CTRIPLSEL = 0;
// Enable async path
Cmpss2Regs.COMPCTL.bit.ASYNCLEN = 1;
Cmpss2Regs.COMPCTL.bit.COMPLINV = 0;
// DAC reference = VDDA
Cmpss2Regs.COMPDACHCTL.bit.SELREF = 0;
// DAC threshold
Cmpss2Regs.DACLVALS.bit.DACVAL = 2048;
//(Check in Sysconfig for CMPSS2 LOW comparator signal0 which ADC pin is assigned now its A4)
AnalogSubsysRegs.CMPLPMXSEL.bit.CMP2LPMXSEL = 0; // Input Signal 0
EDIS;
EALLOW;
/* Select CMPSS2_CTRIPLon OUT4 MUX3 */
EPwmXbarARegs.OUT4MUX0TO15CFG.bit.MUX3 = 0;
/* Enable MUX3 contribution to OUT4 */
EPwmXbarARegs.OUT4MUXENABLE.bit.MUX3 = 1;
EDIS;
EALLOW;
// DCAH uses TRIP4
EPwm1Regs.DCTRIPSEL.bit.DCALCOMPSEL = 3;
EPwm1Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAL_HI;
EPwm1Regs.TZSEL.bit.DCAEVT1 = 1;
EPwm1Regs.TZSEL.bit.OSHT1 = 1;
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_HI;
EPwm1Regs.TZEINT.bit.OST = 1;
EDIS;
///////////////////////////////////////////////////////////////////////////
EPwm1Regs.TBPRD = 12000; // Set timer period
EPwm1Regs.TBPHS.bit.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter
//
// Setup TBCLK
//
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4; // Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV4;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // Load registers every ZERO
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
//
// Setup compare
//
EPwm1Regs.CMPA.bit.CMPA = 6000;
//
// Set actions
//
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // Set PWM1A on CAU
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // Clear PWM1A on CAD
Thank you for your support.