目   录

1. TIM功能框图及简述

2.   时钟源部分

3. 控制器部分

4. 时基部分

5. 输入捕获部分

6. 输入捕获和输出比较共用部分

7. 输出比较部分

8. 产生中断/DMA的条件

9. 各寄存器功能简单总结

10. 一般配置思路


1. TIM功能框图及简述

        1:时钟源部分

        2:控制器部分

        3:时基部分

        4:输入捕获部分

        5:输入捕获和输出比较共用部分

        6:输出比较部分

高级TIM所包含的部分基本为这6个,下面将一一讲解,了解整体架构后,再看说明书去配置,会事半功倍。

2.   时钟源部分

        首先使用高级TIM,就必须要选择时钟源,高级TIM提供了4种方式提供时钟源。

       1. 内部时钟源---------CK_INT:就是片上提供的系统时钟。

      2. 外部时钟模式1—外部GPIO Tix:可以通过GPIO或者其他方式连接该引脚,从而提供时钟(通过它提供时钟的方式不经常用):

信号的运行路径如下:

以下为外部时钟1部分的详图:

       3. 外部时钟模式2—外部GPIO ETR:与外部时钟模式1类似,可以通过GPIO或者其他方式连接该引脚,从而提供时钟(通过它提供时钟的方式不经常用):

以下为外部时钟2部分的详图

        外部时钟1和2的区别:

            1.外部时钟1提供没有divider(分频器),外部时钟2提供divider,2模式可以进行降频。

            2.外部时钟1共有4个通道可用(CHx),外部时钟2仅有一个通道可用(CH1)。

        4. 内部触发输入:

使用该模式时,可以将另一个TIM设置为主模式,从而可以TRGO输出时钟,用作该TIM的时钟。简单讲,就是两个TIM共用一个时钟。

内部触发输入如下图:

作用:

接收“主定时器”发送的时钟。

如下图:

3. 控制器部分

        如图为控制器部分框图。

        讲完时钟了,要了解下控制器部分,其实控制器用作选择做这三件事:

                1. 是否设置为主模式,这样的话就能把自己的时钟,通过TRGO这个引脚,输出出去,这个引脚可以连接到另一个TIM的ITRx引脚,从而实现共用时钟,其实上面提到过。

                2. 是否配置触发模式,就是不通过使能寄存器来让TIM工作,而是通过一个规定电平来触发,可以是上升沿、下降沿,从而让TIM工作,或者复位,等。

                3. 选择那种方式提供时钟,时钟源部分只是讲了,有哪些时钟,但真正选择用哪一个,在该部分配置。

        看两个寄存器的功能描述涵括其所拥有的作用(实际牵连的寄存器不仅此两个):

        主模式选择位

位6:4 MMS[1:0]:Master mode selection

这些位可选择主模式下将要发送到从定时器以实现同步的信息(TRGO)。

        作用

        使能输出TRGO(Trigger Output)提供自己的时钟给其他定时器

例如如图: TIM1将自己的时钟做为TRGO提供,TIM2接收TRGI,做为TIM2的时钟。

        从模式选择位

  1. 000禁止从模式:选择内部时钟,直接提供时钟到时基部分,无法开启触发功能。
  2. 100复位模式:所选触发输入(外部时钟输入)上升或下降时,reset时基部分的计数器。
  3. 101门控模式高电平或低电平使能时基部分的计数器,反向电平停止计数。
  4. 110触发模式:上升沿或下降沿启动计数器
  5. 另外外部时钟也可选择不使用触发的模式。

        作用:

        使能输出TRGI(Trigger Input)

        控制器的作用:

  1. 提供Trigger Output
  2. 提供Trigger Input
  3. 选择时钟。

        注:

        1. 触发共三种功能: 复位、门控、启动。

2.这里提到的主模式和从模式没太大关系,一个TIM可以同时使用主从模式。

例如:TIM1可使用内部时钟 + 启动trigger + 提供TRGO。

