STM32——高级控制定时器(时基单元,功能框图,输入,捕获,输出,断路)

高级控制定时器(TIM8和TIM1)和通用寄存器在基础寄存器的基础上引入了外部引脚,可以实现输入捕获和输出比较功能,高级控制及通用定时器增加了可编程死区互补输出,重复计数器,带刹车(断路)功能。

高级控制定时器的时基单元

 TIMx_CR1的具体信息如下:

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

 高级控制定时器功能框图

 1.时钟源分析

高级控制寄存器有4个时钟源可选

(1)内部时钟源CK_INT

内部时钟CK_INT来自于芯片内部,等于168MB,一般情况下,都是使用内部时钟,当从模式控制寄存器TIMx_SMCR的SMS位等于000,就使用内部时钟

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

 时钟信号输入引脚

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

下图是来自外部定时器的时钟信号输入通道

 以下是TIMx_CCMRx的寄存器详情

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

 边沿检测

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

 触发选择

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

从模式选择

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

 使能计数器

经过上述5个步骤后,使能计数器开始计数,外部时钟模式1就配置完成了。是能计数器由TIM

x_CR1为的CEN配置

 (3)外部时钟模式2

 

 时钟信号输入引脚

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

外部触发极性

来自ETR引脚输入的信号可以选择为上升沿或者下降沿有效,具体由TIMx_SMCR的ETP配置

 

 外部触发预分频器

由于ETRP信号的频率不能超过TIMx_CLK(72M)的1/4,当触发信号频率很高时,就必须使用分频器来降频,具体的由TIMx_SMCR位ETPS[1:0]配置

滤波器

如果ETRP的信号频率过高或者混杂由高频干扰信号,就要使用滤波器对ETRP信号红心采样,来达到降频或者去除高频干扰的目的,具体由TIMx_SMCR的位ETF[3:0]配置,其中fDTS是由内部时钟CK_INT分频得到,具体有TIMx_CR1位CKD[1:0]配置

 

从模式选择

经过滤波器的信号连接到ETRF引脚之后,触发信号成为外部时钟模式2的输入,最终等于CK_PSC,然后驱动计数器CNT计数,具体配置TIM_SMRC的位ECE为1即可选择外部时钟模式2

使能计数器

完成以上步骤就可以使能计数器开始计数,使能方法

(4)内部触发输入

内部触发输入数使用一个定时器作为另一个定时器的预分频器。硬件上高级控制寄存器和通用定时器在内部连接在一起,可以实现定时器同步或级联。主模式的定时器可以对从模式定时器执行复位,启动,停止或提供时钟。高级控制定时器的部分通过用定时器(TIM2-5)可以设置为主模式或者从模式。TIM9和TIM10可以设置为从模式

 控制器

高级控制定时器控制器部分包括触发控制器从模式控制器以及编码器接口。触发控制器用来针对片内外设输出触发信号,比如为其他定时器提供时钟和触发DAC/ADC转换

编码器接口专门针对编码器计数而设计,从模式控制器可以控制计数器复位,启动,递增/递减,计数

时基单元

 高级控制定时器的时基单元功能包括4个寄存器,计数器寄存器(CNT),预分频器寄存器(PSC),动重载寄存器(ARR)重复计数器寄存器(RCR)。RCR是高级定时器独有。CNT,PSC和ARR是16位有效,RCR是8位有效

预分频器PSC

有一个输入时钟CK_PSC和一个输出时钟CK_TNT,输入时钟CK_PSC就是上面时钟源的输出,输出CK_CNT用来驱动CNT计数。通过设置PSC的值就可以得到不同的CK_CNT,可得到1-65535分频

 计数器CNT

高级控制定时器的计数器有3种计数模式

(1)递增计数模式

计时器从0开始计数,每来一个CK_CNT脉冲计数器就增加1,直到计数器的值与自动重载寄存器ARR值相等,然后计数器又从0开始计数并生成计数器上溢事件。如果禁用重复计数器,在计数器上生成上溢事件就马上生成更新事件(UEV),如果使能重复计数器,每生成一次上溢事件,重复计数器内容减少1,直到重复计数器内容为0时才生成更新事件。

