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.

[参考译文] TMS320F2.8035万:生成50 Hz频率,工作周期变化

Guru**** 2331900 points
Other Parts Discussed in Thread: CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/580461/tms320f28035-generating-50-hz-frequency-with-varying-duty-cycle

部件号:TMS320F2.8035万
主题: controlSUITE中讨论的其他部件

我想在  微处理器 TMS320F2.8035万上使用ePWM块生成50 Hz变化的占空比PWM。但我无法获得如此低的频率。下面是我的ePWM代码。当我 在示波器上显示时,我也无法获得50%的占空比。 这用于生成补充脉冲。

void InitEPwm1example()

//设置TBCLK
EPwm1Regs.TBPRD = 600万;//设置计时器周期801 TBCLK
EPwm1Regs.TBPHS.Half.TBPHS = 0x0000;//相位为0
EPwm1Regs.TBCTR = 0x0000;//清除计数器

//设置比较值
EPwm1Regs.CMPA.Half.CMPA = 3600万;// set比较一个值
EPwm1Regs.CMPB = 360万;//设置比较B值

//设置计数器模式
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UDOWN;//计数
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;//禁用相加载
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4;//与SYSCLKOUT的时钟比率
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV4;

//设置阴影
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHAME;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADO;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZE;//零加载
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

//设置操作
EPwm1Regs.AQCTLA.bit.CAU = AQ_set;//在事件A上设置PWM1A,上升计数
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;//清除事件A上的PWM1A,向下计数

EPwm1Regs.AQCTLB.bit.CBU = AQ_Clear;//清除事件B上的PWM1B,上升计数
EPwm1Regs.AQCTLB.bit.CBD = AQ_set;//在事件B上设置PWM1B,下载计数

}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Mohit,

    一些注意事项:
    1)在许多controlSUITE示例中,F2.8035万器件的SYSCLK默认配置为60MHz。
    2)根据ePWM用户指南,TBPRD仅为16位。  这意味着大于6.5536万的值将被环绕(例如,600万将被写入寄存器,为3.6224万,这可以通过设置来确认,方法是在出现该代码行后,通过观察窗口中的EPwm1Regs.TBPRD寄存器来确认)。
    http://www.ti.com/lit/spruge9
    3)因此,如果不使用TBCTL[CLKDIV]或TBCTL[HSPCLKDIV](保持为1:未预分),则在计数模式下可输出的最慢PWM频率为60MHz/6.5536万 =~915Hz。  如果使用向上-向下计数模式,则速率为~458Hz。
    4)在代码中,您使用的是预分频器。  这将使PWM时钟减慢4*4,同时降低分辨率。  这将产生最慢的PWM频率,可输出为~28.6Hz。

    通过保持TBCTL[CLKDIV]和TBCTL[HSPCLKDIV]的原型,您应该能够通过正确设置TBPRD输出~50Hz PWM信号。

    希望这能有所帮助!


    谢谢!
    Brett