【STM32】PWM输出功能详细介绍

这篇具有很好参考价值的文章主要介绍了【STM32】PWM输出功能详细介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.捕获/比较通道

2.PWM实现原理


PWM输出功能

脉冲宽度调制(pulse width modulation,PWM)是一种对模拟信号电平进行数字编的方法。PWM 技术广泛应用于机械、通信、功率控制等领域,如电机的转速控制、灯光的亮度调节、DC-DC 转换器以及信号调制等场合。

PWM 信号有两个重要的参数:周期和占空比

•周期(Period)

一个完整 PWM 波形所持续的时间。

•占空比(Duty)

高电平持续时间(Ton)与周期(Period)的比值占空比的计算公式如下:

Duty=( Ton/Period)x 100%

下图给出了 50%、20% 和80% 三种不同占空比的 PWM 信号

【STM32】PWM输出功能详细介绍

 在上图中,电压的峰值为 3.3 V,T表示高电平持续时间,T表示信号关断时间虚线表示 PWM信号所对应的平均电压。

根据平均电压的计算公式:平均电压=峰值 x占空比。我们可以计算出:50% 占空比的PWM信号所对应的平均电压为1.65V;2%占空比的PWM信号所对应的平均电压为0.66V;80%占空比的PWM信号所对应的平均电压为2.64V。因此PWM信号能够进行电压调节的基本原理就是不同占空比的PWM信号等效于不同的平均电压。

1.捕获/比较通道

捕获/比较通道负责输入捕获功能和输出比较功能。每个定时器最多可以拥有4个捕获/比较通道,每个通道都有对应的寄存器进行控制也有对应的GPIO引脚作为通道的输入和输出接口。捕获/比较通道的功能框架如下图所示。

【STM32】PWM输出功能详细介绍

 捕获/比较通道由三个模块组成:输入捕获单元、捕获/比较寄存器输出比较单元。

1.输入捕获单元

输入捕获单元用于捕获外部脉冲信号,捕获方式可以设置为上升沿捕获、下降沿捕获和双边沿捕获。发生捕获事件时,将计数器的当前计数值锁存到捕获/比较寄存器中,以供用户读取,同时可以产生捕获中断。输人捕获主要用于信号测量,可以测量信号的周期、频率和占空比等参数。

2.捕获/比较寄存器

捕获/比较寄存器TIMx­_CCR是捕获/比较通道中最重要的寄存器。在输入捕获模式下用于存放发生捕获事件时的计数值:在输出比较模式下用于存放预设的比较值。该寄存器具备预装载功能,由影子寄存器和预装载寄存器组成,预装载功能可由软件选择开启或关闭。

3.输出比较单元

输出比较单元用于信号输出。定时器通过将预设的比较值与计数器的计数值做匹配比较,从而实现各类输出,如PWM 输出、电平翻转、单脉冲输出和强制输出。预设的比较值存放在捕获/比较寄存器TIMx_CCR中。

使用捕获/比较通道时需要注意以下几点:

① 输入捕获功能和输出比较功能都是由定时功能衍生而来。因此,定时器工作于定时模式,时钟源为内部时钟CK_INT,时基单元的预分频时钟CK_PSC等于定时器的定时时钟TIMx_CLK。

② 每个定时器具备 1~4个独立的捕获/比较通道每个通道具有独立的输入捕获单元、捕获/比较寄存器和输出比较单元,但共享同一个时基单元。

③ 每个捕获/比较通道都可以独立设置为捕获通道(用于输入捕获)或者比较通道(用于输出比较)但是两种功能只能选择其中之一。

④ 每个捕获/比较通道都有对应的通道引脚作为通道的输入/输出接口如TIM_CHn(n表示通道号1~4,下同)。这些通道引脚与GPIO引脚复用用户可以在CubeMX软件的引脚分配图上选择 GPIO引脚的功能为通道引脚。

2.PWM实现原理

