高级定时器TIM1&TIM8

Posted darren-pty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级定时器TIM1&TIM8相关的知识,希望对你有一定的参考价值。

                                           高级定时器

初识stm32高级定时器:

     (1)高级控制定时器(TIM1 和 TIM8)和通用定时器在基本定时器的基础上引入了外部引脚,可以实现输入捕获和输出比较功能。

     (2)高级控制定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能都是针对工业电机控制方面。

     (3)高级控制定时器时基单元包含:

                                   ==>一个 16 位自动重装载寄存器 ARR

                                   ==>一个 16 位的计数器CNT,可向上/下计数

                                   ==>一个 16位可编程预分频器 PSC(预分频器时钟源有多种可选,有内部的时钟、外部时钟)

                                   ==>一个 8 位的重复计数器 RCR,这样最高可实现 40 位的可编程定时(仅高级定时器独有)

 

功能框图:

                   技术分享图片

   

    高级定时器的定时器的时钟来源(有四个时钟来源):

                                                                                         内部时钟源 CK_INT

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

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

                                             内部触发输入(ITRx)

 

 

       1)内部时钟源CK_INT

 

    对应于功能框图==>

                    内部时钟 CK_INT来自于芯片内部,等于72M(一般情况下,我们都是使用内部时钟

                     技术分享图片

   

 

     对应于寄存器配置位==>

                    当从模式控制寄存器 TIMx_SMCR 的 SMS 位等于 000 时,则使用内部时钟。

                    技术分享图片

 

         

 

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

           

     对应于功能框图==>

                       

                     技术分享图片

      

          

         ①:时钟信号输入引脚

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

 

 

 

         ②:滤波器

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

 

 

 

         ③:边沿检测

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

 

 

 

         ④:触发选择

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

 

 

 

         ⑤:从模式选择

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

 

 

 

         ⑥:使能计数器

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

 

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

    

     对应于功能框图==>

                     技术分享图片

           

             ①:时钟信号输入引脚

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

 

         ②:外部触发极性

         来自 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 计数。具体的配置TIMx_SMCR 的位 ECE 为 1 即可选择外部时钟模式 2。

 

             ⑥:使能计数器

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

 

 

   4)内部触发输入

   内部触发输入是使用一个定时器作为另一个定时器的预分频器。硬件上高级控制定时器和通用定时器在内部连接在一起,可以实现定时器同步或级联。主模式的定时器可以对从模式定时器执行复位、启动、停止或提供时钟。

 

 

 

      控制器

   高级控制定时器控制器部分包括触发控制器、从模式控制器以及编码器接口。触发控制器用来针对片内外设输出触发信号,比如为其它定时器提供时钟和触发 DAC/ADC 转换。 编码器接口专门针对编码器计数而设计。从模式控制器可以控制计数器复位、启动、递增/递减、计数。

          技术分享图片

 

 

   时基单元

          技术分享图片

   高级控制定时器时基单元功能包括四个寄存器,分别是计数器寄存器(CNT)、预分频器寄存器(PSC)、自动重载寄存器(ARR)和重复计数器寄存器(RCR)。

 

 

            

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于高级定时器TIM1&TIM8的主要内容,如果未能解决你的问题,请参考以下文章

正点原子STM32(基于HAL库)3

stm32通用定时器产生pwm时 模式1和模式2有啥区别

stm32-TIM之高级定时器

定时器TIM,pwm

stm32寄存器版学习笔记05 PWM

14 . 定时器中断实验