当前位置:首页 > 单片机 > 单片机
[导读]之前就听到网友说定时器这部分比较复杂,难搞,实验室里有个同学也搞了一段时间,不过它属于哪种专研型的人!学着学者,我也来到了定时器这章。在网上查看了一下,也翻阅了一些书籍,高级定时器,通用定时器,普通定

之前就听到网友说定时器这部分比较复杂,难搞,实验室里有个同学也搞了一段时间,不过它属于哪种专研型的人!学着学者,我也来到了定时器这章。


在网上查看了一下,也翻阅了一些书籍,高级定时器,通用定时器,普通定时器这三种就从通用的开始学吧!

一、首先还是将定时器框图分解一下吧,那么令人窒息的框图着实让人恐怖!虽然窒息,但是还是有必要贴上去!


对上面框图中的寄存器名字解释如下

TIMx_ETR:TIMER外部触发引脚ETR:外部触发输入ETRP:分频后的外部触发输入ETRF:滤波后的外部触发输入

ITRx:内部触发x(由另外的定时器触发)TI1F_ED:TI1的边沿检测器。TI1FP1/2:滤波后定时器1/2的输入TRGI:触发输入

TRGO:触发输出 CK_PSC:应该叫分频器时钟输入CK_CNT:定时器时钟。(定时周期的计算就靠它)

TIMx_CHx:TIMER的输入脚 TIx:应该叫做定时器输入信号xICx:输入比较xICxPS:分频后的ICx

OCx:输出捕获xOCxREF:输出参考信号


1、通用定时器的主要部分是一个【16位计数器】和与其相关的【自动装载寄存器】。

可以实现三种计数方式:

a、【增计数】

b、【减计数】

c、【同时进行增减计数】(注意理解这里的同时,从同时非彼同时)

datasheet上关于计数模式的解释如下!

在向上计数模式中,计数器从0 计数到自动加载值(TIMx_ARR计数器的内容) ,然后重新从0 开始
计数并且产生一个计数器溢出事件。

在向下模式中,计数器从自动装入的值(TIMx_ARR计数器的值)开始向下计数到0,然后从自动
装入的值重新开始并且产生一个计数器向下溢出事件。

在中央对齐模式,计数器从0 开始计数到自动加载的值(TIMx_ARR寄存器)?1 ,产生一个计数器
溢出事件,然后向下计数到1并且产生一个计数器下溢事件;然后再从0开始重新计数。

对于中央对齐模式,开始不怎么了解,现在我个人的理解就是相当于:如果初值是3的话,那么它的计数方式就是

3、2、1、0、1、2、3这样,先进性-1操作,后进行+1操作!

完毕!

2、那么首先就引进时钟单元:定时器是由什么提供时钟节拍的呢?

先来看一下几种时钟模式:

计数器时钟可以由下列时钟源提供:
·内部时钟(CK_INT)
·外部时钟模式1:外部输入脚(TIx)
·外部时钟模式2:外部触发输入(ETR)
·内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。

由于定时器功能实在过于强大,所以采用内部时钟模式,其它的等有空在说吧!实在扛不住啊!那么什么是内部时钟模式呢??

截取网上的一张图,你就会相当清晰了


TIM1和TIM8是由APB2分频提供的,而TIM2--TIM7是由分频APB1提供的,从时钟来源,我们是否就可以猜测到定时器1和定时器8更加高级呢?

APB2提供,最高可以到72M呀!至少我是这样猜想的!截取某网友对定时器时钟设置这部分的详解,如果你看了,你定会豁然开朗的,我把他的话整理了一下!

1、从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分,注意了是倍频器,不是分频器,继续看!!


2、下面以定时器2~7的时钟说明这个倍频器的作用:(当然定时器和定时器8也是这样的原理)

a、当APB1的预分频系数为1时,这个倍频器不起作用(也就是倍频系数为1),定时器的时钟频率等于APB1的频率;

b、当 APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍(倍频系数为2)。


3、可以通过这几个例子来叙述(对于定时器2至定时器7)


a、假定AHB=36MHz,因为APB1允许的最大频率为36MHz,所以APB1的预分频系数可以取任意数值;

b、当APB1预分频系数=1 时,APB1=36MHz,TIM2~7的时钟频率=36MHz(倍频器不起作用);当APB1预分频系数=2时,APB1=18MHz,在倍频器的作用下,TIM2~7的时钟频率=36MHz。

总结:有人会问,既然需要TIM2~7的时钟频率=36MHz,为什么不直接取APB1的预分频系数=1?

答案是:APB1不但要为TIM2~7提供时钟,而且还要为其它外设提供时钟;设置这个倍频器可以在保证其它外设使用较低时钟频率时,TIM2~7仍能得到较高的时钟频率。

再举个例子:当AHB=72MHz时,APB1的预分频系数必须大于2,因为APB1的最大频率只能为36MHz。如果APB1的预分频系数=2,则因为这个倍频器,TIM2~7仍然能够得到72MHz的时钟频率。能够使用更高的时钟频率,无疑提高了定时器的分辨率,这也正是设计这个倍频器的初衷。

