0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

硬件PWM工作模式、定时器详解

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-05-05 09:19 次阅读

​PWM的一个周期

定时器从0开始向上计数
当0-t1段,定时器计数器TIMx_CNT值小于CCRx值,输出低电平
t1-t2段,定时器计数器TIMx_CNT值大于CCRx值,输出高电平
当TIMx_CNT值达到ARR时,定时器溢出,重新向上计数...循环此过程
至此一个PWM周期完成

详解:
若配置脉冲计数器TIMx_CNT为向上计数,而重载寄存器TIMx_ARR配置为N,即TIMx_CNT的当前计数值数值X在TIMxCLK时钟源的驱动下不断累加,当TIMx_CNT的数值X大于N时,会重置TIMx_CNT数值为0重新计数。
而在TIMxCNT计数的同时,TIMxCNT的计数值X会与比较寄存器TIMx_CCR预先存储了的数值A进行比较,当脉冲计数器TIMx_CNT的数值X小于比较寄存器TIMx_CCR的值A时,输出高电平(或低电平),相反地,当脉冲计数器的数值X大于或等于比较寄存器的值A时,输出低电平(或高电平)。
如此循环,得到的输出脉冲周期就为重载寄存器TIMx_ARR存储的数值(N+1)乘以触发脉冲的时钟周期,其脉冲宽度则为比较寄存器TIMx_CCR的值A乘以触发脉冲的时钟周期,即输出PWM的占空比为A/(N+1)。

如果初学者,看标注的红色字体,就大体可以理解

PWM的工作模式:
PWM模式1(向上计数) :计数器从0计数加到自动重装载值(TIMx_ARR),然后重新从0开始计数,并且产生一个计数器溢出事件
PWM模式2(向下计数) :计数器从自动重装载值(TIMx_ARR)减到0,然后重新从重装载值(TIMx_ARR)开始递减,并且产生一个计数器溢出事件
设置寄存器TIMx_CCMR1的OC1M[2:0]位来确定PWM的输出模式:

PWM模式1:在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。
PWM模式2:在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平。
时通道1为无效电平,否则为有效电平;在向下计数时,一旦timx_cnt>时通道1为有效电平,否则为无效电平;在向下计数时,一旦timx_cnt>

在两种模式下TIMx_CNT(计数器当前值)与TIMx_CCR1(捕获/比较值) 只是决定是有效电平还是无效电平

有效电平可以是高电平也可以是低电平,这需要结合CCER寄存器的CC1P位的值来确定。

​ TIMx_CCER寄存器的CCCP位,设置输入/捕获通道1输出极性

0:高电平为有效电平
1:低电平为有效电平
若为向上计数,且CCER寄存器的CC1P位为0,则当TIMx_CNT时,输出高电平;<>

同样向上计数,且CCER寄存器的CC1P位为1,则当TIMx_CNT时,输出低电平。<>


1、CCR1寄存器:捕获/比较值寄存器:设置比较值;

计数器值TIMx_CNT与通道1捕获比较寄存器CCR1进行比较,通过比较结果输出有效电平和无效电平

OC1REF=0 无效电平
OC1REF=1 无效电平
2、TIMx_CCMR1寄存器:OC1M[2:0]位:用于设置PWM模式

110:PWM模式1
111:PWM模式2
3、CCER寄存器:CC1P位:输入/捕获1输出极性。

0:高电平为有效电平
1:低电平为有效电平

4、CCER寄存器:CC1E位:输入/捕获1输出使能。

0:关闭使能
1:打开使能
5、输出电平信号

TIM定时器的四路通道TIMx_CHx输出PWM

poYBAGJtRxOAYv88AADrrAqy9iE620.png

总结:

每个定时器有四个通道,每一个通道都有一个捕获比较寄存器,

将寄存器值和计数器值比较,通过比较结果输出高低电平,便可以实现脉冲宽度调制模式(PWM信号)

TIMx_ARR寄存器确定PWM频率,

TIMx_CCRx寄存器确定占空比

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4897

    浏览量

    209889
  • 定时器
    +关注

    关注

    23

    文章

    3146

    浏览量

    112033
