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

    文章

    5141

    浏览量

    213381
  • 定时器
    +关注

    关注

    23

    文章

    3237

    浏览量

    114454
收藏 人收藏

    评论

    相关推荐

    高级定时器PWM输入模式的配置方法

    我们将向大家介绍高级定时器的另一个常见应用——PWM输入模式。在本节课中,我们将先围绕输入捕获模式展开,并重点描述PWM输入
    的头像 发表于 11-08 16:48 1548次阅读
    高级<b class='flag-5'>定时器</b><b class='flag-5'>PWM</b>输入<b class='flag-5'>模式</b>的配置方法

    STM32定时器详解

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

    定时器PWM输入模式实现

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

    AVR定时器工作类型模式介绍

    M16的T1 16位定时器一共有15种工作模式,其他2个8位定时器(T0/T2)相对简单,除了T2有异步工作
    发表于 08-28 18:01 2599次阅读

    555定时器产生方波原理(四款555定时器产生方波的电路详解

    悬空时,则电压比较C1的同相输入端的电压为2VCC/3,C2的反相输入端的电压为VCC/3。在单稳态工作模式下,555定时器作为单次触发脉冲发生
    发表于 01-22 09:07 36w次阅读
    555<b class='flag-5'>定时器</b>产生方波原理(四款555<b class='flag-5'>定时器</b>产生方波的电路<b class='flag-5'>详解</b>)

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

    使用毫秒定时器更新PWM工作周期
    的头像 发表于 07-09 01:30 3709次阅读
    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.2w次阅读
    如何通过STM32的<b class='flag-5'>定时器</b>输出<b class='flag-5'>PWM</b>?

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

    文章目录前言一、定时器2简述1.定时器2的作用2.定时器和计数的区别二、定时器2功能详解1.捕
    发表于 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>

    STM32-通用定时器-PWM输出

    捕获、输出比较、PWM输出、单脉冲模式输出等。STM32的定时器除了TIM6和TIM7(基本定时器)之外,其他的定时器都可以产生
    发表于 11-26 15:36 23次下载
    STM32-通用<b class='flag-5'>定时器</b>-<b class='flag-5'>PWM</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 6383次阅读

    555定时器内部框图、工作原理和工作模式

    555定时振荡也就是通常所说的 555定时器 。 555定时器的用途非常广泛,可以 生成各种类型的脉冲 、 创建时间延迟 ,也可以用于 脉冲宽度调制(
    的头像 发表于 05-09 09:18 6233次阅读
    555<b class='flag-5'>定时器</b>内部框图、<b class='flag-5'>工作</b>原理和<b class='flag-5'>工作</b><b class='flag-5'>模式</b>

    555定时器工作模式

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

    定时器工作方式介绍

    定时器是计算机和嵌入式系统中常见的一种硬件模块,用于实现定时和计数功能。定时器工作方式通常由一组寄存
    的头像 发表于 07-12 10:29 721次阅读