STM32通用定时器基本原理

三种stm32定时器的区别 

时器种类

位数

计数器模式

产生DMA请求

捕获/比较通道

互补输出

特殊应用场景

高级定时器

TIM1,TIM8)

16

向上,向下,向上/

可以

4

带可编程死区的互补输出

通用定时器(TIM2,TIM5

32

向上,向下,向上/

可以

4

通用。定时计数,PWM输出,输入捕获,输出比较

通用定时器(TIM3,TIM4

16

向上,向下,向上/

可以

4

通用。定时计数,PWM输出,输入捕获,输出比较

通用定时器(TIM9~TIM14

16

向上

没有

2

通用。定时计数,PWM输出,输入捕获,输出比较

基本定时器

(TIM6,TIM7)

16

向上,向下,向上/

可以

0

主要应用于驱动DAC

通用定时器功能特点描述 

STM3 F4的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括:

16 /32 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。
16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数 为 1~65535 之间的任意数值。
4 个独立通道(TIMx_CH1~4),这些通道可以用来作为: 
① 输入捕获 
② 输出比较
③ PWM 生成(边缘或中间对齐模式) 
④ 单脉冲模式输出 
可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。
如下事件发生时产生中断/DMA(6个独立的IRQ/DMA请求生成器): 
①更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) 
②触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) 
③输入捕获 
④输出比较 
⑤支持针对定位的增量(正交)编码器和霍尔传感器电路 
⑥触发输入作为外部时钟或者按周期的电流管理
STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。   
使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。

计数器模式

通用定时器可以向上计数、向下计数、向上向下双向计数模式。

①向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。

②向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。

③中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。

通用定时器(TIM2,3,4,5)工作过程: 

 

1.时钟源的产生

产生CK_PSC时钟供实际电路使用,时钟四种来源:内部时钟(APB1倍频而来)、外部引脚TIMx_ETR引脚、内部触发输入口(ITR0~3)(来自其他定时器的输入用于定时器的级联)、TI1FP1,TI2FP2,TI1F_ED(来自TI1,TI2外部通道)。

2.实际电路

CK_PSC经过PSC预分频器分频产生CK_CNT时钟作为计数器的最终时钟, 然后根据触发控制器设置的向上/下计数达到条件后从自动重装载寄存器中加载值。

3.输入捕获

对外部通道输入的信号进行捕获,然后经过滤波器和边沿检测产生的信号(下降沿/上时沿)经过预分频器然后和计数器中的值进行比较产生一个事件,记下两次计数器中的值就知道时间长度。

4.输出比较

在输出比较寄存器中设置一个值与计数器比较,比如比计数器的值大产生一个高电平,小产生一个低电平,在计数器的一个周期产生一个高电平和低电平到引脚,我们可以控制产生一个占空比可调(调节比较寄存器)的脉冲。

5.相关寄存器

计数时钟的选择

计数器的时钟有8种选择

1.内部RCC提供的时钟:TIMxCLK

2.内部触发输入口1~4:

1)ITR1/ITR2/ITR3/ITR4

2)用一个定时器作为另一个定时器的分频器

3.外部捕获比较引脚

1)引脚1:TI1FP1或TIF_ED

2)引脚2:TI2FP2

4.外部引脚:ETR

1)使能/禁止位

2)可编程设定极性

3)4位外部触发过滤器

4)外部触发分频器:分频器关闭    二分频    四分频    八分频

时基单元

1.计数器寄存器(TIMx_CNT)

向上计数,向下计数,中心对齐计数

2.预分频器寄存器(TIMx_PSC)

可将时钟频率按1到65536之间的任意值进行分频,可在运行时改变其设置值

3.自动装载寄存器(TIMx_ARR)

1)如果TIM1_CR1寄存器的ARPE位为0,ARR寄存器的内容将直接写入影子寄存器;

如果ARPE为1,ARR寄存器的内容将在每次的更新事件UEV发生时,传送到影子寄存器;

2)如果TIM1_CR1中的UDIS为0,当计数器产生溢出条件时,产生更新事件

更新事件
1.将预载寄存器的内容写入影子寄存器(通过自动重载位是否被使能来决定):
1)立即
2)在每次更新事件发生时
2.产生更新事件的条件:
1)当计数器上溢或下溢时,
2)当循环计数器计数值为0时(仅适用于TIM1),
3)通过软件设置UG(Update Generation)位。
3.更新事件的请求源可以从下面选择:
1)URS = 1 ---仅当计数器到达上溢/下溢时,将发出更新请求;
2)URS = 0 --—计数器的上溢/下溢、更新位的设置或从模式控制器产生的更新,将发出更新请求。

捕捉比较阵列介绍
1.捕捉比较阵列包括:
每个定时器拥有4个同样的捕捉比较通道;
2.可编程设定通道的方向:输入/输出
3.每个通道由以下部分组成:
1)捕捉/比较寄存器
2)针对捕捉的输入部分:
4位数字滤波器
输入捕捉分频器:
检测到每个边沿完成捕捉
每产生2个事件完成捕捉
每产生4个事件完成捕捉
每产生8个事件完成捕捉
4.针对比较的输出部分:
1)比较器
2)输出控制
输入捕获模式(1)

1.TC1、2和IC3、4可以分别通过软件设置将其映射到TI1、T12和T13、TT4
2.4个16位捕捉比较寄存器可以编程用于存放检测到对应的每一次输入捕捉时计数器的值:
3.当产生一次捕捉,相应的CCXIF标志位被置1:同时如果中断或DMA请求使能,则产生中断或DMA请求。
4.如果当CCXIF标志位已经为1,当又产生一个捕捉,则捕捉溢出标志位CCxOF將被置1。
PWM模式
1.PWM模式运行产生:
1)定时器2、3和4可以产生4独立的信号
2)频率和占空比可以进行如下设定:
看一个自动重载寄存器用于设定PWM的闹期;
每一个PWM通道有一个捕捉比较寄存器用于设定占空时间。
例如:产生一个40Kz的PDN信号:在定时器2的时钟为72MHz下,占空比为50%:
预分频资存器设置为0(计数器的时钟为TIMICLK/(0+1))。自动重载资存器设为1799, CCRx
器存器设为899。
2.两种可设置PWM模式:
看边沿对齐模式
买中心对齐极式

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值