第32章 TIM—高级定时器—零死角玩转STM32-F429系列

第32章     TIM—高级定时器

全套200集视频教程和1000PDF教程请到秉火论坛下载:www.firebbs.cn

野火视频教程优酷观看网址:http://i.youku.com/firege

 

 

本章参考资料:《STM32F4xx 中文参考手册》、《STM32F4xx规格书》、库帮助文档《stm32f4xx_dsp_stdperiph_lib_um.chm》。

学习本章时,配合《STM32F4xx 中文参考手册》高级定时器章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。

特别说明,本书内容是以STM32F42x系列控制器资源讲解。

上一章我们讲解了基本定时器功能,基本定时器功能简单,理解起来也容易。高级控制定时器包含了通用定时器的功能,再加上已经有了基本定时器基础的基础,如果再把通用定时器单独拿出来讲那内容有很多重复,实际效果不是很好,所以通用定时器不作为独立章节讲解,可以在理解了高级定时器后参考《STM32F4xx中文参考手册》通用定时器章节内容理解即可。

32.1 高级控制定时器

高级控制定时器(TIM1TIM8)和通用定时器在基本定时器的基础上引入了外部引脚,可以输入捕获和输出比较功能。高级控制定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能都是针对工业电机控制方面。这几个功能在本书不做详细的介绍,主要介绍常用的输入捕获和输出比较功能。

高级控制定时器时基单元包含一个16位自动重载计数器ARR,一个16位的计数器CNT,可向上/下计数,一个16位可编程预分频器PSC,预分频器时钟源有多种可选,有内部的时钟、外部时钟。还有一个8位的重复计数器RCR,这样最高可实现40位的可编程定时。

STM32F429IGT6的高级/通用定时器的IO分配具体见表 01。配套开发板因为IO资源紧缺,定时器的IO很多已经复用它途,故下表中的IO只有部分可用于定时器的实验。

01 高级控制和通用定时器通道引脚分布

  

高级控制

通用定时器

TIM1

TIM8

TIM2

TIM5

TIM3

TIM4

TIM9

TIM10

TIM11

TIM12

TIM13

TIM14

CH1

PA8/PE9/PC9

PC6/PI5

PA0/PA5/PA15

PA0/PH10

PA6/PC6/PB4

PD12/PB6

PE5/PA2

PF6/PB8

PF7/PB9

PH6/PB14

PF8/PA6

PF9/PA7

CH1N

PA7/PE8/PB13

PA5/PA7/PH13

  

  

  

  

  

  

  

  

  

  

CH2

PE11/PA9

PC7/PI6

PA1/PB3

PA1/PH11

PA7/PC7/PB5

PD13/PB7

PE6/PA3

  

  

PH9/PB15

  

  

CH2N

PB0/PE10/PB14

PB0/PB14/PH14

  

  

  

  

  

  

  

  

  

  

CH3

PE13/PA10

PC8/PI7

PA2/PB10

PA2/PH12

PB0/PC8

PD14/PB8

  

  

  

  

  

  

CH3N

PB1/PE12/PB15

PB1/PB15/PH15

  

  

  

  

  

  

  

  

  

  

CH4

PE14/PA11

PC9/PI2

PA3/PB11

PA3/PI0

PB1/PC9

PD15/PB9

  

  

  

  

  

  

ETR

PE7/PA12

PA0/PI3

PA0/PA5/PA15

  

PD2

PE0

  

  

  

  

  

  

BKIN

PA6/PE15/PB12

PA6/PI4

  

  

  

  

  

  

  

  

  

  

32.2 高级控制定时器功能框图

高级控制定时器功能框图包含了高级控制定时器最核心内容,掌握了功能框图,对高级控制定时器就有一个整体的把握,在编程时思路就非常清晰,见图 01

关于图中带阴影的寄存器,即带有影子寄存器,指向左下角的事件更新图标以及指向右上角的中断和DMA输出标志在上一章已经做了解释,这里就不再介绍。

01 高级控制定时器功能框图

1.    ①时钟源

高级控制定时器有四个时钟源可选:

    内部时钟源CK_INT

    外部时钟模式1:外部输入引脚TIx(x=1,2,3,4)

    外部时钟模式2:外部触发输入ETR

    内部触发输入

内部时钟源(CK_INT)

内部时钟CK_INT即来自于芯片内部,等于180M,一般情况下,我们都是使用内部时钟。当从模式控制寄存器TIMx_SMCRSMS位等于000时,则使用内部时钟。

外部时钟模式1

02 外部时钟模式1框图

①:时钟信号输入引脚

当使用外部时钟模式1的时候,时钟信号来自于定时器的输入通道,总共有4个,分别为TI1/2/3/4,即TIMx_CH1/2/3/4。具体使用哪一路信号,由TIM_CCMx的位CCxS[1:0]配置,其中CCM1控制TI1/2CCM2控制TI3/4

②:滤波器

如果来自外部的时钟信号的频率过高或者混杂有高频干扰信号的话,我们就需要使用滤波器对ETRP信号重新采样,来达到降频或者去除高频干扰的目的,具体的由TIMx_CCMx的位ICxF[3:0]配置。

③:边沿检测

边沿检测的信号来自于滤波器的输出,在成为触发信号之前,需要进行边沿检测,决定是上升沿有效还是下降沿有效,具体的由TIMx_CCER的位CCxPCCxNP配置。

④:触发选择

当使用外部时钟模式1时,触发源有两个,一个是滤波后的定时器输入1TI1FP1)和滤波后的定时器输入2TI2FP2),具体的由TIMxSMCR的位TS[2:0]配置。

⑤:从模式选择

选定了触发源信号后,最后我们需把信号连接到TRGI引脚,让触发信号成为外部时钟模式1的输入,最终等于CK_PSC,然后驱动计数器CNT计数。具体的配置TIMx_SMCR的位SMS[2:0]000即可选择外部时钟模式1

⑥:使能计数器

经过上面的5个步骤之后,最后我们只需使能计数器开始计数,外部时钟模式1的配置就算完成。使能计数器由TIMx_CR1的位CEN配置。

外部时钟模式2

03 外部时钟模式2框图

①:时钟信号输入引脚

当使用外部时钟模式2的时候,时钟信号来自于定时器的特定输入通道TIMx_ETR,只有1个。

②:外部触发极性

来自ETR

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值