STM32——定时器理论概述

一、通用定时器的内部原理框图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

整个通用定时器可以划分为三大板块,红色板块,蓝色板块,黄色板块,其分别对应三大部分

  • 时钟源
  • 时基单元
  • 输入捕获与输出比较

下面将进行三个部分详细讲解

一、时钟源

将上面红色部分单独拿出来如下图所示

在这里插入图片描述

我们先划分为三个色彩红蓝黄绿色,其分别对应不同时钟源选择

第一种色彩红色——代表①内部时钟源通道

第二种色彩蓝色——代表外部时钟源通道 TIMx_ETR,其内部又可以细分为上面通往ETRF的路,我们管它叫外部时钟源2,和下面通往TRGI的路我们管它叫做外部时钟源1

第三种色彩黄色——代表其他定时器时钟源通道

第四种色彩绿色——代表输入捕获的时钟信号源,左边绿色部分 它可以来源于第一个输入捕获通道右边绿色部分它来源于第一个或第二个输入捕获通道

以上就是通用定时器的全部时钟源来源

二、时基单元

在这里插入图片描述

时钟源的时钟信号最终会到达时基单元这一部分,所谓时基单元即包括三个部分:①PSC预分频器②CNT计数器③自动重装载寄存器

其整体工作流程如下:

时钟信号——PSC预分频器——CNT计数器开始计数—计数到自动重装载寄存器设定的值–CNT又重新开始计数………依次循环

也就是时钟信号CK_PSC经过PSC预分频器分频(自己所设定的一个分频值)后得到的CK_CNT到CNT计数器使得计数器开始计数(按照自己所设定的计数模式)一直到自动重装载寄存器设置的值后,计数清空再次计数,并产生两个信号①更新中断信号②更新事件信号

下面这个表格是CNT计数器的计数模式和以向上计数模式为例子的CNT工作流程

CNT计数模式 核心工作原理 支持的定时器类型(STM32 通用系列)
向上计数模式 计数器从初始值(默认 0)开始递增; 计数到自动重装载值(ARR) 时,触发更新事件(UEV); 事件后计数器重置为 0,重新开始递增 基本定时器(TIM6/TIM7)、通用定时器(TIM2-TIM5 等)、高级定时器(TIM1/TIM8 等)
向下计数模式 计数器从自动重装载值(ARR) 开始递减; 计数到 0 时,触发更新事件(UEV); 事件后计数器重置为 ARR,重新开始递减 通用定时器、高级定时器(基本定时器不支持)
中心对齐模式 先向上计数到 ARR,触发更新事件(部分模式); 再向下计数到 0,再次触发更新事件; 循环往复,形成 “向上→向下” 的对称计数。 通用定时器(部分)、高级定时器(基本定时器不支持)

在这里插入图片描述

三、输入捕获与输出比较

在这里插入图片描述

下面到达了最后一个部分——输入捕获与输出比较部分,也就是最开始那个图所选黄色区域,把它单独拿出来,我再次细分为两个部分

以中间的捕获比较寄存器为分割线,左边黄色部分为输入捕获部分,右边蓝色为输出比较部分。

下面进行拆分讲解,先讲输出比较,在讲输入捕获

1.输出比较

由于输出比较由四个通道,而且它们每个通道都一样,我单独拿出来一个通道,如下图所示我拿出了一个输出比较通道一,这就是蓝色部分详细图

在这里插入图片描述

所谓输出比较就是输出一个模拟的输出量,我们知道如果想输出一个高电平,直接给寄存器1就能输出,给0就能输出低电平,这是两个极端要么低电平,要么高电平,如果我们想输出一个介于低电平与高电平的电压呢怎么输出呢?也就是用输出比较的PWM模块帮助我们模拟输出出来

输出比较有八个模式分别对应下表

在这里插入图片描述

上表所说的有效电平与无效电平我们简单理解就是高电平与低电平,我们常用的就是就是PWM模式1,当我们设定好模式后,每次计数时候都会进入输出比较控制器,看输出的电平oc1ref到底是高电平还是低电平,参考下图输出比较工作流程

在这里插入图片描述
origin_url=C%3A%5CUsers%5C25486%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20251007183819520.png&pos_id=img-a1GUIZKA-1759841357998)

蓝色代表计数器计数值的变化,黄色代表自动重装载寄存器所设置的计数器上限阈值,红色代表所设定的CCR寄存器值,以PWM模式1为例子,当其CNT小于CCR值时候为高电平,反之为低电平,下面绿色线代表oc1ref电平的变化

当信号输出为oc1ref继续走到选择器也就是那个三角的元件,向上走就是当 CC1P = 0 时,选择直接输入的信号,此时信号跟oc1ref信号一样不变化,向下走就是当 CC1P = 1 时,选择经过反相器取反后的信号,也就是跟oc1ref相反的信号

以上就是输出比较内容,下面进行输入捕获内容详解

2.输入捕获

在这里插入图片描述

