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
    +关注

    关注

    111

    文章

    4441

    浏览量

    208289
  • 定时器
    +关注

    关注

    23

    文章

    2844

    浏览量

    111212
收藏 人收藏

    评论

    相关推荐

    STM32定时器详解

    定时器详解时钟源计数定时器周期计算定时器初始化结构体详解程序设置定时器(Timer)最基本的功能就是定时了,比如定时发送 USART 数据、定时采集 AD数据等等。如果把定时器与 GPIO
    发表于 08-18 06:17

    定时器PWM输入模式实现

    定时器PWM输入模式:一路输入信号被两个IC捕获,有TIM1和TIM2可以实现。此时定时器工作于从模式下的复位模式。复位模式:当检测到边沿触发信号时,定时器计数的值会被重新更新,从0开始计数。根据
    发表于 01-06 07:26

    通用定时器PWM是如何工作

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

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

    定时器2简述1.定时器2的作用2.定时器和计数的区别二、定时器2功能详解1.捕获1.1.什么是捕获1.2.捕获的工作原理1.3.捕获模式2.自动重装模式(递增/递减计数)三
    发表于 11-11 12:51 18次下载
    52单片机——<b>定时器</b>2<b>详解</b>

    [STM32]通用定时器的使用

    定时器定时、输出PWM功能的使用本次还是使用发光二极管来验证定时器的使用目录STM32的通用定时器定时、输出PWM功能的使用前言一、定时器详解二、定时器的输出比较功能1.
    发表于 11-22 19:06 24次下载
    [STM32]通用<b>定时器</b>的使用

    定时器的用法以及pwm的调速

    定时器的用法以及PWM的调速我们最初接触的51单片机有两组定时器(计数),因为既可以定时,又可以计数,因此叫做定时器(计数).定时器和单片机的CPU是相互独立的。定时器
    发表于 11-24 21:06 4次下载
    <b>定时器</b>的用法以及<b>pwm</b>的调速

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

    硬件定时器很精确,软件定时器无论如何都有延迟,主要用在不需要精确定时的地方,而且软件定时比较浪费单片机资源。梳理讲到定时器,大家多多少少都会接触到硬件定时器,但是由于有时候资源的限制,又难免会
    发表于 11-25 09:51 8次下载
    基于<b>硬件</b><b>定时器</b>的软件<b>定时器</b>

    STM32-通用定时器-PWM输出

    PWM输出、单脉冲模式输出等。STM32的定时器除了TIM6和TIM7(基本定时器)之外,其他的定时器都可以产生PWM输出。其中,高级定时器TIM1、TIM8可以同时产生7路PWM输出,而通用定时器可以同时产生4路
    发表于 11-26 15:36 19次下载
    STM32-通用<b>定时器</b>-<b>PWM</b>输出

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

    PWM了。然后选型的单片机只有一路高级定时器tim1,另外一个电机的PWM驱动分别是tim3,tim4.不同的定时器怎么实现互补PWM而且带死区呢。1、定时器主从功能2、定时器中心对齐模式3、tim3使用
    发表于 12-16 16:59 22次下载
    普通<b>定时器</b>输出互补<b>PWM</b>带死区

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

    定时器一共有15种工作模式,其他2个8位定时器(T0/T2)相对简单,除了T2有异步工作模式用于RTC应用外(可以利用溢出中断和比较匹配中断作定时功能)。
    发表于 08-28 18:01 2392次阅读

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

    C1的同相输入端的电压为2VCC/3,C2的反相输入端的电压为VCC/3。在单稳态工作模式下,555定时器作为单次触发脉冲发生工作。双稳态工作模式下的555芯片类似基本RS触发。无稳态
    发表于 01-22 09:07 34.5w次阅读
    555<b>定时器</b>产生方波原理(四款555<b>定时器</b>产生方波的电路<b>详解</b>)

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

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

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

    定时器输出PWM,如果对定时器不太熟悉的同学可以看下之前的文章《STM32基础定时器详解》,关于定时器的基础功能不再详解。 01 PWM介绍   PWM定义
    的头像 发表于 02-20 15:08 2w次阅读
    如何通过STM32的<b>定时器</b>输出<b>PWM</b>?

    详解stm32的定时器8输出PWM

    定时器3的例程上面改,改了很久都没改好,百度看别人说定时器1和定时器8需要额外的指令用于PWM输出,今天下午硬件的人来要东西了,来不及研究了,于是网上找了个定时器8的4个通道全部可以输出的例程记录一下,已经经过本人试验是OK的。
    的头像 发表于 01-05 11:01 3116次阅读

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

    定时振荡也就是通常所说的 555定时器 。 555定时器的用途非常广泛,可以 生成各种类型的脉冲 、 创建时间延迟 ,也可以用于 脉冲宽度调制(PWM) ,555定时器最常见的用途是为电路产生时钟信号。
    的头像 发表于 05-09 09:18 2038次阅读
    555<b>定时器</b>内部框图、<b>工作</b>原理和<b>工作</b><b>模式</b>