首页 > 版块 > STM32 > 帖子正文

图解边沿对齐,中心对齐PWM....

黄忠 发布于 2021-10-28 15:08
收藏 0 回复 0 浏览 483 原创

大家好,我是张飞实战电子黄忠老师,今天我们来讲解下图解边沿对齐,中心对齐PWM...

在说边沿对齐,中心对齐前,我们先来段铺垫,PWM又称脉冲宽度调制,我们通过调节脉冲的占空比,我们可以控制电压的大小(比如我们满占空比时电压为12V,我们可以通过调节占空比让电压变为7V5V甚至变为0V,实现输出电压可控)

调节占空比后,输出电压怎么就变化了呢?可以用等效面积法来解释,例如在1ms周期里,满占空比时输出电压为12V50%占空比时(即高低电平各占时间为0.5ms)高电平在整个周期的面积只有原来的1/2了,此时输出电压就等效为12*1/2=6V,那么通过调节不同的占空比,也就实现了输出电压调节。如图:

图片18.png 

STM32中是怎么生成PWM波的呢?时钟是芯片的心脏,没有时钟,芯片就是一块“废物”,有了时钟,芯片才能有条不紊的工作,那时钟跟我们要讲的PWM有什么关系呢?请看下图,STM32内部的定时器框图,看看它是如何生成PWM的。

图片19.png 

方框内部的CNT Counter计数器会根据输入的时钟沿跳变来进行递加/减,时钟的频率决定了计数器递加/减的频率,这个计数器的值同时会和Auto-reload register(控制周期)、Capture/Compare x register(控制占空比)进行比较,当与控制占空比的寄存器值发生匹配时则控制输出引脚TIMx_CHx发生电平反转,当与控制周期寄存器值发生匹配时,周期结束,引脚电平置位,再次重复如上动作,就在引脚上输出了变化不同的电平,这个就是我们需要的PWM

这个定时器模块可以根据软件编程设置出不同的PWM模式,定时器内部CNT Counter可被编程为向上、向下、向上向下运行,我们说的边沿对齐,和中心对齐就要从这个计数方式上切入,下面我们先来看三种不同的计数方式。

1.CNT被设置为向上计数时,计数器从0递增向上计数到自动重载值(Auto-reload register),然后计数器又回到0,重新开始。

图片20.png图片21.png 

2.CNT被设置向下计数时,计数器从自动重载值递减向下计数,计数到0,计数器又回到重载值,重新开始。

图片22.png图片23.png 

3.CNT被设置向上向下计数时,计数器从0递增向上计数到自动重载值,然后计数器从自动重载值递减向下计数,计数到0然后又开始递增向上计数。

图片24.png图片25.png 

那这三种模式和2PWM又是什么关系呢?PWM是怎么从引脚上输出的呢?请看下图:

1.向上/下计数模式PWM生成(只展示出了向上计数,向下计数同理):

图片28.png图片29.png 

2.向上向下计数模式PWM生成:

图片26.png图片27.png 

上文中提到的向上计数/向下计数,这两种生成PWM的方式,我们通常称为边沿对齐PWM;既向上又向下这种生成PWM的方式,我们称为中心对齐PWM当然,发生匹配的时候引脚电平如何变化,是变高还是变低,这个可以通过软件编程来设置。

通过PWM调节输出电压,比如可以控制做呼吸灯,也可以实现电机的调速,不同的调速算法,会用到不同的PWM等等。


0 0
发表评论 侵权投诉
评论 (0)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表乌云踏雪网立场。

文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。