Quantcast
Channel: C2000™︎ 微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 12291

PWM的周期应该怎么算

$
0
0

大家好,我正在用C2000学习PWM,处理器是F28377S。

我想发送5000Hz的PWM,但是现在还没太搞明白PWM波的周期应该怎么算,还请大家帮助一下。

手册里有下面一张图,使用中间那个模式,我理解PWM波的频率就应该是 F= TBCLK/(TBPRD+1)

F28377S的频率是200MHz,即1/TBCLK=200M,所以想发出5000Hz的话,TBPRD = TBCLK/5000=200M/5000=4000

但是通过示波器测量的是否发现PWM波并没有获得想要的周期0.2ms,而是一个大概在3ms左右。

我把设置TBCLK的代码和示波器照片也贴到下面。请大家帮我看一下,是我理解错了,还是哪里不对。

非常感谢您的帮助!

   //
   // Setup TBCLK
   //
   EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Count up
   EPwm2Regs.TBPRD = 40000;       // Set timer period
   EPwm2Regs.TBCTL.bit.PHSEN = TB_DISABLE;    // Disable phase loading
   EPwm2Regs.TBPHS.bit.TBPHS = 0x0000;        // Phase is 0
   EPwm2Regs.TBCTR = 0x0000;                  // Clear counter
   EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV2;   // Clock ratio to SYSCLKOUT
   EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV2;


Viewing all articles
Browse latest Browse all 12291

Latest Images

Trending Articles

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>