Hello,
I'm trying to set the frequency of a pwm signal but can't quite figure out the results.
The microcontroller'sTechnical Reference Manual gives a formula to choose a TBPRD value according to the frequency that I want.

Using CLKDIV and HSPCLKDIV = 0, and knowing the SYSCLK (90 MHz, according to the technical documentation of the microcontroller), I'd need TBPRD = 899 to achieve a pwm frequency of 100 kHz. But, instead, this TBPRD results in about 11,2 kHz. Doing the reverse math, it means that SYSCLK = 10 MHz, approximately.
What am I doing wrong? Does the launchpad affect the SYSCLK?
Below is the example code.
#include "DSP28x_Project.h"
float D = 0.5;
int main(void){
DisableDog();
InitPeripheralClocks();
InitGpio();
EALLOW;
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1;
EDIS;
EPwm1Regs.TBCTR = 0;
EPwm1Regs.TBPRD = 1000;
EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD * D;
EPwm1Regs.TBPHS.all = 0;
EPwm1Regs.TBCTL.all = 0;
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL= TB_SYNC_DISABLE;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0;
EPwm1Regs.TBCTL.bit.CLKDIV = 0;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;
while(1) {}
}
Thanks in advance.