pinda_ 发表于 2014-11-6 15:05

关于F28335的PWM频率问题

    最近在算F28335的PWM时钟频率,其中关键的寄存器下有两个位必须要用到TBCTL.bit.HSPCLKDIV / TBCTL.bit.CLKDIV;
    根据其定时器时钟频率算法公式为 TBCLK = SYSCLKOUT / (HSPCLKDIV * CLKDIV);
    现在,将HSPCLKDIV = 8, CLKDIV = 32;
    则: TBCLK = 150M / (32 * 8) = 585.9375 Khz;

    目前采用比较中断,周期值为0xFFFF,比较值为7或者8, 产生一个比较中断,比较中断中实现4000个脉冲的发送和边沿翻转(当然方向的改变也在中断中实现,暂时没用到)。
    那么根据时钟频率585.9375Khz,比较值7或者8,算出来的频率应该在100Khz多一点,实际过程中,我通过示波器测量发现,该PWM频率为40.84xxKhz,后面两xx会有一定的不稳定。这与我计算的频率有较大的出入。
    现在,请教各位,整个过程中,哪里理解错了。 @zhangmangui

pinda_ 发表于 2014-11-6 15:05

@zhangmangui   再来.

airwill 发表于 2014-11-6 23:11

看糊涂了,输入时钟频率585.9375Khz,周期值为0xFFFF,算出来的频率应该是 9Hz 左右。
如果上升下降模式,就一半的频率。怎么算出 100Khz?

wei3890836 发表于 2014-11-7 15:22

个人觉得上升或者下降 pwm的频率=主频/(HSPCLKDIV * CLKDIV)/(period+1)
升降的话 pwm的频率=主频/(HSPCLKDIV * CLKDIV)/period/2
页: [1]
查看完整版本: 关于F28335的PWM频率问题