当前位置:   article > 正文

STM32定时器的介绍_stm32 itr

stm32 itr

一、定时器中断

        定时器的基本功能:对输入的时钟进行计数,在计数值达到设定值时触发中断。当这个计数器输入是一个准确可靠的基准时钟的时候,那么它在对这个基准时钟进行计数的过程实际上就是记时的过程。

定时器组成:

16位计数器:计数器就是用来执行计数定时的一个寄存器每来一个时钟,计数器加1。在STM32中,时钟频率为72Mhz,那么计72个数字就是1us的时间,计72000个数就是1ms的时间。在72Mhz的计数时钟下,最大可以实现\frac{65536*65536}{72M}=59.65s的定时。还可以使用级联模式,让一个定时器输出当另一个定时器输入,这样可以实现59.65*65536秒,大概八千多年。

预分频器:可以对计数器的时钟进行分频,让计数更加灵活

自动重装寄存器:就是计数的目标值,就是我想要记多少个时钟申请中断

定时器支持的功能:

        定时中断,内外时钟源选择,输入捕获,输出比较,编码器接口,主从触发模式等多种功能。

定时器分类

        高级定时器(复杂),通用定时器(适中),基本定时器(简单)。

1、 基本定时器:

 工作原理:

        预分频器与自动装载寄存器,CNT计数器组成了时基单元,由于基本定时器只能选择内部时钟,可以将PSC预分频器直接看作与内部时钟CK_INT相连,内部时钟的频率来自RCC的TIMxCLK,这里的频率值一般都是系统的主频72MHz

        预分频器写0那就是不分频,或者是1分频,这时候输出频率=输入频率=72MHZ。如果写1,就是2分频,输出频率为72÷2=32MHz。如果写2就是3分频,预分频的值与实际的分频系数相差1。这个预分频器为16位最大值可以写65535,也就是65536分频。

        计数器对预分频后的计数时钟进行计数,计数时钟每来一个上升沿,计数器的值就+1,这个计数器的值也是16位的,里面的值可以从0一直加到65535,再加的话,就会从0重新开始。当自增到目标值时就产生中断。那么就需要一个存储目标值的寄存器,那就是自动重装寄存器

        当定时器达到目标值时,就会产生更新中断,如图上的UI,这个更新中断会通往NVIC,再配置好NVIC的定时器通道,那么定时器中断就会得到CPU的响应了。图中的U称为更新事件,它会触发内部其他电路的工作。

DAC主从触发模式:

        它能让内部的硬件不受程序控制的情况下自动运行。在某些情境下会减轻CPU的负担。

        在我们使用DAC的时候,可能会使用DAC输出一段波形,那就需要每隔一段时间触发一次DAC,让他输出下一个电压点。使用这个主模式可以把定时器的更新事件映射到触发输出TRGO的位置,然后TRGO直接接到DAC的触发转换引脚上。整个过程不需要软件的参与,不需要CPU频繁进入中断,实现硬件自动化。

2、通用定时器

主要区别:

       1、 基本计时器只支持向上计数的模式,通用定时器和高级定时器支持向上计数,向下计数,中央对齐这三种模式。

  2、 基本计时器只支持内部时钟通用寄存器支持内外部时钟。如下图引脚定义可以在TIM2_ETR上外接外部定时器,也就是PA0上接通外部方波时钟。如图所示继续配置极性选择,边沿检测和预分频器,再配置输入滤波电路,滤除外部时钟毛刺,再通过上面一路ETRF进入触发控制器,就可以作为时基单元的时钟了,这一路也叫做外部时钟模式2

        除了外部时钟引脚可以提供时钟外,下面还有一路可以提供时钟,就是TRGI(Trigger In),主要是用作触发输入来使用的,可以触发定时器的从模式

        触发输入还可以作为外部时钟,当TRGI当作外部时钟来使用的时候,这一路就叫做“外部时钟模式1”。如图通过这一路的外部时钟有ETR引脚信号,ITR信号。ETR信号通过这一路会占用触发输入的通道ITR信号的时钟信号是来自其他定时器的。如图右边的主模式输出的TRGO可以通向其他定时器,通向其他定时器的时候就接到了其他定时器的ITR引脚上。具体的连接方式见下表。通过这一路就可以实现定时器级联的功能。例如,我们可以初始化TIM3,然后利用主模式把它的更新事件映射到TRGO上,接着再初始化TIM2,这里选择ITR2,对应就是TIM3的TRGO,然后后面再选择时钟为外部时钟模式1,这样TIM3的更新事件就可以驱动TIM2的时基单元。就实现了定时器的级联。这里还可以选择TI1F_ED,这里连接输入捕获单元的CH1引脚,也就是从CH1引脚获得时钟,ED(Edge)就是边沿的意思,也就是通过这一路输入的时钟,上升沿和下降沿均有效。最后这个时钟还可以通过TI1FP1和TI2FP2获得。其中TI1连接到了CH1,TI2连接到了CH2。

        总结:外部时钟模式1的输入可以是ETR引脚,其他定时器,CH1引脚的边沿,CH1引脚和CH2引脚。一般情况下,外部时钟的引脚通过ETR引脚就可以了,其他模式主要是为了某些特殊场景设计的。例如定时器级联,输入捕获,测频率。

        如果要选外部时钟,首选ETR引脚外部时钟模式2输入。

3、TRGO至其他定时器至DAC/ADC,这块就是定时器的主模式输出。这部分电路可以把内部的一些事件映射到TRGO引脚上,例如刚刚基本定时器提到的将更新事件映射到TRGO,用于触发DAC。这里同理我们可以把定时器内部的一些事件映射到这里,用于触发其他定时器、DAC或者ADC。下面的电路右边为输出比较电路,总共有4个通道,分别对应CH1-4的引脚,可用于输出PWM波形,驱动电机。左边为输入捕获电路,也有四个通道,对应也是CH1-4的引脚,可用于测量输入方波的频率

 

3、高级定时器

        高级定时器的主要区别如下图红色框内,DTG是死区生成电路,后面的输出引脚变为了两个互补输出,可以输出一对互补的PWM波用于驱动三相无刷电机。无刷电机的驱动电路一般需要三个桥臂,每个桥臂两个大功率开关控制,为了防止PWM驱动桥臂时,在开关切换的瞬间,由于器件不理想造成的短暂直通现象,因此加上了DTG死区生成电路。在开关切换的瞬间,让桥臂的上下管全都关断。最下面的红框是刹车输入功能,为了给电机提供安全保障。如果外部引脚BKIN产生了刹车信号或者内部时钟失效,控制电路会自动切断电机的输出

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/942298
推荐阅读
相关标签
  

闽ICP备14008679号