STM32笔记——高级定时器

高级定时器(TIM1/TIM8)和通用定时器在基本定时器的基础上引入了外部引脚,可以实现输入捕获和输出比较功能。高级定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车功能,这些功能都是针对工业电机控制应用的。

高级定时器的时基单元包含一个16位自动重装载寄存器ARR,一个16位的计数器CNT,可向上/向下计数,一个16位可编程预分频器PSC,预分频器的时钟源有多种选择,有内部的时钟、外部的时钟,还有一个8位的重复计数器RCR,这样最高可实现40位的可编程定时。

在这里插入图片描述
高级定时器框图
在这里插入图片描述

时基单元
在这里插入图片描述
自动装载寄存器是预先装载的,写或读自动重装载寄存器将访问预装载寄存器。根据在TIMx_CR1寄存器中的自动装载预装载使能位(ARPE)的设置,预装载寄存器的内容被立即或在每次的更新事件UEV时传送到影子寄存器。当计数器达到溢出条件(向下计数时的下溢条件)并当
TIMx_CR1寄存器中的UDIS位等于0时,产生更新事件。更新事件也可以由软件产生。随后会详细描述每一种配置下更新事件的产生。
计数器由预分频器的时钟输出CK_CNT驱动,仅当设置了计数器TIMx_CR1寄存器中的计数器使能位(CEN)时,CK_CNT才有效。
注意,在设置了TIMx_CR寄存器的CEN位的一个时钟周期后,计数器开始计数。

预分频器描述
预分频器可以将计数器的时钟频率按1到65536之间的任意值分频。它是基于一个(在TIMx_PSC寄存器中的)16位寄存器控制的16位计数器。因为这个控制寄存器带有缓冲器,它能够在运行时被改变。新的预分频器的参数在下一次更新事件到来时被采用。

当预分频器的参数从1变到2时,计数器的时序图
在这里插入图片描述
当预分频器的参数从1变到4时,计数器的时序图
在这里插入图片描述
计数模式
在这里插入图片描述
递增计数模式
计数器从0开始计数,每来一个CK_CNT脉冲计数器就增加1,直到计数器的值与自动重装载寄存器的值相等,然后计数器又从0开始计数并生成计数器上溢事件,计数器总是如此循环计数。如果禁用重复计数器,计数器生成上溢事件就马上生成更新事件;如果使能了重复计数器,每生成一次上溢事件,重复计数器就会减1,直到重复计数器内容为0时才会产生更新事件。
在这里插入图片描述
递减计数模式
计数器从自动重装载寄存器ARR值开始计数,每来一个CK_CNT脉冲计数器就减1,直到计数器的值减为0,然后计数器又从自动重装载寄存器ARR值开始递减并生成定时器下溢事件,计数器总能如此反复循环计数。如果禁用重复计数器,计数器生成下溢事件就马上生成更新事件;如果使能了重复计数器,每生成一次下溢事件,重复计数器就会减1,直到重复计数器内容为0时才会产生更新事件。
在这里插入图片描述
中央对齐模式
计数器从0开始递增计数,直到计数器计数器等于(ARR-1)值,生成计数器上溢事件,然后又从ARR的值开始递减计数直到1,生成计数器下溢事件。然后又从0开始计数,如此循环。每次发生定时器上溢事件和下溢事件都会产生更新事件。

重复计数器
在每N次计数上溢或下溢时,数据从预装载寄存器传输到影子寄存器(TIMx_ARR自动重 载 入 寄 存 器 , TIMx_PSC 预 装 载 寄 存 器 , 还 有 在 比 较 模 式 下 的 捕 获 / 比 较 寄 存 器TIMx_CCRx),N是TIMx_RCR重复计数寄存器中的值。
在这里插入图片描述
不同模式下更新速率的例子,及TIMx_RCR的寄存器设置
在这里插入图片描述

时钟选择
在这里插入图片描述
外部时钟源模式1
在这里插入图片描述
例如,要配置向上计数器在T12输入端的上升沿计数,使用下列步骤:
配置TIMx_CCMR1寄存器CC2S=01,配置通道2检测TI2输入的上升沿
配置TIMx_CCMR1寄存器的IC2F[3:0],选择输入滤波器带宽(如果不需要滤波器,保持IC2F=0000)
配置TIMx_CCER寄存器的CC2P=0,选定上升沿极性
配置TIMx_SMCR寄存器的SMS=111,选择定时器外部时钟模式1
配置TIMx_SMCR寄存器中的TS=110,选定TI2作为触发输入源
设置TIMx_CR1寄存器的CEN=1,启动计数器
注:
捕获预分频器不用作触发,所以不需要对它进行配置
当上升沿出现在TI2,计数器计数一次,且TIF标志被设置。
在TI2的上升沿和计数器实际时钟之间的延时,取决于在TI2输入端的重 新同步电路。

外部时钟模式1下的控制电路
**在这里插入图片描述
外部时钟源模式2
外部触发输入框图
在这里插入图片描述
例如,要配置在ETR下每2个上升沿计数一次的向上计数器,使用下列步骤:
本例中不需要滤波器,置TIMx_SMCR寄存器中的ETF[3:0]=0000
设置预分频器,置TIMx_SMCR寄存器中的ETPS[1:0]=01
选择ETR的上升沿检测,置TIMx_SMCR寄存器中的ETP=0
开启外部时钟模式2,写TIMx_SMCR寄存器中的ECE=1
启动计数器,写TIMx_CR1寄存器中的CEN=1
计数器在每2个ETR上升沿计数一次。
在ETR的上升沿和计数器实际时钟之间的延时取决于在ETRP信号端的重新同步电路。

外部时钟模式2下的控制电路
在这里插入图片描述

若有概念上的错误,欢迎在下方评论区指正!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

%Zero%

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值