Hello,
With 280049, we want to monitor several analog inputs to trig the EPwm with the comparators.
For instance, we have started with 2 comparators (1 and 3) and we'll set the 7.
The problem we faced is :
CMPSS1 works fine and trig the Epwm
CMPSS3 works fine when CMPSS1 is not enabled, it triggers the Epwm and an external IO
As soon as I enable CMPSS1, CMPSS3 is not working any more.
I've joined the 2 initializations pieces of code but I don't see in CMPSS1 which instructions could stuck CMPSS3 ?
Best regards
francois
void Comp1Init(void)
{
//! Initialize Output voltage comparator.
//!
//! \param None.
//!
//! CMPSS1
//!
//! \return 0 None.
EALLOW;
CpuSysRegs.PCLKCR14.bit.CMPSS1 = 1; /* 1: Module clock is turned-on. */
Cmpss1Regs.COMPCTL.bit.COMPDACE = 1; /* 1 Comparator/DAC enabled */
/* Comparator High */
Cmpss1Regs.COMPCTL.bit.COMPHSOURCE = 0; /* 0 Inverting input of comparator driven by internal DAC */
Cmpss1Regs.COMPDACCTL.bit.SELREF = 0; /* 0 VDDA is the voltage reference for the DAC */
Cmpss1Regs.DACHVALS.bit.DACVAL = 2048;//3560;
Cmpss1Regs.COMPCTL.bit.CTRIPHSEL = 0; /* 0 Asynchronous comparator output drives CTRIPH */
//Cmpss1Regs.COMPCTL.bit.CTRIPOUTHSEL = 0; /* 0 Asynchronous comparator output drives CTRIPOUTH */
/* Input high = A2 */
AnalogSubsysRegs.CMPHPMXSEL.bit.CMP1HPMXSEL = 0; /* 0 : A2 High Positive */
/* Trip zone on EPwmA */
EPwmXbarRegs.TRIP4MUX0TO15CFG.bit.MUX0 = 0; /* Configure TRIP4 to be CTRIP1H */
EPwmXbarRegs.TRIP4MUXENABLE.bit.MUX0 = 1; /* 1: Respective output of Mux0 is enabled to drive the TRIP4 of EPWM-XBAR */
EDIS;
}
void Comp3Init(void)
{
//! Initialize Output voltage comparator.
//!
//! \param None.
//!
//! CMPSS3
//!
//! \return 0 None.
EALLOW;
CpuSysRegs.PCLKCR14.bit.CMPSS3 = 1; /* 1: Module clock is turned-on. */
Cmpss3Regs.COMPCTL.bit.COMPDACE = 1; /* 1 Comparator/DAC enabled */
/* Comparator High */
Cmpss3Regs.COMPCTL.bit.COMPHSOURCE = 0; /* 0 Inverting input of comparator driven by internal DAC */
Cmpss3Regs.COMPDACCTL.bit.SELREF = 0; /* 0 VDDA is the voltage reference for the DAC */
Cmpss3Regs.DACHVALS.bit.DACVAL = 2048;//3560;
Cmpss3Regs.COMPCTL.bit.CTRIPHSEL = 0; /* 0 Asynchronous comparator output drives CTRIPH */
Cmpss3Regs.COMPCTL.bit.CTRIPOUTHSEL = 0; /* 0 Asynchronous comparator output drives CTRIPOUTH */
/* Input high = B3 */
AnalogSubsysRegs.CMPHPMXSEL.bit.CMP3HPMXSEL = 3; /* 3 : B3 High Positive */
/* Trip zone on EPwmA */
EPwmXbarRegs.TRIP7MUX0TO15CFG.bit.MUX4 = 0; /* Configure TRIP7 to be CTRIP3H */
EPwmXbarRegs.TRIP7MUXENABLE.bit.MUX4 = 1; /* 1: Respective output of Mux0 is enabled to drive the TRIP7 of EPWM-XBAR */
/* Output to pin */
OutputXbarRegs.OUTPUT5MUX0TO15CFG.bit.MUX4 = 0; /* 00 : Select .0 input for Mux0 */
OutputXbarRegs.OUTPUT5MUXENABLE.bit.MUX4 = 1; /* 1: Respective output of Mux0 is enabled to drive the OUTPUT5 of OUTPUT-XBAR */
GpioCtrlRegs.GPADIR.bit.GPIO28 = 1; /* 1: The pin is an output */
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1;
GpioCtrlRegs.GPAGMUX2.bit.GPIO28 = 1;
EDIS;
}