tsm2812通用定时器中断_STM32——通用定时器工作过程及原理

本文详细介绍了通用定时器的工作流程,包括时钟发生器、时基单元(PSC预分频器与计数器)、输入捕获、输出比较机制,以及如何通过不同时钟源设置。了解如何利用PSC分频器调整定时精度,以及输入捕获测量脉冲宽度的重要性。
摘要由CSDN通过智能技术生成

通用定时器的工作过程(学习笔记)

通用定时器框图:

bc7e36d9cf15d8881fa2f25297e658ad.png

整张图可以分成5部分。

13679824d6f27029c891b9a3346e6e29.png

第一部分是时钟发生器。第二部分为时基单元。第三部分为输入捕获。第四部分为输出比较。第五部分包含了几个捕获/比较寄存器。

讲解如下:

第一部分:首先看到第二部分中psc预分频器需要接收时钟源,而时钟源共有四种来源,分别如下:

1、RCC寄存器中的APB1外设时钟使能寄存器,经过倍频之后输出时钟源,这是因为该寄存器的位0到位5分别表示的是定时器2到定时器7的使能位。(位于图上第一部分)

2、外部触发引脚TIMx_ETR的外部触发输入ETR,对应的引脚可以通过查数据手册得到。ETR经过分频得到ETRP,在经过滤波得到ETRF作为时钟信号。(位于图上第一部分)

3、内部触发输入(ITRx),来自其他的定时器的时钟,即将其他定时器产生的脉冲信号作为该定时器的时钟源,经过后面的选择器,进入到触发控制器。(位于图上第一部分)

4、外部输入引脚Tix,这个主要来自于TIMx_CHx (四个通道)。(位于图上第三部分)

第二部分:为时基单元,包括PSC预分频器、自动重装载寄存器和CNT计数器。首先由第一部分产生时钟源,进入PSC预分频器进行分频处理,得到新的时钟信号CK_CNT,使得CNT计数器加1或者减1,此时在自动重装载寄存器中有一个预先设定的装载值,当计数器的值达到装载值的时候,会产生溢出事件,然后触发中断。

第三部分为输入捕获,TIMx_CH1——TIMx_CH4 这四个通道,在芯片中都有对应的引脚,当脉冲从通道口进入时,经过输入滤波器(抗干扰的作用),然后经过边沿检测器检测到上升沿(下降沿),经过分频器,输入到第五部分中的捕获寄存器中,然后捕获寄存器记录此刻CNT计数器的值,当下一次下降沿(上升沿)过来时,也记录下CNT计数器的值,这样就可以计算出输入脉冲的宽度。

第四部分为输出比较(注意输入捕获和输出比较不可以同时进行),比如在比较寄存器中预先设定一个值,计数器从初始值到装载值之间计数时,当正好等于比较寄存器中的预设值时,控制TIMx_CH1——TIMx_CH4通道输出低电平或者高电平,这样随着计数器不断的计数,就可以获得一个脉冲,通过调整预设值,就可以调整脉冲宽度,调整初始值和装载值就可以调整周期。

注:PSC预分频器

目的是将定时器时钟源分频输出。它的值由TIMx_PSC决定,是一个16位正整数的值。为什么要分频输出呢?

例如当使用内部时钟时,它的频率一般比较高,导致时间体现在定时器上的效果就非常短,而如果我们需要更长的时间间隔,就需要对该时钟源分频处理,以降低定时器时钟(CK_CNT)的频率。

PSC预分频器工作的工作原理:定时器时钟源每tick一次,预分频器计数器值+1,直到达到预分频器的设定值,然后再tick一次后计数器归零,同时,CNT计数器值+1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值