Other Parts Discussed in Thread: LAUNCHXL-F28379D, TMDSCNCD28379D
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:TMS320F28377D 线程中讨论的其他部件:LAUNSCHXL-F28379D, TMDSCNCD28379D
你(们)好。 我正在使用28377D 的 ePWM 函数。 但 PWM 频率远低于我的预期。 系统时钟设置如下所示
InitSysPll(XTAL_OSC, IMULT_20, FMULT_0, PLLCLK_BY_2);
因此,CPU 频率应为20MHz*20/2=200MHz。 然后,我将 ePWM 的周期配置为400 (向上和向下模式)(完整代码如下所示),因此我希望 ePWM 频率应为200MHz/400/2=250kHz。 但是,测量结果仅为 Aboud 100kHz。
void InitEPwm1Example()
{
EPwm1Regs.TBPRD = 400; // Set timer period 801 TBCLKs
EPwm1Regs.TBPHS.bit.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter
EPwm1Regs.CMPA.bit.CMPA = EPWM1_MIN_CMPA; // Set compare A value
EPwm1Regs.CMPB.bit.CMPB = EPWM1_MAX_CMPB; // Set Compare B value
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up and down
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO; // Load on Zero
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // Set PWM1A on event A, up
// count
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; // Clear PWM1A on event A,
// down count
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET; // Set PWM1B on event B, up
// count
EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR; // Clear PWM1B on event B,
}
可以帮我解决这个问题吗? 我将不胜感激。