关于STM32定时器中TI1FP1 与TI1FP2及相关话题

发布者:SereneHeart最新更新时间:2022-08-11 来源: csdn关键字:STM32  定时器 手机看文章 扫描二维码
随时随地手机看文章

整体来讲,STM32各个系列的TIMER外设基本框架和功能是类似的,大体分高级定时器、通用定时器和基本定时器。除了基本定时器外,每个高级定时器或部分通用定时器都可以产生4对中间信号,分别是TI1FP1 与TI1FP2,TI2FP1 与TI2FP2,TI3FP3 与TI3FP4,TI4FP3 与TI4FP4,即每个输入通道可以生产1对信号。这里以STM32F103系列为例聊聊T这个 TImFPn,。


 在SMT32各系列的参考手册的定时器部分,在描述高级定时器或通用定时器时都可以看到如下的一副图。图中对那4对信号被清晰地描绘了出来。

这四对信号可以统一写为:TImFPn,其中 m代表滤波和边沿检测器前的输入通道号,n代表经过滤波和边沿检测器后将要接入或者说要映射到的捕捉通道号。 比如:TI1FP1,是来自于通道TI1,经过滤波器后将接到捕捉比较通道IC1;

 

  TI1FP1,是来自于通道TI1,经过滤波器后将接到捕捉比较通道IC1;

      TI1FP2,是来自于通道TI1,经过滤波器后将接到捕捉比较通道IC2;

      TI2FP1,是来自于通道TI2,经过滤波器后将接到捕捉比较通道IC1;

      TI2FP2,是来自于通道TI2,经过滤波器后将接到捕捉比较通道IC2;

      TI3FP3,是来自于通道TI3,经过滤波器后将接到捕捉比较通道IC3;

      TI3FP4,是来自于通道TI3,经过滤波器后将接到捕捉比较通道IC4;

      TI4FP3,是来自于通道TI4,经过滤波器后将接到捕捉比较通道IC3;

      TI4FP4,是来自于通道TI4,经过滤波器后将接到捕捉比较通道IC4;

那每一对信号到底是什么关系呢?比如TI1FP1与TI1FP2。说实在的,这个地方参考手册里就没有个明确的表述,让人很费解。但是可以从一个地方可以推理得出来,那个地方下面会提到。其实,二者都是来自同一TI1输入通道,经过输入滤波和边沿检测器后所产生的具有相同特征的信号,然后映射到不同的输入捕捉通道,本质上还是同一路信号。

 同理,TI2信号,经过滤波和边沿检测后产生了2路滤波信号,分别是TI2FP1与TI2FP2,它俩也是具有相同特征的信号,只是TI2FP1映射到捕捉通道IC1,TI2FP2映射到捕捉通道IC2.

那么对于TI3、TI4输入通道,经过滤波和边沿检测后,也分别产生两对滤波信号TI3FP3与TI3FP4,TI4FP3与TI4FP4,分别前往IC3和IC4输入捕捉通道。


STM32定时器部分,有个PWM输入模式的应用介绍。专门介绍如何利用PWM输入模式测量某一路外部输入信号的频率和占空比的话题。这里正是利用TI1FP1与TI1FP2来自于同一通道TI1且TI1FP1可以作为从模式触发源的特点来完成的。通过该实例不难理解TI1FP1与TI1FP2的实质就是一个东西。【在不做过滤和反相处理的前提下,TI1=TIF1P1=TI1FP2】

 下面是利用PWM输入模式对TI1输入信号的周期和占空比进行测试的大致过程。特别注意图中红色标注的那些地方。

 

显然,这里的PWM输入模式正是利用2个捕捉通道针对同一信号进行的捕捉,只是分别针对上升沿和下降沿进行捕捉。


要注意的是,利用上述PWM输入模式方法对外部输入信号的频率和占空比进行测量,只限于TI1或TI2通道。因为只有TI1FP1和TI2FP2接到了从模式控制器。这点,资料上有讲得清楚,有人有时无视了这点,将待测信号接到TI3或TI4后使用上述方法自然就不灵光了。


