Part Number: TMS320F280039
Tool/software:
Dear TI,
I am using PWM5 and PWM7 at a frequency change project. My main isr freqency is timer at 20K Hz. And PWM will change from 20K to 400K Hz. In 20K ISR, the software may change PRD, CMPA, CMPB at same time.
PWM is up-down mode. And load PRD and CMP form shadow register.
And sometimes AQ Submodule may miss CAU to turn on PWMA.
I change the PWMA to load time form CC_CTR_ZERO, CC_CTR_PRD,CC_CTR_ZERO_PRD. But the miss is still there.
Is there any other Regs that I am forgetting to configure?
the following code is PWM5 configuration and PWM7 is the same.
EPwm5Regs.TBCTL.bit.PRDLD = TB_SHADOW; // set Shadow load
EPwm5Regs.TBCTL2.bit.PRDLDSYNC = 0;
EPwm5Regs.TBPRD = 400; // PWM frequency = 1/(2*TBPRD)
EPwm5Regs.CMPA.bit.CMPA = 200; // set duty 50% initially
EPwm5Regs.CMPA.bit.CMPAHR = 0; // initialize HRPWM extension
EPwm5Regs.CMPB.bit.CMPB = 200; // set duty 50% initially
EPwm5Regs.CMPB.bit.CMPBHR = 0;
EPwm5Regs.TBPHS.all = 0;
EPwm5Regs.TBCTR = 0;
EPwm5Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Select up-down
// count mode
EPwm5Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm5Regs.TBCTL.bit.CLKDIV = TB_DIV1; // TBCLK = SYSCLKOUT
EPwm5Regs.TBCTL.bit.FREE_SOFT = 11;
EPwm5Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // LOAD CMPA on CTR = PRD
EPwm5Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm5Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm5Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm5Regs.AQCTLA.bit.CAU = AQ_CLEAR; // PWM toggle high/low
EPwm5Regs.AQCTLA.bit.CAD = AQ_SET;
EPwm5Regs.AQCTLB.bit.CBU = AQ_SET; // PWM toggle high/low
EPwm5Regs.AQCTLB.bit.CBD = AQ_CLEAR;
Thank you for your help