效果:触发后,启动时钟并把时钟提供给“从TIM”。

        3.常使用外部时钟1的通道作为触发通道。

                例如:可以使用CH1作为触发,我们设置为上升沿触发,之后,选择时钟源为内部时钟源。这里不要晕,触发和时钟源是两回事,CH1可以作为提供时钟源的引脚(配置CH1为外部时钟模式1),也可以作为触发,他们使用的通道和信号的路径是一样的而已,当然CH1配置为触发时,就不能再作为外部时钟引脚了,可以用CH2!但是UP没试过,理论可以。

4. 时基部分

时基部分,是整个TIM最最最核心的部分,可以说是大脑,下面一切功能都是围绕CNT这个寄存器做的。

PSC是分频器,可以通过它来给输入过来的时钟分频进行分频,之后,在配置使能后,每个CK_CNT(就是从分频器出来的时钟),CNT counter就++或者--,看下面怎么配置的,当CNT==ARR(auto-reload register,自动装置寄存器,就是当CNT上下溢了,就可以将ARR的值重新给CNT),就产生更新事件。这里根据配置,不一定就是CNT==ARR,也可能CNT==0,下面会讲解。

REP寄存器用于配置重复计数(RCR),CNT每次自动重装时REP-1,到REP等于0时产生更新事件(可以是中断,可以是唤醒DMA,在于如何配置相应寄存器)。

预分频寄存器(PSC)为16位寄存器。

计数寄存器(CNT)为16位寄存器。

自动装载寄存器(ARR)为16位寄存器。

和TIM类似,控制器提供CK_PSC到PSC,PSC提供CK_CNT到CNT,CNT开始计数。

        CNT计数方式共三种,up / down / center

        Up:CNT从0开始++计数,当值等于自动装载寄存器(ARR)时,产生更新事件,CNT再次从0计数。

        Down:CNT从自动装载寄存器值(ARR)开始- - 计数,到0时,产生更新事件,CNT再次装载ARR的值。

        CenterCNT从0开始++计数,等于ARR-1时,产生更新事件,CNT此时等于ARR-1,从该值- -计数,等于0时,产生更新事件。

5. 输入捕获部分

        OK,以上的基础部分讲解完毕,下面就是重要的功能部分了。

        作用:

测量输入信号的周期

测量输入PWM信号的占空比/周期。

        工作原理:

当捕获到信号的跳变沿(上升/下降/双沿)时,把CNT的值锁存到CCR中,产生更新事件(中断/DMA)。

        测量原理(以下为软件操作)

每次产生更新事件(中断/DMA),在处理函数中(中断/DMA)读取CCR的值并保存,将上次捕获的CCR值与本次相减,结果可计算脉宽或周期。

        注:

当设置单沿捕获时,结果可计算周期

当设置双沿捕获时,结果可计算周期/脉宽,但是无法知道脉宽是高电平的,还是低电平的,因为无法具体判断是上升还是下降触发的

整体框图如下:

如图,一个输入信号通道可以占用两个捕获通道(IC1和IC2),TI1FP1可以给IC1TI1FP2可以给IC2,因此可以用该方法测量输入PWM的占空比及周期。

        测量PWM输入的占空比及周期

CH1做为输入通道,IC1捕获上升沿,IC2捕获下降沿。

        与普通方法比较:

  1. 普通方法该过程需要产生两个中断,该方法仅需要产生一个中断。就是说,PWM输入捕获模式,其实就是用了两个寄存器来分别捕获上升沿、下降沿触发时的CNT的值了,看上图可知,TI1刚上升时,IC1和IC2复位(或者IC1捕获CNT的值,这里其实是配置成了触发复位的方式),也可以理解为,TI1刚上升时,IC1捕获CNT的值,TI1下降沿时,IC2捕获CNT的值,此时可以让IC2不产生中断,只让IC1产生中断,(因为下个触发是IC1,所以IC2的值不会变化,这样就不影响)这样就能少一个中断的产生。
  2. 普通方法测PWM,只能用双沿触发,因为无法判断上升还是下降沿,因此无法算出占空比。

