通用定时器原理

STM32通用定时器详解

一,STM32三种定时器区别

三种定时器

 2个高级定时器
 4个通用定时器
 2个基本定时器

二,定时器的计数模式

定时器的三种工作模式

向上计数模式:
    计数器从0开始计数,当计数到自动装载值(TIMx_ARR)时产生向上溢出事件
向下计数模式:
    计数器从自动装载值(TIMx_ARR)开始向下计数,当计数到0时产生向下溢出事件
中央对齐模式(向上/向下计数):
    计数器从0开始计数,到自动装载值(TIMx_ARR)-1时,产生计数器溢出事件,
    然后向下计数到1,产生计数器溢出事件,然后再从0开始重新计数

三,通用定时器的介绍

对于总线时钟有疑问请查看 STM32时钟系统

通用定时器包括:TIM2,TIM3,TIM4,TIM5

位于低速APB1总线上 
16位定时器,支持向上,向下,中央对齐
自动重装载寄存器TIMx_CNT
16位可编程(1-65535.可实时修改)预分频器 TIMx_PSC
4个独立通道(TIMx_CH1-CH4),彼此不影响
独立通道作用:
    1,输入捕获
    2,输出比较
    3,PWM生成(边缘或中间对齐模式)
    4,单脉冲模式输出
每个定时器有4个独立通道,每个通道同一时间只能使用输入捕获和输出比较的一种
支持定时器互联
STM32的每个通用定时器都是完全独立的,没有互相共享的任何资源

产生中断和/DMA的事件:(6个独立的IRQ/DMA请求生成器)

1,更新: 计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部外部触发)
2,触发事件(计数器启动,停止,初始化,由内部/外部触发计数)
3,输入捕获
4,输出比较
5,支持针对定位的增量(正交)编码器和霍尔传感电路
6,触发输入作为外部时钟或按周期的电流管理

STM32通用定时器被用于:

 测量输入信号的脉冲长度(输入捕获)或产生输出波形(输出比较和PWM)等

 使用定时器预分频器和RCC时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整

四,通用定时器框图

通用定时器框图


1,第一部分:时钟发生器

这里写图片描述

主要作用:产生时基单元的时钟


1)时基单元的时钟来源来自内部时钟

来自内部时钟

来自内部时钟:
    触发控制器将内部APB1总线通过倍频得到的时钟作为时基单元的时钟来源

2)时基单元的时钟来源来自外部时钟

来自外部时钟

来自外部时钟:
    外部引脚输入信号,TIMx_ETR(定时器2 3 4,定时器5没有这个寄存器),
    通过极性选择,边沿检测,和预分频器,再通过输入滤波产生时钟
    作为时基单元的时钟来源

3)时基单元的时钟来源来自其他定时器

来自其他定时器

来自其他定时器:
    ITR0-ITR4内部触发输入口,通过定时器的级联,来自其他定时器的时钟,
    通过选择器,触发控制器,作为时基单元的时钟来源
    由其他定时器的TRGO,输入到ITR1-ITR4,定时器的级联

4)时基单元的时钟来源来自外部通道

这里写图片描述

外部通道输入:
    通过选择器,通过触发控制器,作为时基单元的时钟来源

总结:
    使用较多的应用场景是:内部时钟

2,时基单元部分

这里写图片描述

CK_PSC时钟信号进行预分频,产生CK_CNT时钟为计数器最终时钟
计数器在这个时钟的控制下进行计数,向上/向下/中央对齐计数是在触发控制器的相应寄存器中配置的
当计数器向上计数到重装载值或向下计数到0将触发中断或DMA请求

3,输入捕获部分

输入捕获部分

应用场景:计算脉冲宽度
    先设置为捕获上升沿,输入信号进行输入滤波(抗干扰)和边沿检测,检测到上升沿,捕获比较寄存器会将这个值记下来
    再设置为捕获下降沿,检测到下降沿,又记录下这个值,
    通过这两个值可以计算脉冲宽度
每个定时器有4个独立通道,每个通道同一时间只能使用输入捕获和输出比较的一种

4,输出比较部分

输出比较部分

PWM输出:
    设置捕获/比较寄存器为一个置,当计数器比这个值大输出高电平,比这个值小输出低电平
    这样可以产生一个波,通过调整占空比(捕获/比较寄存器的值),可以输出PWM
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BraveWangDev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值