TIM定时器简介
类型 | 编号 | 总线 | 功能 |
---|---|---|---|
高级定时器 | TIM1、TIM8 | APB2 | 通用定时器全部、重复计数器、死区生成、互补输出、刹车输入等 |
通用定时器 | TIM2、TIM3、TIM4、TIM5 | APB1 | 基本定时器全部、内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等 |
基本定时器 | TIM6、TIM7 | APB1 | 定时中断、主模式触发DAC |
对于STM32103C8T6:拥有TIM1、TIM2、TIM3、TIM4一个高级定时器三个通用定时器
基本定时器
- 预分频器、计数器、自动重装寄存器构成最基本的计数计时电路称为时基单元
- 内部时钟来源是RCC_TIMxCLK,频率一般为72MHz
- 预分频器数字+1为分频系数,预分频器16位,最大值65535即65536分频
- 计时器对预分频后的计数时钟进行计数,计数时钟每有一个上升沿,计数器加一,16位,计数值:0-65535
通用定时器
-
通用计数器和高级计数器支持向上计数、向下计数、中央对齐三种模式,基本计数器仅支持向上计数一种模式
-
时钟源:内部时钟RCC_TIMxCLK,外部ETR引脚(PA0)接外部方波时钟
-
TRGI主要用作触发输入来触发从模式,也可当作外部时钟来看,作为外部时钟时称为外部时钟模式1
-
ETRF用作外部时钟进入出发控制器,称为外部时钟模式2
-
外部时钟模式1的输入:其他定时器、CH1引脚的边沿、CH1引脚、CH2引脚
- ITRx输入来自其它定时器,定时器输出TRGO通向其他定时器,接到其他定时器的ITR引脚
- TI1F_ED从CH1引脚获得时钟,其中ED是边沿的意思即上升沿和下降沿均有效
- TI1FP1接CH1,TI2FP2接CH2
- 捕获比较寄存器及其右侧为输出比较电路,可用于输出PWM波形,驱动电机
- 捕获比较寄存器及其左侧为输入捕获电路,可用于测量输入方波频率
- 输出捕获和输出比较不能同时使用
高级定时器
- 重复次数计数器可以实现每隔几个计数周期发生一次更新事件或更新中断,相当于对输出的更新信号进行分频,16位
- DTG死区生成电路,前三路可输出一对互补的PWM波,用于驱动三相无刷电机
- 死区是为了避免在开关切换时,避免电机中桥臂出现直通现象
- 刹车输入功能:为电机驱动提供安全保障,当BKIN输入刹车信号或者内部时钟失效,控制电路将自动切断电机输出,防止意外
定时中断基本结构
预分频器时序
-
在技术过程中改变分频值,要想进行完此次计数,产生更新事件,开始下一次计数时使用新的分频值
-
下边三条时序反映了预分频寄存器的一种缓冲机制:改变分频系数时先将分频值放入预分频控制寄存器,在计数结束后才将分频值放入缓冲寄存器,按照新的分频值进行计数。
-
预分频器内部实际是依靠计数来实现分频
-
计数器计数频率: C K C N T = C K P S C / ( P S C + 1 ) 计数器计数频率:CK~CNT=CK~PSC/(PSC+1) 计数器计数频率:CK CNT=CK PSC/(PSC+1)
计数器时序
-
更新中断标志需要手动清零
-
计数器溢出频率: C K C N T O V = C K C N T / ( A R R + 1 ) = C K P S C / ( P S C + 1 ) / ( A R R + 1 ) 计数器溢出频率:CK~CNT~OV=CK~CNT/(ARR+1)=CK~PSC/(PSC+1)/(ARR+1) 计数器溢出频率:CK CNT OV=CK CNT/(ARR+1)=CK PSC/(PSC+1)/(ARR+1)
自动重装寄存器
- 通过设置ARPE位可设置计数器是否使用缓冲(影子)寄存器,ARPE=1即使用,=0即不使用
- 更改自动重装寄存器后直接作用于计数器
- 更改自动重装寄存器后,此次计数结束产生更新时间后新的计数目标才生效
RCC时钟树
- 两个高速晶振是用来提供系统时钟,AHB、APB1、APB2时钟来源于此
- 标准库中SystemInit时钟配置函数流程:先启动内部8MHz时钟,以内部8MHz为系统时钟,暂时以内部8MHz时钟运行,之后启动外部时钟,配置外部时钟进入PLL锁相环(PLLMUL)进行倍频,8MHz倍频9倍,得到72MHz,待锁相环输出稳定后选择锁相环输出为系统时钟
- CSS(clock security sstem)时钟安全系统,检测外部时钟的运行状态,当外部时钟失效时,将系统时钟切换为内部时钟,保证系统时钟的运行,防止程序卡死造成事故
输出比较(OC Output Compare)
输出比较(OC Output Compare)可以通过比较CNT(时基单元计数器)和CCR(捕获比较寄存器)寄存器值的关系,来对输出电平进行置一、置零、或翻转的操作,同于输出一定频率和占空比的PWM波形
每个高级定时器和通用定时器都有四个输出比较通道,高级定时器的前三个通道额外拥有死区生成和互补输出的功能
输出比较通道输出电路
输出比较模式
PWM基本结构
PWM脉冲宽度调制,在具有惯性的系统中,可以通过一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等
频率 = 1 / TS 占空比 = TON / TS 分辨率 = 占空比变化步距
蓝色线:CNT值,黄色线:ARR值,红色线:CCR,绿色线:REF输出
REF频率和占空比均可调的PWM波形
PWM频率: Freq = CK_PSC / (PSC + 1) / (ARR + 1);PWM占空比: Duty = CCR / (ARR + 1);PWM分辨率: Reso = 1 / (ARR + 1)
输入捕获(IC Input Capture)
输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值被所存到CCR寄存器中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数
可配置PWMI模式同时测量PWM波形的频率和占空比
可配合主从触发模式,实现硬件全自动测量
频率测量方法
- 测频法(频率高时):在闸门时间T(s)内,对上升沿进行计数,得到N,则频率为 f x = N / T f_x = N / T fx=N/T
- 测周法(频率低时):在两个上升沿内,以标准频率fc计次,得到N,则频率为 f x = f c / N f_x = f_c / N fx=fc/N (原理频率为周期的倒数)
- 中界频率:测频法与测周法误差相等的频率点 f m = T ∗ f c f_m = \sqrt{T * f_c} fm=T∗fc
- 频率大于中界频率时使用测频法,小于中界频率时使用测周法
输出捕获通道
主从触发模式
- 主模式:将定时器内部信号映射到TRGO引脚,用于出发其他外设。
- 从模式:接受其他外设信号或自身外设信号,用于出发自身定时器运行。
- 触发源选择:选择出发从模式的信号源,得到TRGI,TRGI触发从模式,从模式在列表中选择一项操作来自动执行。