如下图:

        无法确定是A,还是B。

6. 输入捕获和输出比较共用部分

        捕获/比较寄存器(CCR)为16bit。

        输入捕获时:该寄存器做捕获寄存器。

        输出比较时:该寄存器做比较寄存器。

因此不管是输入捕获还是输出比较,亦或是两者混合,同时使用的个数都不能超过4。

7. 输出比较部分

        作用:

通过定时器的外部引脚对外输出控制信号。

        常用做PWM输出

        工作原理:

CNT <=  CCR 时输出高/低电平。

CNT >   CCR 时输出反向电平。

        PWM输出:

PWM输出与普通输出比较原理一样,仅寄存器配置的不同。

        总体分两种:边沿对齐模式、中心对齐模式

        其实就是基时部分CNT的计数方式,up/down 为边沿对齐,center为中心对齐

简单解释下:看上图,拿DOWN模式举例,CNT初始值等于ARR,假设CNT==ARR==0XFFFF,我们假设配置假设CNT <= CCR 输出高,CNT>CCR输出低。刚开始,CNT==ARR且CNT>CCR,此时输出低,随着CNT- - ,当CNT==CCR了,此时就输出高,后面就好是CNT<CCR,依旧输出高。

假设CNT <= CCR 输出高,CNT>CCR输出低。输出的PWM如下图:

        整体框图

8. 产生中断/DMA的条件

以下各条件可通过寄存器使能或关闭:例如你可以配置CNT==0时,不让他产生更新事件(中断/DMA),例如:你可以配置捕获输入CCR1,捕获到目标信号后,不产生中断。

  1. 更新事件(CNT上/下溢出)
  2. 捕获(输入捕获时,捕获到目标信号)
  3. 比较(输出比较时,CNT == CCR)

9. 各寄存器功能简单总结

一下部分为UP呕心沥血整理的,当想配置对应部分了,就可以直接到对应寄存器里找,另外,并不是非常准确,毕竟STM在这块设计就很乱,如果看手册了就知道我这话的意思了,但整体是准确的。

1.  CR1:  时基配置。

2.  CR2:  控制器配置。

3.  SMCR:  控制器配置。

4.  DIER:    使能 中断/DMA相关配置。

5.  SR:    状态 中断相关配置。

6.  ERG:  是否产生中断/DMA 中断/DMA相关配置。

7.  CCMR1:CH1/CH2 捕获/比较配置。

8.  CCMR1:CH3/CH4 捕获/比较配置。

9.  CCER:  使能 捕获/比较配置。

10.  CNT:  计数寄存器。

11.  PSC: 分频寄存器。

12.  ARR: 自动装载寄存器。

13.  DCR: DMA配置相关。

14. DMAR: DMA配置相关。

15. CCR1/CCR2/CCR3/CCR4:捕获/比较寄存器。

10. 一般配置思路

其实你看到的所有乱七八糟的功能,都是通过这几个部分的不同工作模式,组合而成的。

例如:

        什么单脉冲模式啊:就是CH2做触发,使用内部时钟,使用比较输出,输出一个脉冲。

1:时钟源部分

2:控制器部分

3:时基部分

4:功能部分:

输入捕获部分

输出比较部分

以上按照1-4的顺序配置,即可

有了以上知识,再去看STM的高级定时器TIM1&TIM8的说明书部分,应该会清晰很多。