黄色部分为输入捕获的部分,输入捕获是为了捕捉外部信号的上升沿或者下降沿,下面图为内部结构详细图

在这里插入图片描述

还是一样的由于四个通道都一样,选取第一个输入捕获通道TIMx_CH1通道,外部信号通过这个通道到达滤波器向下计数器这个部分,这个部分会完成降噪过程(通过采样频率原理完成降噪),信号变为T1F到达边沿检测器,这个检测器作用是捕获上升沿瞬间或者下降沿瞬间的值,其值存入到输入捕获寄存器,比如选取上升沿进行捕获,当外部信号出现上升沿时候就会记录此时CNT计数值(同时产生上升沿瞬间会产生一个T1F_ED信号,可以通往从模式控制器),并保存到捕获寄存器中,紧接着信号变成T1FP1信号(变为这个信号瞬间会产生另外一个信号到达从模式控制器),接着信号到达分频器经过分频后就会产生一个跟更新中断差不多的信号CC1I来可以控制中断

补充:从模式控制器可以完成自动清空CNT计数器值任务

以上就是输入捕获部分详解

二、高级定时器内部框图

在这里插入图片描述

高级定时器对比通用定时器就多了红色这一大块,分别对应重复次数计数器, 互补 PWM 输出及死区生成电路,刹车功能

  • 重复次数计数器:

其作用跟自动重装载寄存器作用类似,设定一个重复次数计数器的值,然后当定时器计数器(主计数器)达到自动重装载值,产生溢出时,重复次数计数器不会立即触发更新事件,而是进行减 1 操作。只有当重复次数计数器减到 0 时,才会真正产生更新事件 。

  • 互补 PWM 输出及死区生成电路

高级定时器能够输出互补的 PWM 信号,即在同一时刻,两路 PWM 信号高低电平状态相反。同时,死区生成电路可以在两路互补 PWM 信号切换时,插入一段短暂的时间间隔(死区时间), 防止同一桥臂的上下两个功率器件(如 MOSFET、IGBT)同时导通,避免短路,提高系统可靠性。主要为三项无刷电机设计

  • 刹车功能

刹车功能可以在检测到特定的外部信号(如故障信号)时,快速将 PWM 输出设置为特定的安全状态,如强制所有 PWM 输出为低电平,从而迅速切断负载的供电,保护电路和设备免受损坏。

三、基本定时器

基本定时器功能就更简单的,其内部图如上,参考上面说的通用定时器图,就可以理解基本定时器了,这里不多赘述

四、定时器编码器接口

基本概念:定时器的编码器模式是一种特殊工作模式,用于对接旋转编码器(如增量式编码器),实现对旋转位置、方向和速度的精确测量

核心原理:通过定时器的两个输入通道(通常为 CH1 和 CH2)接收编码器输出的 A、B 两相正交脉冲信号。这两路信号相位相差 90°,定时器会根据脉冲的边沿变化和相位关系,自动判断旋转方向(正转 / 反转)并进行加减计数

应用层次:一般应用在利用输出比较PWM驱动电机旋转,然后用定时器编码器接口测电机旋转速度,然后再用PID闭环运算控制

资源:每个高级定时器和通用定时器都拥有1个编码器接口

正交脉冲信号概念:如下图所示,相差一个相位的两个脉冲信号为正交脉冲信号,根据相位相差的前后,可以判断其旋转方向

在这里插入图片描述

如第一个正传:A相信号提前B相信号一个相位,此时判断为正传,反之当A相比B相信号落后一个相位就判断为反转,这就是编码器可以知道旋转方向原理

编码器对应定时器内部原理图位置如下:

在这里插入图片描述

红色和绿色线代表A相和B相,占用了定时器输入捕获通道1和2,当定时器选择为编码器接口模式时候,此时CNT计数器模式不再控制CNT计数,而是由编码器来控制计数,当正转时候计数器+1反之-1,同时定时器编码器接口还会充当一个时钟源,为定时器计数提供时钟脉冲

编码器接口控制定时器CNT计数器计数有三种方式如下图所示

在这里插入图片描述

这里说的TI1和TI2代表就是A相和B相边沿(上升沿与下降沿)

参考上面的图计数模式即可知道其内部计数流程

当选择在TI1和TI2都计数时候,以正转为参考,当且仅当出现A相上升沿或者下降沿时候或B相上升沿或者下降沿时候会计数+1

当选择在TI1计数时候时候,以正转为参考,当且仅当出现A相上升沿或者下降沿时候都会计数+1

道其内部计数流程

在这里插入图片描述

当选择在TI1和TI2都计数时候,以正转为参考,当且仅当出现A相上升沿或者下降沿时候或B相上升沿或者下降沿时候会计数+1

当选择在TI1计数时候时候,以正转为参考,当且仅当出现A相上升沿或者下降沿时候都会计数+1

当选择在TI2计数时候时候,以正转为参考,当且仅当出现B相上升沿或者下降沿时候都会计数+1

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