另外,STM32的部分定时器中还集成了正交编码控制器,这个应用与TI1FP1和TI2PF2有关,换言之,要使用STM32内部正交编码功能的话,只能使用TI1和TI2两个输入通道。所以,应用时不要随便乱接。

 

而且,并不是只要有TI1和TI2两个输入通道的定时器就内置正交编码接口。其实不然。比方32F1系列中的TIM9和TIM12就不支持。所以设计时需要查看下相关定时器的框架图。

关于正交编码器应用,有个编码信号与计数方向对照关系表经常让人觉得看起来费劲。【注意,正交编码接口用到的信号是TI1FP1和TI2FP2。即一路来自TI1,一路来自TI2】

结合上面的关系表和计数阶梯图我们来一起看下。


假设对于来自于TI1和TI2的信号不做过滤和反相处理,TI1=TIF1P1,TI2=TI2FP2。

上面的那个编码与计数方向对照表里提到相对信号电平,其实这里TI1FP1的相对信号就是TI2,TI2FP2的相对信号就是TI1。


假设选择正交编码器要同时对TI1和TI2进行计数的模式,不做滤波和换相。


那么当TI1FP1的上升沿到来时,如果此时其相对信号TI2的电平为低,则计数器向上计数;如果此时其相对信号TI2的电平为高,则计数器向下计数。结合上面的关系表和计数阶梯图,同样可以看出,当TI1FP1的下降沿到来时,如果此时其相对信号TI2的电平为低,则计数器向下计数;如果此时其相对信号TI2的电平为高,则计数器向上计数。


那对于TI2FP2的上升沿和下降沿时刻的计数方向的判断,一样可以通过其相对信号TI1的电平结合上面的对照表得知其相应时刻的计数方向。

 

小结下,上面只是就STM32定时器中的TImFPn信号做些沟通或应用提醒,具体应用时还得详细研究参考手册。不可否认,STM32的定时器功能非常强大,定时器资源很多,参考手册中描述它的文字篇幅也相当大,不过有些细节地方讲得差强人意。大家在研读参考手册时,最好文字阅读结合查看图表,必要时可以结合ST官方的参考库TIMER外设应用示例代码帮助理解。


关键字:STM32  定时器 引用地址:关于STM32定时器中TI1FP1 与TI1FP2及相关话题

上一篇:STM32编码器模式详解(一)---理论
下一篇:STM32_USB_CDC学习笔记

推荐阅读最新更新时间:2024-11-16 21:12

