Other Parts Discussed in Thread: UCD3138
Tool/software: Code Composer Studio
The DPWM3 initialized code as follow:
// Control-0
Dpwm3Regs.DPWMCTRL0.bit.PWM_EN = 1; // Enable, wait for Global En
Dpwm3Regs.DPWMCTRL0.bit.CLA_EN = 0; // CLA Disabled, using curr limit to chop
Dpwm3Regs.DPWMCTRL0.bit.PWM_MODE = 0; // Set mode: 0 - Normal
Dpwm3Regs.DPWMCTRL0.bit.MSYNC_SLAVE_EN = 1; // slave
Dpwm3Regs.DPWMCTRL0.bit.CBC_ADV_CNT_EN = 0; // Adv cnt limit enabled
Dpwm3Regs.DPWMCTRL0.bit.CBC_PWM_AB_EN = 0; // Current limit enabled for AB outputs
Dpwm3Regs.DPWMCTRL0.bit.PWM_A_INTRA_MUX = 0;
Dpwm3Regs.DPWMCTRL0.bit.PWM_B_INTRA_MUX = 0;
Dpwm3Regs.DPWMCTRL0.bit.BLANK_A_EN = 1;
// Control-1
Dpwm3Regs.DPWMCTRL1.bit.HIRES_DIS = 1;
//Dpwm3Regs.DPWMCTRL1.bit.ALL_PHASE_CLK_ENA = 1;
Dpwm3Regs.DPWMCTRL1.bit.CHECK_OVERRIDE = 1;
Dpwm3Regs.DPWMCTRL1.bit.EVENT_UP_SEL = 1; // UPdate end of period
Dpwm3Regs.DPWMEV1.all = DPWM3_EVT1;
Dpwm3Regs.DPWMEV2.all = DPWM3_EVT2;
Dpwm3Regs.DPWMEV3.all = DPWM3_EVT3;
Dpwm3Regs.DPWMEV4.all = DPWM3_EVT4;
Dpwm3Regs.DPWMPRD.all = (PWM_PERIOD>>1);
Dpwm3Regs.DPWMINT.bit.PRD_INT_SCALE = 2; //every 4 cycles primary(PRD_INT_SCALE = 2)
Dpwm3Regs.DPWMINT.bit.PRD_INT_EN = 1;
But I find that the dpwm3 interrupt don't happen. I use the PMbus protocol and debug_IO toggle to see it. The fir number is 26 in the fast interrupt.
It need your help. Thanks!