STM32片上资源解析:深入了解TIM基本结构和功能
1.TIM简介
(1)TIM:Timer定时器。
(2)定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断(即计数器CNT值达到自动重装值ARR中时)。
(3)16为计数器,预分频器,自动重装寄存器的时基单元,在72MHZ计数时钟下,可以实现最大59.65秒的定时。(解释:16位计数器和预分频器和自动重装寄存器设到最大,即2的167次方=65536.此时的定时器事件最长T=1/f=1/(72*10^6/65536/65536)= 59.655)
2.TIM定时器的分类
类型 | 编号 | 总线 | 功能 |
高级定时器 | TIM1,TIM8 | APB2 | 有通用定时器全部功能,并额外有重复计数器,死区生成,互补输出,刹车输入等功能 |
通用定时器 | TIM2,TIM3,TIM4,TIM5 | APB1 | 有基本定时器全部功能,并额外具有内外时钟源选择,输入捕获,输出比较,编码器接口,主从触发模式等功能 |
基本定时器 | TIM6,TIM7 | APB1 | 有定时中断,主模式触发DAC功能 |
注:1.高级定时器时钟APB2打开,通用和基本定时器由APB1打开。
2.STM32F103c8t6有四个定时器:TIM1,TIM2,TIM3,TIM4。
TIM定时器框图解析
基本定时器
(1)时基单元:由预分频器和计数器和自动重装寄存器构成。
a.PSC预分频器:通72MHZ的计数时钟进行预分频,如果该处写入0,即为不分频,写1,为2分频,依此类推。
b.计数器,用预分频后的时钟进行计数,计数器每来一个上升沿,计数值加1.
c.自动重装寄存器:存的为计数目标,在计数过程中,计数值不断自增,当计数值=重装值时,,会产生一个中断信号,并且清除计数器。
补充:产生的中断会产生一个更新中断和一个更新事件。
UI为更新中断,更新中断后会通往NVIC,再到CPU。
U为更新事件,更新事件不会触发中断,但可能触发内部其他电路的工作。
通用定时器
通用定时器与基本定时器不同的是多了内部时钟源选择和输入捕获和输出比较和CNT计数模式。
(1)CNT计数器模式
a.向上计数模式。
b.向下计数模式。
c.中央对齐模式
注:基本定时器只支持向上计数一种,通用和高级定时器都支持。
(2)内外时钟源选择
内部:CK_INT
外部:a.TIMx_ETR
b.ITRx:来自其他定时器,由TRGO输出
c.CH1引脚,CH2引脚,CH1引脚的边沿
补充:TIMx内部触发连接图
从定时器\主定时器 | ITR0 | ITR1 | ITR2 | ITR3 |
TIM2 | TIM1 | TIM8 | TIM3 | TIM4 |
TIM3 | TIM1 | TIM2 | TIM5 | TIM4 |
TIM3 | TIM1 | TIM2 | TIM3 | TIM8 |
TIM4 | TIM2 | TIM3 | TIM4 | TIM8 |
如:TIM2的ITR0是接到TIM1的TRG0口上。
(3)输入捕获和输出比较后面会细讲。
高级定时器
(1)重复计次寄存器:高级定时器的时基单元后连接了一个重复次数寄存器,实现每隔几个计数周期才发生一次更新事件和跟新中断。(相当于对输出更新信号又做了一次分频)
(2)DTG(死区生成电路):产生一定时间死区,防止在开关切换瞬间,用于器件不理想,造成短暂的直通。
(3)DTG右边的输出引脚,由原来的一个变成了互补的输出,可以输出互补的PWM波。(注:这些都是为了驱动三相无刷电机的)、
(4)刹车输入:给电机驱动提供安全保障。
TIM功能介绍
(1)定时中断
(2)内外时钟源选择:
内部时钟:RCC内部时钟。
外部时钟:ETR外部时钟,ITRx其他定时器,TIx捕获通道。
(3)输出比较:用以输出PWM信号或脉冲信号。
(4)输入捕获:(由TIx捕获通道)作用:读取输入信号频率;读取PWM的占空比。
(5)编码器接口:相当于一个有方向选择的外部时钟。(注:用于接收增量(正交)编码器信号)
(6)主从触发模式。
注:功能实现部分较长,想要了解看后面有关博客。
作者:崇子嵘