要实现PWM信号的输出,需要用到三个寄存器:自动重载寄存器TIMx_ARR,捕获/比较寄存器TIMx_CCRn(n表示通道编号1~4,下同)以及计数器寄存器TIMx_CNT,并通过通道引脚TIMx_CHn输出PWM信号。

为了表述方便,我们将TIMX_ARR寄存器的内容记为自动重载值ARR,TIMx_CCRn寄存器的内容记为捕获/比较值CCR,计数器存器TIMx_CNT的内容记为计数值CNT。整个PWM信号的输出过程下图所示。

【STM32】PWM输出功能详细介绍

图中,我们假定定时器工作在向上计数PWM模式,且当CNT<CCRx时,输出0,当CNT>=CCRx时输出1。那么就可以得到如上的PWM示意图:当CNT值小于CCRx的时候,IO输出低电平(O0),当CNT值大于等于CCRx的时候,IO输出高电平(1),当CNT达到ARR值的时候,重新归零,然后重新向上计数,依次循环。改变CCRx的值,就可以改变PWM输出的占空比,改变ARR的值,就可以改变PWM输出的频率,这就是PWM输出的原理。

根据PWM信号的输出过程,我们可以知道:自动重载寄存器TIMx_ARR用于控制PWM信号的周期捕获/比较寄存器TIMX_CCRn 用于控制PWM信号的占空比。综上所述,我们可以得到 PWM 信号周期及占空比的计算公式

T=(PSC+1) X(ARR+1)/TIMx_CLK

Duty=CCR/(ARR+1)x100%

下面介绍一个具体的应用例子。假设定时器的定时时钟TIM_CLK 为 100 MHz要求输出周期为1ms,占空比为 47.5%的 PWM信号,输出波形如下图所示。

【STM32】PWM输出功能详细介绍

要产生这样一个PWM信号,首先要确保1 ms的周期。根据T=(PSC+1) X(ARR+1)/TIMx_CLK,我们可以设置预分频系数PSC为99,自动重载值ARR为999,从而得到1ms的PWM周期。确定了自动重载值 ARR后,根据Duty=CCR/(ARR+1)x100%,可以得到捕获/比较值 CCR 为475。

定时器的每个捕获/比较通道都具有独立的输入捕获单元捕获/比较寄存器和输出比较单元,可以分别输出PWM信号。对于同一个定时器而言,由于它的多个通道共享同一个自动重载寄存器,而自动重载寄存器的内容决定了PWM 信号的周期。因此,对于同一个定时器的多个通道而言,可以同时输出占空比不同,但周期相同的PWM信号。例如我们使用通道1和通道2同时输出两路PWM信号。假设定时时钟TIM_CLK为 100MHz,自动重载值 ARR为999。

对于通道 1,设置TIMx_CCR1为 475,将在通道引脚CH1 上输出周期为 1 ms占空比为47.5%的PWM信号。

对于通道2,设置 TIMx_CCR2为 700,将在通道引脚CH2 上输出周期为 1ms,占空比为70%的PWM信号。

同一个定时器的多通道 PWM 信号输出如下图所示

【STM32】PWM输出功能详细介绍

 文章来源地址https://www.toymoban.com/news/detail-488071.html