高级定时器TIM1TIM8工作原理和功能相关推荐

  1. JavaScript定时器的工作原理(翻译)

    JavaScript定时器的工作原理(翻译) 标签(空格分隔): JavaScript定时器 最近在看ajax原理的时候,看到了一篇国外的文章,讲解了JavaScript定时器的工作原理,帮助我很好的 ...

  2. 超详细的jenkins持续集成工作原理、功能、部署方式等介绍

    文章由LinuxBoy分享于2019-08-30 11:08:39 超详细的jenkins持续集成工作原理.功能.部署方式等介绍 1. 概念 jenkins是一个开源项目,提供了一种易于使用的持续集成 ...

  3. eja智能压力变送器工作原理_如何理解智能压力变送器工作原理及功能介绍

    如何理解智能压力变送器工作原理及功能介绍 智能压力变送器一般是由传感器.微处理器.存储器及模数.数模转换器组成.传感器用来检测被测量的信号,其所用材料因厂家而异.横河EJA为硅谐振式,把被测参数转换为 ...

  4. 什么是网络光端机?网络光端机工作原理及功能介绍!

    网络光端机,就是光信号传输的终端设备.由于目前技术的提高,光纤价格的降低使它在各个领域得到很好的应用.在远程光纤传输中,光缆对信号的传输影响很小,光纤传输系统的传输质量主要取决于光端机的质量,因为光端 ...

  5. svn增量打包部署_超详细的jenkins持续集成工作原理、功能、部署方式等介绍

    概述 今天简单整理了一下jenkins的一些概念性内容,归纳如下: 1.概念 jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实 ...

  6. 变频器的工作原理和功能应用

    变频器(Variable-frequency Drive,VFD)是应用变频技术与微电子技术,通过改变电机工作电源频率方式来控制交流电动机的电力控制设备. 变频器主要由整流(交流变直流).滤波.逆变( ...

  7. 物联网终端设备的工作原理和功能讲解

    物联网终端设备是实现数据采集和数据传输的设备,它连接了传感网络层和传输网络层,起到了数据采集.数据处理.数据加密和传输的功能. 物联网终端设备由传感器.外部传感接口.CPU和外部通讯组成,工作原理是通 ...

  8. STM32学习笔记 高级定时器TIM1TIM8 14

    高级定时器TIM1&TIM8 TIM1和TIM8简介 高级控制定时器(TIM1和TIM8)由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动 它适合多种用途,包含测量输入信号的脉冲 ...

  9. HD-SDI转HDMI转换器工作原理及功能介绍

    高清HD-SDI转HDMI转换器是一款专用于单路高清数字分量串行接口(HD-SDI和3G-SDI)信号转换为HDMI信号的设备.该设备集成SDI接收器及HDMI调制器,可方便的将HD-SDI信号转为H ...

最新文章

  1. 文本类文件与VS关联-实践
  2. 搭建基于Docker社区版的Kubernetes本地集群
  3. ARM开发板系统移植-----kernel的编译
  4. onnx模型转tensorflow模型
  5. 【jQuery系列之插件】jQuery插件---exselect实现联动
  6. 微信小程序源码下载链接
  7. 从AIDL一窥Android Binder机制
  8. git提交代码至代码仓库详细步骤
  9. 学习笔记(5):Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)-深度学习“四件套”:数据、模型、损失函数与优化器...
  10. 解读测试能力素质模型(Job Model)
  11. 蓝牙耳机无法与计算机连接,蓝牙耳机怎么连接电脑【图文教程】
  12. 正睿OI补题(贪心)
  13. 经典的Times 33 哈希算法
  14. C中printf()格式代码%g、%f、%e
  15. 关于自建ip池可能出现的问题
  16. 在 MySQL 数据库中删除重复记录的步骤
  17. owlBus 的uwp版本上架了
  18. 环形缓冲区的实现原理(ring buffer)
  19. Python下使用sklearn绘制ROC曲线(超详细)
  20. pt-quey-digest慢查询查询工具

热门文章

  1. DWORD类型转LPWSTR类型
  2. 各搜索引擎免费登录地址
  3. 四、T100应收管理之其他应收立账
  4. 百度SEO最新泛目录程序+推送工具
  5. Linux就该这么学--Samba NFS的配置
  6. Idea debug 调试快捷键
  7. 知识点------文字超出(单行,两行)显示省略号(...)
  8. 谈谈实际项目中对 数据库设计 的一些思考
  9. 记录一次nginx配置php-fpm 404
  10. nginx关闭目录浏览功能