完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
高级定时器简介
STM32F103ZET6中有TIM1,TIM8两个高级定时器,每一定时器都有 一个16位向上、向下、向上/下自动装载计数器 一个16位预分频器和四个独立从输入输出通道 每一个通道都可用于输入捕获、输出比较、PWM和单脉冲模式(除了基本定时器,高级定时器和通用定时器都能产生PWM) 单片机中没有时间的概念,因此定时器本质是一个以单位时间为准的计数器,计数值可以从0开始累加,也可以从一个设定值(ARR)的值递减,每隔一个固定的时间(由psc和时钟周期控制)计数器的值+1或-1,加到或减到头时会产生一个溢出信号,此时计数器的计数值清零或补充成初值,重新开始计数 高级定时器框图 1. 时钟源 由四个时钟来源,分别是 内部时钟源 CK_INT 外部时钟模式 1:外部输入引脚 TIx(x=1,2,3,4) 外部时钟模式 2:外部触发输入 ETR 内部触发输入(ITRx) 我们一般只用内部时钟源CK_INT,对于高级定时器,其时钟是由APB2总线时钟决定的 其他类型的定时器同理可以参考参考手册的RCC部分的时钟框图 对于其他时钟来源,参考参考手册的13.3.4小节 2. 控制器 用来控制和发送命令的 相关的寄存器有 CR1(control register 1 )控制寄存器1 CR2(control register 2 )控制寄存器2 SMCR(slave mode control register)从模式控制寄存器 宏观上来讲,主模式:就是主CPU作为主机,向从机(挂载器件)发送接收数据。 从模式:就是主CPU作为从机,接收和发送主机(挂载器件)数据。 CCER(capture/compare enable register)捕获比较寄存器 等等寄存器 3. 时基单元Time-base unit 时基单元的组成: (1)1-16位的预分频器 PSC 对控制计数器的时钟进行分频,分配系数可以为1~65536 (2)16位的计数器CNT 每经过一个计数器时钟周期这里变化1(+1或-1) (3)4-16位的自动重装载寄存器ARR 向上计数时,但计数器的值CNT从0计数到ARR的值的时候,会产生溢出中断(也叫更新中断,update interrupt),然后会清零重新计数 向下计数时,当计数器的值CNT从ARR的值计数到0的时候会产生溢出中断,然后会重新填充ARR的值 (4)8位的重复计数器RCR(高级定时器独有的,基本和基础定时器都没有) 向上计数时,我们把REO的值设置成10,如果有设置当计数器溢出的时候,那么此时不会产生中断,而是RCR的值+1,当加到10的时候才产生中断,向下 计数原理类似,只不过是从10减到0 4.输入捕获 输入捕获可以对输入的信号的上升沿,下降沿或者双边沿进行捕获,常用的有测量输入信号的脉宽和测量 PWM 输入信号的频率和占空比这两种 输入捕获的大概原理: 输入引脚检测到电平跳变时(上升沿或下降沿),把计数器CNT的值锁存到捕获寄存器CCRx中,把前后两次捕获到的 CCR x寄存器中的值相减,就可以算出脉宽或者频率 (1)输入通道引脚 需要测量的信号从TIMx_CH1~4进入 (2)输入滤波器和边沿检测器 信号受到干扰时,滤波器可以对输入信号进行滤波,即进行重新采样 滤波器的配置由 CR1 寄存器的位 CKD[1:0]和 CCMR1/2 的位 ICxF[3:0]控制 边沿检测器用来设置信号在捕获的时候是什么边沿有效,可以是上升沿,下降沿,或 者是双边沿,由 CCER 寄存器的位 CCxP 和 CCxNP 决定 (3)捕获通道 捕获通道就是图中的 IC1/2/3/4,每个捕获/比较通道都有相对应的捕获寄存器 CCR1/2/3/4, 当发生捕获的时候,计数器 CNT 的值就会被锁存到捕获寄存器中 (4)预分频器 ICx 的输出信号会经过一个预分频器,用于决定发生多少个事件时进行一次捕获。具 体的由寄存器 CCMRx 的位 ICxPSC 配置 如果希望捕获信号的每一个边沿,则不分频 (5)捕获寄存器 经过预分频器的信号 ICxPS 是最终被捕获的信号 当发生捕获时(第一次),计数器CNT 的值会被锁存到捕获寄存器 CCR 中,还会产生 CCxI 中断,相应的中断位 CCxIF(在SR 寄存器中)会被置位,通过软件或者读取 CCR 中的值可以将 CCxIF 清 0。 如果发生第二次捕获(即重复捕获: CCR 寄存器中已捕获到计数器值且 CCxIF 标志已置 1),则捕获 溢出标志位 CCxOF(在 SR 寄存器中)会被置位, CCxOF 只能通过软件清零 5.输出比较 通过定时器的外部引脚对外输出控制信号 有八种模式,主要使用的是其PWM1和PWM2模式 具体使用哪种模式由寄存器 CCMRx 的位 OCxM[2:0]配置 (1)比较寄存器 比较寄存器与捕获寄存器是同一个寄存器 计数器 CNT 的值跟比较寄存器 CCR 的值相等的时候,输出参考信号 OCxREF 的信 号的极性就会改变( OCxREF=1(高电平)称之为有效电平, OCxREF=0(低电平) 称之为无效电平) 会产生比较中断 CCxI,相应的标志位 CCxIF(SR 寄存器中(状态寄存器,里面有各种状态或中断标记))会置 位 (2)死区发生器 在生成的参考波形 OCxREF 的基础上,可以插入死区时间,用于生成两路互补的输出 信号 OCx 和 OCxN(OCxN的波形与OCx的相反) 死区时间的大小具体由 BDTR 寄存器的位 DTG[7:0]配置 这里的T_ DTS是由内部时钟T_CK_INT经过分频得到的,由CR1寄存器上的CKD[9:8]位控制的 (3)输出控制 参考参考手册13.3.5小节 (4)输出引脚 输出比较的输出信号最终是通过定时器的外部 IO 来输出的,分别为 CH1/2/3/4,其中 前面三个通道还有互补的输出通道 CH1/2/3N |
|
|
|
只有小组成员才能发言,加入小组>>
4258个成员聚集在这个小组
加入小组3271 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4216 浏览 1 评论
4220 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 19:24 , Processed in 0.735184 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号