打印

MCU是怎样输出PWM波形的

[复制链接]
454|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qaz098xsw|  楼主 | 2017-12-29 11:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MCU是怎样输出PWM波形的


在电力电子控制中,PWM几乎是无处不在的,不论是AC/DC,DC/AC,还是DC/DC,都涉及到PWM,PWM具体是什么可以自行百度,网上资料非常多,这里就不再赘述。在电力电子变换里面,PWM波形生成有两种方式,模拟和数字,专用的模拟IC不在此文探讨范围之内,本文主要介绍怎样用MCU来生成PWM。
   在所有的MCU里,都会有Timer定时器,PWM就是通过这个外设生成的,基本的原理可以通过下图来解释。
         

   计数器TIM_CNT对输入时钟进行计数,比如输入时钟是1MHz(50%占空比方波),对时钟的每一个上升沿(或者下降沿)从数字0开始计数,计数到TIM_ARR=999,一共计数1000个,经历的时间是1000*1/1000000= 1ms,也就是1kHz,计数到999之后计数器TIM_CNT归零,重新从0开始计数到999,往复循环,这样就形成了1kHzPWM了。                 
   那怎样做到一定的占空比呢?这很简单,设定一个值TIM_CCR,比如199,计数器TIM_CNT从0计数到199,一共200次计数,在TIM_CNT计数值在0-199,PWM输出引脚输出高电平(可以人为设定),计数器达到199,电平翻转到低电平,之后IM_CNT计数999后归零又恢复到高电平,这样也就形成了200/1000= 20%的PWM了。对这个比较值进行设置就可以形成不同占空比的PWM了,这也是最基本的PWM波形生成方法了,从上面介绍的,可以看出,TIM_ARR的值决定了PWM的频率,TIM_CCR的值决定了PWM的占空比,有了这两个值就可以很容易地生成PWM了。

相关帖子

沙发
vibra2016| | 2017-12-29 22:24 | 只看该作者
这个一般不是通过定时器进行设计输出实现的么?

使用特权

评论回复
板凳
fentianyou| | 2018-1-1 19:48 | 只看该作者
都是通过定时器实现的。

使用特权

评论回复
地板
xiaoyaodz| | 2018-1-1 19:48 | 只看该作者
楼主准备使用什么mcu?

使用特权

评论回复
5
febgxu| | 2018-1-1 19:49 | 只看该作者
定时可以实现。

使用特权

评论回复
6
sdlls| | 2018-1-1 19:49 | 只看该作者
得根据MCU惊醒区分。

使用特权

评论回复
7
pixhw| | 2018-1-1 19:50 | 只看该作者
占空比都能通过TIMER实现。

使用特权

评论回复
8
fentianyou| | 2018-1-1 19:51 | 只看该作者
可以使用定时器中断

使用特权

评论回复
9
xiaoyaodz| | 2018-1-1 19:51 | 只看该作者
PWM都有外设可以实现。

使用特权

评论回复
10
febgxu| | 2018-1-1 19:51 | 只看该作者
MSP430能够实现PWM信号输出。

使用特权

评论回复
11
pixhw| | 2018-1-1 19:51 | 只看该作者
或者使用PWM功能实现信号输出。

使用特权

评论回复
12
sdlls| | 2018-1-1 19:51 | 只看该作者
去TI找个PWM的例程。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

632

主题

842

帖子

3

粉丝