到了这里,关于【STM32】PWM输出功能详细介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 TIM输出比较、PWM波形

    单片机学习! 目录 一、输出比较简介 二、PWM简介 三、输出比较通道 3.1通用定时器的输出比较部分电路 3.2高级定时器的输出比较部分电路 四、输出模式控制器 五、PWM基本结构 六、PWM参数计算 总结 前言         文章讲述STM32定时器的输出比较功能,它主要用来输出PWM波形

    2024年01月20日
    浏览(68)
  • STM32F4的输出比较极性和PWM1,PWM2的关系

    在这里以通用定时器的通道1作为介绍。 如图,左边就是CNT计数器和CCR1第一路的捕获/比较寄存器,它俩进行比较,当CNTCCR1, 或者CNT=CCR1时,就会给输出模式控制器传送一个信号,然后输出模式控制器就会改变它的 输出OC1ref的高低电平(这里ref是referencel的缩写,意思是参考信

    2024年02月03日
    浏览(38)
  • STM32笔记——定时器输入捕获功能(测量PWM的频率和占空比)

    目录 一、概述 二、输入捕获功能 2.1 输入捕获简介 2.2 输入捕获通道  三、输入捕获功能测量PWM波的频率和占空比 3.1 测量频率的方法 3.2 测量过程         主要介绍通用定时器的输入捕获功能,输入信号由GPIO口进入输入捕获通道,之后输入部分对相应的TIx输入信号采样,并

    2024年02月06日
    浏览(85)
  • STM32-HAL库08-TIM的输出比较模式(输出PWM的另一种方式)

    STM32F103C6T6最小系统板 STM32CUBEMX(HAL库软件) MDK5 示波器或者逻辑分析仪 通过定时器TIM的输出比较模式得到预定频率与占空比的PWM波形;其中定时器输出比较模式与PWM模式的区别在于!!! PWM模式在同一个TIM下所有输出口的频率一致不能单独控制单个的频率 ,而输出比较模式

    2024年02月03日
    浏览(64)
  • STM32TIM定时器PWM输出比较(适用于通用,高级定时器)

    在定时器中我们最常用的功能就是输出PWM,大多是用在电机控制方面,目前网络上相关资料也有很多,但是,很多不利于我们“现搜现用”我这里不是说我写的有多好,而是你搜索到此类文章时大部分是急于解决目前的问题,一段相关代码和讲解就行,当然不是学习背后的原

    2024年01月25日
    浏览(58)
  • 2023版 STM32实战6 输出比较(PWM)包含F407/F103方式

    -1-只有通用/高级定时器才能输出PWM -2-占空比就是高电平所占的比例 -3-输出比较就是输出不同占空比的信号 -1-1- PWM工作模式 -1-2- 有效/无效电平 有效电平可以设置为高或低电平,是自己配置的 周期=重装载 * 预分频值 / 时钟频率 arr和psc是自己定义的 时钟频率可以查看时钟树

    2024年02月07日
    浏览(33)
  • STM32 PWM模式与输出比较模式的区别。PWM占空比不生效,在STM32CubeMX中配置PWM的两种模式——蓝桥杯嵌入式

      🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都已更新完毕,欢迎大家前往订阅本专题🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届

    2023年04月15日
    浏览(80)
  • STM32 通过PWM输出一个方波并通过定时器输入捕获模式测量方波的周期(cubeMX+keil配置)

    前言:本文章用cubeMX和keil来进行代码编写,实现STM32的相应功能 本文章使用的STM32核心板是STM32H743VIT6,如果使用的是其他的核心板操作过程类似,可以尝试使用此教程。 (1)首先点击左侧的Timers  (2)选择一个定时器配置PWM 我选择的是TIM5,如上图 点击TIM5 Mode的配置如下

    2024年02月19日
    浏览(55)
  • STM32通过PWM输出使蜂鸣器实现播放音乐功能

    源码下载链接[点击跳转] https://download.csdn.net/download/Coin_Collecter/88641632        PWM ,全称 Pulse Width Modulation ,即脉宽调制技术,是一种通过改变信号的占空比来控制电路的技术。在 PWM 信号中,周期是固定的,而占空比则可以根据需要进行调整。通过改变占空比,可以控制电路

    2024年02月02日
    浏览(54)
  • 【江科大】STM32:(超级详细)定时器输出比较

    输出比较单元 名词解释 IC input capture 输入捕获 OC outpucompare 输出比较 CC capture compare 输入捕获和输出比较的单元 OC(Output Compare)输出比较 :用来输出PWM波形 特点 输出比较可以通过比较CNT(计数器)与CCR(捕获/比较)寄存器值的关系,来对输出电平进行置1、置0或翻转的操作

    2024年01月23日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包