(2)递减计数器模式

计数器从自动重载寄存器ARR值开始计数,每来一个CK_CNT脉冲,计数器就减1,直到计数器值为0,然后计数器又从自动重载寄存器开始减1并产生计数器下溢事件。如果禁用重复计数器,在计数器上生成下溢事件就马上生成更新事件(UEV),如果使能重复计数器,每生成一次下溢事件,重复计数器内容减少1,直到重复计数器内容为0时才生成更新事件。

(3)中心对齐模式

计数器从0开始递增计数,直到计数值等于(ARR-1)值生成计数器上溢事件,然后从ARR值递减至1产生下溢事件。然后又从0开始计数,如此循环,每次发生计数器上溢和下溢事件都会生成更新事件。

自动重载寄存器ARR

用来存放与其计数器CNT比较的至,如果两个值相等就递减重复计数器,可以通过TIMx_CR1寄存器的ARPE位控制自动重载更换整改影子寄存器功能,ARPE=1,自动重载影子寄存器有效,只有在时间更新时才把TIMx_ARR的值写进影子寄存器,ARPE=0,修改TIMx_ARR的值马上生效

 重复寄存器RCR

基本和通用定时器都是在上/下溢事件时直接生成更新事件,高级控制定时器在硬件结构上多了重复计数器,在定时器发生上溢或下溢事件时递减重复计数器的值,只有当重复计数器为0时才会生成更新事件。在发生N+1个上溢或下溢事件(N为RCR的值)时产生更新事件

输入捕获

 输入捕获可以对输入信号的上升沿,下降沿或者双边沿进行捕获,常用的有测量输入信号的脉宽测量PWM输入信号的频率和占空比这两种

输入捕获的原理:

当捕获到信号跳变沿的时候,把计数器CNT的值所存到捕获寄存器CCR种,把先后捕获的CCR寄存器中的值相减,就可以算出脉宽或者频率。如果捕获的脉宽时间长度超过了捕获定时器的周期就会发生溢出。

输入通道:

需要被测量的信号从定时器的外部引脚TIMx_CH1/2/3/4进入

输入滤波器和边沿检测器

当输入信号存在高频干扰时就要进行滤波,即重新采样,根据采样定律,采样频率必须大于等于2倍的输入信号。比如输入信号频率为1M,就要设置采样频率2M,才能保证在采样到有效信号的基础上把高于2M的高频干扰信号过滤掉

滤波器的配置由CR1的寄存器位CKD[1:0]和CCMR1/2的位ICxF[3:0]控制。

 

 

边沿检测器用来设置信号载捕获的时候是什么边沿有效,可以是上升沿,下降沿或者是双鞭岩,具体由CCER寄存器的位CCxP和CCxNP决定

 捕获通道

捕获通道就是图中的IC1/2/3/4,每个捕获通道都有相应的捕获寄存器CCR1/2/3/4,当发生捕获时,计数器CNT的值就会被锁存到捕获寄存器(CCR)中

注意区分输入通道和捕获通道

输入通道时用来输入信号,捕获通道用来捕获输入信号的通道,一个输入通道的信号可以同时输入给两个捕获通道,比如输入通道TI1的信号经过滤波边沿检测器后的TI1FP1和TI2FP2可以进入捕获通道IC1和IC2,这也就是PWM输入捕获,一路输入信号(TI1)占用两个捕获通道(IC1和IC2).当只需要测量输入信号的脉宽,只要用一个捕获通道即可

输入信号和输出信号的映射关系由寄存器CCMRx的位CCxS[1:0]配置

 

 预分频器

ICx的生产出信号经过预分频器,用于决定发生多少个事件时进行一次捕获,由CCMRx的位ICxPSC配置,如果希望捕获信号的每一个边沿就不分频

 

 捕获寄存器·

