在说边沿对齐,中心对齐前,我们先来段铺垫,PWM 又称脉冲宽度调制,我们通过调 节脉冲的占空比,我们可以控制电压的大小(比如我们满占空比时电压为 12V,我们可以通 过调节占空比让电压变为 7V、5V 甚至变为 0V,实现输出电压可控
调节占空比后,输出电压怎么就变化了呢?可以用等效面积法来解释,例如在 1ms 周 期里,满占空比时输出电压为 12V,50%占空比时(即高低电平各占时间为 0.5ms)高电平在整 个周期的面积只有原来的 1/2 了,此时输出电压就等效为 12*1/2=6V,那么通过调节不同的 占空比,也就实现了输出电压调节。如图:

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

方框内部的 CNT Counter 计数器会根据输入的时钟沿跳变来进行递加/减,时钟的频率决 定了计数器递加/减的频率,这个计数器的值同时会和 Auto-reload register(控制周期)、 Capture/Compare x register(控制占空比)进行比较,当与控制占空比的寄存器值发生匹配 时则控制输出引脚 TIMx_CHx 发生电平反转,当与控制周期寄存器值发生匹配时,周期结束, 引脚电平置位,再次重复如上动作,就在引脚上输出了变化不同的电平,这个就是我们需要 的 PWM
这个定时器模块可以根据软件编程设置出不同的 PWM 模式,定时器内部 CNT Counter 可被编程为向上、向下、向上向下运行,我们说的边沿对齐,和中心对齐就要从这个计数方 式上切入,下面我们先来看三种不同的计数方式
1.当 CNT 被设置为向上计数时,计数器从 0 递增向上计数到自动重载值(Auto-reload register),然后计数器又回到 0,重新开始

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

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

那这三种模式和 2 种 PWM 又是什么关系呢?PWM 是怎么从引脚上输出的呢?请看下图:
1.向上/下计数模式 PWM 生成(只展示出了向上计数,向下计数同理):

2.向上向下计数模式 PWM 生成:
完整版技术文档请点击文章开头普通下载
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !