定时器(基本定时器、通用定时器、高级定时器)

本文详细介绍了定时器技术的三个层次:基本定时器用于计时和计数;通用定时器增加了输入捕获和输出比较功能,适用于编码器计数和PWM生成;高级定时器则引入了重复计数、带死区输出比较和断路功能,扩展了更多高级控制选项。
摘要由CSDN通过智能技术生成

目录

一、基本定时器

二、通用定时器

三、高级定时器


一、基本定时器

1、作用:计时计数

二、通用定时器

1、除了有基本定时器的计时计数功能外,主要有输入捕获输出比较的功能,硬件主要由六大部分组成:

① 时钟源

② 控制器

控制器包括:从模式控制器、编码器接口和触发控制器(TRGO)。

(1) 从模式控制器可以控制计数器复位、启动、递增/递减、计数。

(2) 编码器接口针对编码器计数。

(3) 触发控制器用来提供触发信号给别的外设,比如为其它定时器提供时钟或者为 DAC/ADC 的触发转换提供信号。

③ 时基单元

(1) 时基单元包括:计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)、自动重载寄存器(TIMx_ARR)。这部分内容和基本定时器基本一样的。

(2) 不同点是:通用定时器的计数模式有三种: 递增计数模式、 递减计数模式和中心对齐模式

④ 输入捕获

一般先要设置输入捕获的边沿检测极性,如:我们设置上升沿检测,那么当检测到上升沿时,定时器会把计数器 CNT的值锁存到相应的捕获/比较寄存器 TIMx_CCRy 里, y=1~4。然后我们再设置边沿检测为下降沿检测,当检测到下降沿时,定时器会把计数器 CNT 的值再次锁存到相应的捕获/比较寄存器TIMx_CCRy 里。最后,我们将前后两次锁存的 CNT 的值相减,就可以算出高电平脉冲期间内计数器的计数个数,再根据定时器的计数频率就可以计算出这个高电平脉冲的时间。如果要测量的高电平脉宽时间长度超过定时器的溢出时间周期,就会发生溢出,这时候我们还需要做定时器溢出的额外处理。低电平脉冲捕获同理。

t1 到 t2 时间段,定时器可能会产生 N 次溢出,这就需要我们对定时器溢出做相应的处理,防止高电平太长,导致测量出错。在 t1 到 t2 时间段,假设定时器溢出 N 次,那么高电平脉冲时间内,计数器计数的个数计算方法为:

N*(ARR+1) + CCRx2,

CCRx2 表示 t2 时间点捕获/比较寄存器的值。经过计算得到高电平脉宽时间内计数器计数个数后,用这个个数乘以计数器的计数周期,就可得到高电平持续的时间。就是输入捕获测量高电平脉宽时间的整个过程。

⑤ 输入捕获和输出比较公用部分

⑥ 输出比较

(1) PWM 产生原理示意图如下图所示:

        上图中,定时器工作在递增计数模式,纵轴是计数器的计数值 CNT,横轴表示时。当CNT<CCRx 时, IO 输出低电平(逻辑 0);当 CNT>=CCRx 时, IO 输出高电平(逻辑 1);当CNT=ARR 时,定时器溢出, CNT 的值被清零,然后继续递增,依次循环。在这个循环中,改变 CCRx 的值,就可以改变 PWM 的占空比,改变 ARR 的值,就可以改变 PWM 的频率,这就是 PWM 输出的原理。

2、定时器产生 PWM 的方式有四种:定时器向上或向下计数,小于CCRx值时输出高电平或低电平,它们之间有四种组合。

三、高级定时器

1、除了有通用定时器的计时计数输入捕获输出比较的功能外,主要还有重复计数输出比较断路功能三大部分组成:

① 重复计数器

重复计数器的定时器,定时器每次发生上溢或下溢时,重复计数器的值会减一,当重复计数器的值为 0 时,再发生一次上溢或者下溢才会生成定时器更新事件。如果我们设置重复计数器寄存器 RCR 的值为 N,那么更新事件将在定时器发生 N+1 次上溢或下溢时发生。 重复计数器寄存器是具有影子寄存器的。

重复计数器的特性,可以指定控制生成多少 PWM 信号,当定时器发送一次溢出时,说明输出一次PWM,当设定溢出的次数,也就指定了输出多少个PWM。

② 输出比较

(1)高级定时器输出比较部分和通用定时器相比,多了带死区控制互补输出功能。

a、正常互补输出波形:

b、带死区互补输出波形:

(2)TIMx_CH1N、 TIMx_CH2N 和 TIMx_CH3N 分别是定时器通道 1、通道 2 和

通道 3的互补输出通道,通道 4 是没有互补输出通道的。

(3)DTG 是死区发生器,死区时间由 DTG[7:0]位来配置。

(4)要注意 MOE 位得置 1 定时器才能输出。

③ 断路功能 (刹车功能)

断路功能也称刹车功能,通过MOE 位来控制;当MOE位置1时,输出PWM,当MOE位置0时,停止输出PWM。

2、通用定时器和高级定时器,最多只有4个独立通道用于输入捕获和输出比较。

  • 26
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值