TI中文支持网
TI专业的中文技术问题搜集分享网站

关于28075中PWM波频率的问题

 首先设置了主频 120M,外部晶振20M:

 InitSysPll(XTAL_OSC,IMULT_12,FMULT_0,PLLCLK_BY_2);

接着在EPWM初始化的c程序中也完成了设置,增减计数,未进行分频:

EPwm8Regs.TBPRD = Half_Period;
EPwm8Regs.CMPA.bit.CMPA = 0;
EPwm8Regs.CMPB.bit.CMPB = 0;
EPwm8Regs.TBCTR = 0;
EPwm8Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
EPwm8Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm8Regs.TBPHS.bit.TBPHS = 0;
EPwm8Regs.TBCTL.bit.PHSDIR = TB_UP;
EPwm8Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm8Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; // Pass through
EPwm8Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm8Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm8Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm8Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm8Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm8Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

EPwm8Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm8Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm8Regs.AQCTLB.bit.CAD = AQ_CLEAR;
EPwm8Regs.AQCTLB.bit.CAU = AQ_SET;

同时也在头文件中定义了PWM频率为100K:

#define SYSCLK (120000000UL) // < System Clock frequency

#define PWMFreq (100000) // PWM Frequency
#define Half_Period (SYSCLK/PWMFreq/2) //half period of PWM

但是为什么从引脚上测出来的PWM波是50K的呢?下面一句是CMPA的赋值,写在CLA中。请问是否还有哪里设置了分频而我却不知道的?

EPwm8Regs.CMPA.bit.CMPA = 0.3 * Half_Period;

Green Deng:你好,你用的递增递减模式的话,周期的计算就是
TPWM = 2 x TBPRD x TTBCLK
FPWM = 1 / (TPWM)
输出频率减半的话只能在这两个参数中查找分频问题了。

赞(1)
未经允许不得转载:TI中文支持网 » 关于28075中PWM波频率的问题
分享到: 更多 (0)