收藏 人收藏

    评论

    相关推荐

    var单片机定时器PWM、ICP范例

    PWM模式兼输入捕捉T2工作于相位修正PWM模式,输出490Hz的8bit PWM波出于简化程序
    发表于 06-26 00:35

    介绍通过STM32的定时器输出PWM

    的文章《STM32基础定时器详解》,关于定时器的基础功能不再详解。01、PWM介绍PWM定义:脉
    发表于 08-04 08:21

    STM32定时器详解

    定时器详解时钟源计数定时器周期计算定时器初始化结构体详解程序设置
    发表于 08-18 06:17

    利用定时器B的比较功能输出PWM波形

    思路:利用定时器B的比较功能输出PWM波形;一、定时器B定时器B的特点:1)异步16位定时/计数
    发表于 11-29 06:52

    定时器PWM输入模式实现

    定时器PWM输入模式:一路输入信号被两个IC捕获,有TIM1和TIM2可以实现。此时定时器工作于从
    发表于 01-06 07:26

    从应用方面详解STM32的定时器输入捕获模式

    ,或者说测信号频率。关于输入捕获的知识,网上的内容太多了,所以我就不贴出数据手册上的电路图解,还有各种寄存的解释了。大家可自行了解,本文将从应用方面详解STM32的定时器输入捕获模式
    发表于 01-06 07:37

    通用定时器PWM是如何工作

    通用定时器PWM是如何工作的?与通用定时器PWM相关的库函数有哪些呢?
    发表于 01-19 06:14

    STM32通用定时器PWM工作原理

    这节课给大家介绍一下 STM32F103 系列单片机通用定时器PWM工作原理,首先看一下 PWM 的基本概述。
    发表于 11-11 17:17 24次下载

    AVR入门:如何使用毫秒定时器去更新PWM工作周期?

    使用毫秒定时器更新PWM工作周期
    的头像 发表于 07-09 01:30 3503次阅读
    AVR入门:如何使用毫秒<b class='flag-5'>定时器</b>去更新<b class='flag-5'>PWM</b><b class='flag-5'>工作</b>周期?

    如何通过STM32的定时器输出PWM

      本文将介绍通过STM32的定时器输出PWM,如果对定时器不太熟悉的同学可以看下之前的文章《STM32基础定时器详解》,关于
    的头像 发表于 02-20 15:08 2.1w次阅读
    如何通过STM32的<b class='flag-5'>定时器</b>输出<b class='flag-5'>PWM</b>?

    52单片机——定时器2详解

    文章目录前言一、定时器2简述1.定时器2的作用2.定时器和计数器的区别二、定时器2功能详解1.捕获1.1.什么是捕获1.2.捕获的
    发表于 11-11 12:51 19次下载
    52单片机——<b class='flag-5'>定时器</b>2<b class='flag-5'>详解</b>

    基于硬件定时器的软件定时器

    概括硬件定时器很精确,软件定时器无论如何都有延迟,主要用在不需要精确定时的地方,而且软件定时比较浪费单片机资源。梳理讲到
    发表于 11-25 09:51 8次下载
    基于<b class='flag-5'>硬件</b><b class='flag-5'>定时器</b>的软件<b class='flag-5'>定时器</b>

    普通定时器输出互补PWM带死区

    无刷电机。这下就需要用到互补PWM了。然后选型的单片机只有一路高级定时器tim1,另外一个电机的PWM驱动分别是tim3,tim4.不同的定时器怎么实现互补
    发表于 12-16 16:59 24次下载
    普通<b class='flag-5'>定时器</b>输出互补<b class='flag-5'>PWM</b>带死区

    详解stm32的定时器8输出PWM

    我在定时器3的例程上面改,改了很久都没改好,百度看别人说定时器1和定时器8需要额外的指令用于PWM输出,今天下午硬件的人来要东西了,来不及研
    的头像 发表于 01-05 11:01 4969次阅读

    555定时器工作模式

    555定时器工作模式  555定时器是一种非常经典的集成电路,由Signetics公司于1972年推出,被广泛应用于各种电子设备中。555定时器
    的头像 发表于 10-24 10:10 743次阅读