TIM

Timer 定时器 STM32片上外设

定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断

不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获输出比较、主从触发模式、编码器接口等多种功能

根据复杂度和应用场景分为了高级定时器、通用定时器、基本定时器三种类型

类型 编号 总线 功能
基本定时器 TIM6、TIM7 APB1 拥有定时中断、主模式触发DAC的功能
通用定时器 TIM2、TIM3、TIM4、TIM5 APB1 拥有基本定时器全部功能
并额外具有内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等功能
高级定时器 TIM1、TIM8 APB2 拥有通用定时器全部功能
并额外具有重复计数器、死区生成、互补输出、刹车输入等功能
注意

不同定时器的定时器数量不同, 使用前要查阅对应的技术手册
STM32F103C8T6 定时器资源:TIM1、TIM2、TIM3、TIM4

一、基本定时器

Pasted image 20240717185503.png

时基单元

时基单元相关时序图

时基单元的寄存器都为 16 位寄存器
在 72MHz 计数时钟下可以实现最大 59.65s 的定时

171×106×216×216

1.基本功能

定一个时间,定时器每隔一个时间产生一次中断
来实现每隔一个固定时间执行一段程序

预分频器、计数器、自动重装载寄存器
定时器产生更新中断、更新事件
只支持向上计数模式

2.主模式输出(仅DAC)

让内部硬件在不受程序的控制下实现自动运行,减轻 CPU 的负担
避免 DAC 频繁占用 CPU 主程序的运行或影响其他中断的响应

使用主从触发模式,将定时器的更新事件映射到 TRGO(Trigger Out)的位置
TRGO 转换到 DAC 的触发引脚上,就无需通过中断来触发 DAC 转换
实现硬件自动化

二、通用定时器

支持向上计数向下计数、三种中央对齐计数的多种计数模式
(一般选用向上计数)

Pasted image 20240717185555.png

输入滤波

3.内外时钟源选择

1.内部时钟(RCC)

系统频率 72MHz

2.外部时钟(ETR 引脚)

外部时钟模式 2

AFIO 复用 GPIO,输入外部时钟信号 TIMx_ETR,ETR
极性选择、边缘检测、预分频得到 ETRP
再经过输入滤波得到 ETRF

ETRF External Trigger Filter
外部触发滤波器,用于减少外部信号的噪声,确保触发信号的稳定性

4.触发输入 TRGI

外部时钟模式 1

TRGI(Timer Input Trigger)
定时器输入触发信号

TRC(Timer Remapping Capability)
定时器重映射功能,定时器的输入和输出可以被重映射到不同的引脚或信号,以适应不同的应用需求。

1. ETRF 输入(ETR 引脚)

ETR 引脚经过变换得到的信号 ETRF

2. ITR 内部触发输入(其他定时器的输出)

Internal Trigger Input
允许定时器通过内部信号触发。通常用于将一个定时器的输出 TRGO 连接到另一个定时器的输入,实现定时器之间的同步或级联

3. TI1F_ED 捕获输入(CH1 的边沿)

输入捕获单元 :TIMx_CH1引脚获得时钟信号,
经过输入滤波器和边沿检测器得到信号 TI1F_ED (Edge)
(加上 ED 后缀,表示边沿:上升沿/下降沿有效)

4. TI1FP1 TI2FP2 输入(CH1、CH2 的边沿)

CH1 引脚的 TI1FP1
CH2 引脚的 TI2FP2

2. 主模式输出(范围较广)

TRGO Timer Output Trigger 定时器输出触发信号,
将内部一些事件映射到 TRGO 引脚
可以用来触发其他外设,如ADC、DAC或其他定时器。

5. 输入捕获电路

TIM 输入捕获

四个通道,对应 CH1-CH4 引脚
用于测量方波的频率

输入捕获通道设置异或门,实际上是为三相无刷直流电机服务的
前三个通道接上无刷电机的霍尔传感器,定时器就作为无刷电机的接口定时器,来驱动换相电路工作

输入信号进入两套滤波器和边沿检测器(选择触发方式
CH1 经过滤波和极性选择,得到
TI1FP1 (TI1 Filter Polarity 1) 给通道 1
TI1FP2 (TI1 Filter Polarity 2) 给通道 2

CH2 经过滤波和极性选择,得到
TI2FP1 (TI1 Filter Polarity 1) 给通道 1
TI2FP2 (TI1 Filter Polarity 2) 给通道 2

灵活切换后续捕获电路的输入
将一个引脚的输入,同时映射到两个捕获单元,同时对一个引脚捕获,实现PWMI 模式(同时测量 PWM 信号的周期和占空比)
一个通道使用上升沿触发,用来捕获周期
第二个通道使用下降沿触发,用来捕获占空比

6. 输出比较电路

TIM 输出比较
四个通道,对应 CH1-CH4 引脚
用于输出 PWM 波形、驱动电机

捕获/比较寄存器
输入捕获电路和输出比较电路共同的部分,引脚也共用

7.编码器接口

TIM 编码器接口

输入:使用定时器捕获的前两个通道
CH1: TI1FP1、 CH2:TI2FP2

输出:从模式控制器
控制 CNT 计数器的计数时钟和计数方向

读取正交编码器的输出波形,编码电机测速

三、高级定时器

Pasted image 20240717171009.png

8. 重复次数计数器

实现每隔几个计数周期才发生一次更新事件和更新中断
相当于对更新信号做分频

9. DTG 死区生成电路

Dead Time Generate 死区生成
原来的输出通过输出控制模块,变为两个互补的输出
可以生成两路互补的 PWM 波形,为驱动三相无刷电机

可以用来用于驱动外部推挽电路

注意只有前三路发生改变(作为互补输出)
原因是三相无刷电机的驱动电路只需要三路桥臂

为了防止互补输出 PWM 驱动桥臂时,开关切换瞬间由于器件不理想的原因造成短暂直通现象,所以增加死区生成电路
在开关切换瞬间,产生一定时长死区,让上下管全部关断

10. 刹车输入

为电机驱动提供安全保障

  1. 外部引脚 BKIN(Break IN)产生刹车信号
  2. 内部时钟失效,产生故障 (CSS 时钟安全系统)
    刹车输入中,一旦 CSS 检测到外部时钟失效,通过或门反映到输出比较

控制电路会自动切断电机的输出,防止意外发生