This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PWM Count Up-Down mode period

I'm working on the Concerto F28M35x. I have the PWM timebase registers configured to Count Up-Down Mode. In this mode, the PRD is supposed to be half the period (it counts up to PRD, then back down to zero). However, the frequency that I get doesn't seem to conform to this. Why might this be? Am I misunderstanding something?

Here are my register configurations:

    EPwm1Regs.TBCTL.bit.CLKDIV = 000;  // No Clock prescale - use full SYSCLK
    EPwm1Regs.TBPRD = PWM_HALF_PERIOD;  // 2x this period gives # of cycles for PWM period
    EPwm1Regs.TBPHS.half.TBPHS = 0;  // Set Phase register to zero
    EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;  // Symmetrical mode
    EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;  // Master module
    EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
    EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;  // Sync down-stream module
    EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
    EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;  // load on CTR=Zero
    EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;  // load on CTR=Zero
    EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;  // set actions for EPWM1A
    EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
    EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;  // enable Dead-band module
    EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC;  // Active Hi complementary
    EPwm1Regs.DBFED = DEADBANDCOUNT;  // FED = 50 TBCLKs
    EPwm1Regs.DBRED = DEADBANDCOUNT;  // RED = 50 TBCLKs


The C28 is set at 150MHz. The constant PWM_HALF_PERIOD is 9375. I get 4kHz switching frequency, where by the documentation I should expect 8kHz. Why is that?