STM32 F4 (8) Systick滴答定时器-延时函数讲解
SysTick定时器适用所有的STM32开发板,这节课讲解SysTick定时器产生的 延时函数,STM32开发指南5.1小节有有关SysTick相关的 介绍,在程序中在delay文件夹中,SysTick定时器是内核级别的,这个定时器很简单,主要用来延时和用作实时系统里面的心跳时钟 可以节省单片机资源,SysTick定时器就是系统滴答定时器,是一个24位的倒计数定时器,当他计数到0时就会从RELOD寄存器(重装载寄存器)重新装载计数初值,由此循环。只要 不把他的使能 位清除,他就会永不停息的工作,即使在睡眠模式下也能正常工作。 SysTick定时器它是捆绑在NVIC中,可以产生SysTick异常,SysTick也可以产生中断 ,
[单片机]
<font color='red'>STM32</font> F4 (8) Systick滴答<font color='red'>定时器</font>-延时函数讲解
STM32_IAP详解(有代码,有上位机)
Iap,全名为in applacation programming,即在应用编程,与之相对应的叫做isp,in system programming,在系统编程,两者的不同是isp需要依靠烧写器在单片机复位离线的情况下编程,需要人工的干预,而iap则是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。在工程应用中经常会出现我们的产品被安装在某个特定的机械结构中,更新程序的时候拆机很不方便,使用iap技术能很好地降低工作量. 实现iap有两个很重要的前提,首先,单片机程序能对自身的内部flash进行擦写,第二,单片机要有能够和外部
[单片机]
STM32_IAP详解(有代码,有上位机)
STM32】通用定时器的基本原理(实例:定时器中断)
STM32F1xx官方资料: 《STM32中文参考手册V10》-第14章通用定时器 STM32的定时器: STM32F103ZET6一共有8个定时器,其中分别为: 高级定时器(TIM1、TIM8);通用定时器(TIM2、TIM3、TIM4、TIM5);基本定时器(TIM6、TIM7)。 STM32的通用定时器 通用定时器功能特点描述 STM32的通用定时器是由一个可编程预分频器(PSC)驱动的16位自动重装载计数器(CNT)构成,可用于测量输入脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等。 STM3 的通用TIMx(TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括: 位于低速
[单片机]
【<font color='red'>STM32</font>】通用<font color='red'>定时器</font>的基本原理(实例:<font color='red'>定时器</font>中断)
STM32 通用定时器与滴答定时器
STM32 通用定时器与滴答定时器 前言:STM32包括TIM1/TIM8两个高级定时器,TIM2~TIM5四个通用定时器,TIM6/TIM7两个基本定时器,还有使用非常方便的系统滴答定时器(systick),基本操作为:配置(使能时钟/设置工作方式及初值/配置中断/开启中断和时钟/使能定时器) 计数 产生中断。 一、通用定时器使用 void TimerConfig(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; // 使能时钟/复位/自动重装载设置/时钟预分频设置/采样分频/up/清除中断/开启时钟 RCC_APB1PeriphClock
[单片机]
解决Stm32开发板每次下程序必须重新上电问题
Stm32的启动模式由 BOOT0和BOOT1进行配置,在下载模式下我们需要讲BOOT0配置成0电平,但往往忽略了BOOT1。 一般开发板厂家都会把BOOT0和BOOT0都做成可配置的。 我遇到的问题就是在下载程序的时候只在BOOT0上接了跳线帽讲其接地,但是BOOT1确由其悬空着,因此每次下载都必须重新上电才能被下载器认可,后来将BOOT1用跳线帽接到高电平后,问题成功解决,每次下载前只需要按下复位按键就可以了。
[单片机]
解决<font color='red'>Stm32</font>开发板每次下程序必须重新上电问题
stm32实用篇2: 裸机系统实现多任务轮转
在裸机系统中,通常都是在一个大的 while 循环中,通过判断标志位,来按照顺序执行相应的代码。为了加快响应速度,较为常见的做法是中断中修改标志位,代码中判断标志位,如下所示: int main(void) { XX_Init(); /* while 中判断标志位 */ while (1) { if (flag0 == 1) { code0; flag0 = 0; } if (flag1 == 1) { code1; flag1 = 0; } /************/ } } /* 中断服务函数中修改标志位 */ void Handler0(vo
[单片机]
STM32开发环境】Linux下开发stm32(四) | 固件库工程开发
st官方固件库是在寄存器操作之上的,但是使用寄存器操作的话,需要注意的地方很多,需要对照参考手册一个一个赋值,稍有不慎便会出错,所以固件库将外设的初始化封装成初始化结构体,将外设的操作封装在函数中,将寄存器赋值的操作都封装起来,我们只需要调用API就可以,这样一来既提高了开发效率,也减少了代码量,如果还不能在MDK里熟练使用固件库编程,建议先补基础~接下来,我们在上一节寄存器工程的基础上,添加固件库,使用固件库进行开发。 1.创建固件库工程 将上一节的寄存器工程复制过来,改名为03-template-lib,然后再其中创建如下目录结构,便于工程管理: startup:存放启动文件 cmsis:stm32固件库中的cmsi
[单片机]
【<font color='red'>STM32</font>开发环境】Linux下开发<font color='red'>stm32</font>(四) | 固件库工程开发
AVR单片机定时器输出PWM的设计及注意问题
  一、定时/计数器PWM设计要点   根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点:   1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。   2.然后根据需要PWM的频率范围确定ATmega128定时/计数器的PWM工作方式。AVR定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。   3.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved