高级定时器
初识stm32高级定时器:
(1)高级控制定时器(TIM1 和 TIM8)和通用定时器在基本定时器的基础上引入了外部引脚,可以实现输入捕获和输出比较功能。
(2)高级控制定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能都是针对工业电机控制方面。
(3)高级控制定时器时基单元包含:
==>一个 16 位自动重装载寄存器 ARR
==>一个 16 位的计数器CNT,可向上/下计数
==>一个 16位可编程预分频器 PSC(预分频器时钟源有多种可选,有内部的时钟、外部时钟)
==>一个 8 位的重复计数器 RCR,这样最高可实现 40 位的可编程定时(仅高级定时器独有)
功能框图:
高级定时器的定时器的时钟来源(有四个时钟来源):
内部时钟源 CK_INT
外部时钟模式 1:外部输入引脚 TIx(x=1,2,3,4)
外部时钟模式 2:外部触发输入 ETR
内部触发输入(ITRx)
1)内部时钟源CK_INT
对应于功能框图==>
内部时钟 CK_INT来自于芯片内部,等于72M(一般情况下,我们都是使用内部时钟)
对应于寄存器配置位==>
当从模式控制寄存器 TIMx_SMCR 的 SMS 位等于 000 时,则使用内部时钟。
2)外部时钟模式 1:外部输入引脚 TIx(x=1,2,3,4)
对应于功能框图==>
①:时钟信号输入引脚
当使用外部时钟模式 1 的时候,时钟信号来自于定时器的输入通道,总共有 4 个,分别为TI1/2/3/4,即TIMx_CH1/2/3/4。具体使用哪一路信号,由TIM_CCMRx的位CCxS[1:0]配置,其中 CCMR1 控制 TI1/2,CCMR2 控制 TI3/4。
②:滤波器
如果来自外部的时钟信号的频率过高或者混杂有高频干扰信号的话,我们就需要使用滤波器对信号重新采样,来达到降频或者去除高频干扰的目的,具体的由 TIMx_CCMRx的位 ICxF[3:0]配置。
③:边沿检测
边沿检测的信号来自于滤波器的输出,在成为触发信号之前,需要进行边沿检测,决定是上升沿有效还是下降沿有效,具体的由 TIMx_CCER的位 CCxP 和 CCxNP 配置。
④:触发选择
当使用外部时钟模式 1时,触发源有两个,一个是滤波后的定时器输入 1(TI1FP1)和滤波后的定时器输入 2(TI2FP2),具体的由TIMxSMCR 的位 TS[2:0]配置。
⑤:从模式选择
选定了触发源信号后,最后我们需把信号连接到 TRGI 引脚,让触发信号成为外部时钟模式1的输入,最终等于CK_PSC,然后驱动计数器CNT计数。具体的配置TIMx_SMCR的位 SMS[2:0]为 111 即可选择外部时钟模式 1。