相信到这里,我们都可以熟悉的操作定时器的时钟了,但是这只是其中的一个模式,也就是内部时钟的模式!

还有其它三种模式暂时不做讨论。

3、跟着时钟有个大概的了解之后,继续看一个难点

所谓的带阴影的寄存器就出来了,看到上图那5个带阴影的寄存器没有,千万别以为是印刷或者扫描的问题,下面一起来看看对这个阴影寄存器的通俗解释:有阴影的寄存器,表示在物理上这个寄存器对应2个寄存器,一个是程序员可以写入或读出的寄存器,称为preloadregister(预装载寄存器),另一个是程序员看不见的、但在操作中真正起作用的寄存器,称为shadowregister(影子寄存器);正如手册上的14.3.1节所说,根据TIMx_CR1寄存器中APRE位的设置,preloadregister的内容可以随时传送到shadowregister,即两者是连通的(permanently),或者在每一次更新事件(UEV)时才把preloadregister的内容传送到shadowregister !

现在估计是明白了这个特点了,我的理解 也就是一个复杂的自动重装过程。

4、到这里你一定还发现了大写的 U和那个小箭头了!再看下面的分析:

表示对应寄存器的影子寄存器可以在发生更新事件时,被更新为它的preload register的内容;而图中UI部分,表示对应的Autoreload register可以产生一个更新事件(U)或更新事件中断(UI)。

所谓的时间U ,事件中断UI就是这么来的!

5、这样设计的好处是什么呢?

设计preload register和shadow register的好处是,所有真正需要起作用的寄存器(shadow register)可以在同一个时间(发生更新事件时)被更新为所对应的preload register的内容,这样可以保证多个通道的操作能够准确地同步。如果没有shadow register,或者preload register和shadow register是直通的,即软件更新preload register时,同时更新了shadow register,因为软件不可能在一个相同的时刻同时更新多个寄存器,结果造成多个通道的时序不能同步,如果再加上其它因素(例如中断),多个通道的时序关系有可能是不可预知的。

6、接着看左下角的定时器通道:

TM32的定时器输入通道都有一个滤波单元,分别位于每个输入通路上(下图中的黄色框)和外部触发输入通路上(下图中的兰色框),它们的作用是滤除输入信号上的高频干扰。

具体操作如下:

在TIMx_CR1中的CKD[1:0]可以由用户设置对输入信号的采样频率基准,有三种选择:
1)采样频率基准fDTS=定时器输入频率fCK_INT
2)采样频率基准fDTS=定时器输入频率fCK_INT/2
3)采样频率基准fDTS=定时器输入频率fCK_INT/4

然后使用上述频率作为基准对输入信号进行采样,当连续采样到N次个有效电平时,认为一次有效的输入电平。


实际的采样频率和采样次数可以由用户程序根据需要选择;外部触发输入通道的滤波参数在从模式控制寄存器(TIMx_SMCR)的ETF[3:0]中设置;每个输入通道的滤波参数在捕获/比较模式寄存器1(TIMx_CCMR1)或捕获/比较模式寄存器2(TIMx_CCMR2)的IC1F[3:0]、IC2F[3:0]、IC3F[3:0]和IC4F[3:0]中设置。




注意了:注入的引脚和输出的引脚是一样的!,其实手册上也有说明之前的操作!请看

例如:当fCK_INT=72MHz时,选择fDTS=fCK_INT/2=36MHz,采样频率fSAMPLING=fDTS/2=18MHz且N=6,则频率高于3MHz的信号将被这个滤波器滤除,有效地屏蔽了高于3MHz的干扰。

比如,结合输入捕获的中断,可以轻松地实现按键的去抖动功能,而不需要软件的干预;这可是由硬件实现的去抖动功能,大大节省了软件的开销和程序代码的长度。

每个定时器最多可以实现4个按键的输入,这个方法也可以用于键盘矩阵的扫描,而且因为是通过中断实现,软件不需频繁的进行扫描动作。

这段话,也是摘抄某位网友的,示波器学习的时候就很蛋疼,所以不是很理解!

7、最后来说说比较捕获通道,这个可是核心的东西!

每一个捕获/ 比较通道都是围绕着一个捕获/ 比较寄存器( 包含影子寄存器) ,包括捕获的输入部分
(数字滤波、多路复用和预分频器),和输出部分(比较器和输出控制)。关于影子寄存器已经讲解的很明白了!

首先看着我用红色圈起来的那块,那就是一个捕获比较通道:


异或那块先不管他,好像跟编码器有关,输入有个特色就是可以把TI的输入搞到CC1上去,也可以把T2的输入搞到CC1上去,其实也可以把T1搞到CC1上去同时把T1搞到CC2上去,这样就有了后来的PWM输入。输出上的特色是不直接输出,而是有个OC1REF,这样可以定义高有效还是低有效,输出自己需要的有效电平!

以上只是定时器

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