经过预分频器的信号ICxPS是最终的捕获信号,当发生第一次捕获时,计数器CNT的值会被锁到捕获寄存器CCR中,还会产生CCxI中断,相应的中断位CCxIF(在SR寄存器中)会被置位,通过软件或者读取CCR的值可以将CCxIF清0.如果发生第二次捕获(即重复捕获CCR寄存器中已经捕获到的计数器值且·CCxIF标志已置1),则捕获溢出标志位CCxOF(在SR寄存器)就会被置位,CCxOF只能通过软件清0

输出比较

 输出比较就是通过定时器引脚对外输出控制信号

输出模式

(1)冻结

(2)将通道X(X=1,2,3,4)设置为匹配时输出有效电平

(3)将通道X设置为匹配时输出无效电平

(4)翻转

(5)强制变为无效电平

(6)强制变为有效电平

(7)PWM1

(8)PWM2

比较寄存器

当计数器CNT的值与比较寄存器CCR的值相等时,输出参考信号时OCxREF的信号的极性就会改变,OCxREF=1,为有效电平,OCxREF=0为无效电平,并且会产生中断CCxI,相应标志位CCxIF会置位,之后OCxREF在经过一系列控制之后变成输出信号OCx/OCxN

 死区发生器

在生成的参考波形OCxREF上可以插入死区时间,用于生成两路互补的输出信号OCx和OCxN,死区时间的大小具体有BDTR寄存器的位DTG[7:0]配置,死区时间的大小必须根据与输出信号相连接的器件机器特性来调整。

 带死区的PWM信号的应用

 在这个半桥驱动电路中,Q1导通,Q2截止,若想Q1截止,Q2导通,就必须先让Q1截止一段时间之后再打开Q2,因为Q1的关闭需要一段时间,不等待一段时间就打开Q2,电路就会短路。这段等待的时间就是死区时间。死区时间根据MOS的制作工艺决定

 输出控制

在输出比较的输出控制中,参考信号 OCxREF 在经过死区发生器之后会产生两路带死区的互补
信号 OCx_DTOCxN_DT(通道 1~3 才有互补信号,通道 4 没有,其余跟通道 1~3 一样),这
两路带死区的互补信号然后就进入输出控制电路,如果没有加入死区控制,那么进入输出控制电
路的信号就直接是 OCxREF。
进入输出控制电路的信号会被分成两路,一路是原始信号,一路是被反向的信号,具体的由寄 存器 CCER 的位 CCxP 和 CCxNP 控制。

经过极性选择的信号是否由 OCx 引脚输出到外部引脚CHx/CHxN 则由寄存器 CCER 的位 CCxE/CCxNE 配置。开启,则从CHx/CHxN上输出。

如果加入了断路(刹车)功能,则断路和死区寄存器 BDTR 的 MOE、OSSI 和 OSSR 这三个位会
共同影响输出的信号。

 输出引脚

输出比较的输出信号最终是通过定时器的外部 IO 来输出的,分别为 CH1/2/3/4,其中前面三个通
道还有互补的输出通道 CH1/2/3N。
断路功能
断路功能就是电机控制的刹车功能,使用断路功能,根据相关控制位状态修改输出信号电平,再任何情况下,OCx和OCxN输出都不能同时为有效电平,这关系到电机控制常用的H桥电路的结构原因。断路源可以是时钟故障事件,由内部复位时钟控制器中的时钟安全系统(CSS)生成,也可以是外部断路输入IO
系统复位启动都默认关闭断路功能,将断路和死区寄存器(TIMx_BDTR)的BKE置位1,使能断路功能,通过TIMx_BDTR寄存器的BKP位设置断路输入引脚的有效电平,设置为1时输入BRK位高电平有效,否则低电平有效

发送断路时,将产生以下效果:
(1)TIMx_BDTR寄存器中主输出模式使能(MOE)位被清0,输出处于无效,空闲或复位状态

(2)根据相关控制位状态控制输出通道引脚电平,,当使能通道互补输出时,会根据情况自动控制输出通道水平

(3)将TIMx_SR寄存器中的BIF位置1,并可以产生中断和DMA传输请求

(4)如果TIMx_BDTR寄存器中的自动输出使能(AOE)位为1,则MOE位会再发生下一个UEV事件时自动再次置1

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值