Part Number: TMS320F280039C
Other Parts Discussed in Thread: C2000WARE, SYSCONFIG
Hi Team,
I am using TMS320F280039C launchpad and enabled the CMPSS3, EPWM channel 1 and 2 , ADC, EPWMXBAR. My overall idea is if ADC value goes high after the certain DAC value PWM should be off.
i am using Mux signal for LP input -23: A0/B15/C15/DACA_OUT and when provide this pin to VCC, PWM does not go in off state.
Below is the configuration for required modules.
CMPSS1:
HIGH comparator configuration:

CMMPSS MUX select:

LOW compartor configuration:

CMPSS MUX select

Rest all CMPSS configuration is default.
EPWMXBAR setting:

PWM Configuration:
EPwm1Regs.TBPRD = PWM_PERIOD; // Set period to 600 counts for 100KHz PWM Frequency
EPwm1Regs.TBCTR = 0;
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Up-down count mode
EPwm1Regs.TBCTL.bit.PHSEN = 0;
EPwm1Regs.EPWMSYNCINSEL.bit.SEL = SYNC_IN_SRC_DISABLE_ALL; //Sync in Disabled
EPwm1Regs.TBPHS.bit.TBPHS = PH_ANG_CNT_R;
EPwm1Regs.EPWMSYNCOUTEN.bit.ZEROEN = 1;
EPwm1Regs.CMPA.bit.CMPA = 300;
EPwm1Regs.CMPB.bit.CMPB = 0;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = 0;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = 0;
EPwm1Regs.CMPCTL.bit.LOADAMODE = 0;
EPwm1Regs.CMPCTL.bit.LOADBMODE = 0;
EPwm1Regs.CMPC = 0;
EPwm1Regs.CMPD = 0;
//Action Qualifier Control Register For Output A
EPwm1Regs.AQCTLA.bit.CBD = AQ_NO_ACTION;
EPwm1Regs.AQCTLA.bit.CBU = AQ_NO_ACTION;
EPwm1Regs.AQCTLA.bit.PRD = AQ_NO_ACTION;
EPwm1Regs.AQCTLA.bit.ZRO = AQ_NO_ACTION;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
//Action Qualifier Control Register For Output B
EPwm1Regs.AQCTLB.bit.CAU = AQ_NO_ACTION;
EPwm1Regs.AQCTLB.bit.CBD = AQ_SET;
EPwm1Regs.AQCTLB.bit.CBU = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.PRD = AQ_NO_ACTION;
EPwm1Regs.AQCTLB.bit.ZRO = AQ_NO_ACTION;*/
//Trip Zone
EALLOW;
EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
EPwm1Regs.TZSEL.bit.OSHT1 = 1;
EPwm1Regs.TZEINT.bit.OST = 1;
EDIS;
//Dead Band
EPwm1Regs.DBRED.bit.DBRED = DEADBAND_200; //200ns
EPwm1Regs.DBFED.bit.DBFED = DEADBAND_200; //200ns
EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; //Active Low
EPwm1Regs.DBCTL.bit.OUT_MODE = 3;
//Event Trigger
EPwm1Regs.ETSEL.bit.INTEN = 1;
EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;
EPwm1Regs.ETPS.bit.INTPSSEL = 1;
EPwm1Regs.ETINTPS.bit.INTPRD2 = 1;
//ADC SOC
EPwm1Regs.ETSEL.bit.SOCAEN = 1;
EPwm1Regs.ETSEL.bit.SOCASEL = 4;
EPwm1Regs.ETPS.bit.SOCAPRD = 1;
I am able to read the ADC value for providing ground and VCC to that perticular Pin number (23: A0/B15/C15/DACA_OUT).
Inside the main function PWM initlize and GPIO initlisation are done and nothing is running inside while loop.
Please let me know what I am missing.
Thank you
Shashank
