☰
重温STM32基础:定时器(10)- 定时器同步和级联
2026/11/1 1:52:56 网站建设 项目流程

文章目录

  • 主从触发模式
    • 测周法示意图
    • PWMI基本结构
  • 定时器资源盘点
    • 为什么是4组?
    • 到底有哪些TIM资源
    • RM中的定时器互联关系
        • 定时器可以和哪些同步和串联?
        • 基本定时器能和其他定时器级联么

摘要:本文围绕 STM32 定时器的「主从触发模式」展开,先对照参考手册(RM)梳理 master/slave 的触发机制,结合测周法与 PWMI 输入捕获模式说明 CNT 自动清零与占空比测量的实现原理;随后盘点 STM32F103C8T6 实际可用的 TIM 资源,解释 RM 中定时器为何分为 4 组、数据手册与参考手册的差异,并整理定时器之间的互联与级联关系,最后讨论基本定时器能否作为 master/slave 的疑点。

PPT里写的是”主从触发模式“,老师说这个名字是他起的,RM中没有这个名字。在RM中找了一下,发现slave和master的概念好像是出现在以下两个章节中。

  1. Timers and external trigger synchronization:主要介绍了一个timer作为slave时候怎么被使用。之前提到的想要reset counter的功能,就在这一章节
  2. Timer synchronization: 定时器级联
    同时也涉及到了“input capture mode”和“PWM input mode”两个功能;而上面的“主从触发模式”是为了更加方便地使用这两个功能而提到的。

主从触发模式


上面这个是PPT里面的图片。个人认为,这个图里面是把上面说的RM中的两个部分合在了一起。

  • 一个定时器可以作为master,把它自己内部的信号映射到TRGO引脚,来控制其他外设(比如ADC,或者其他定时器等)。这是在TIMx_CR2寄存器的MMS域控制的。
  • 一个定时器可以作为slave,接收其他外设的信号,用于控制自己定时器的运行。它的控制指令不一定来自于另一个Master timer,也可以是外部输入。slave可以选择触发源,产生TRGI,然后TRGI去触发一个指定的动作。这些是在TIMx_SMCR寄存器的TS和SMS域。

上一篇文章最后提到,要让CNT自动清零。这就可以通过TI1FP1信号来了之后,slave执行reset。

测周法示意图

  • 当产生TI1FP1的时候,会发生下面两个事情:CNT被CCR记录(向右白色箭头),然后CNT被清零(向上白色箭头)。这两件事情肯定是有顺序的。但是RM中没有找到相关描述。
  • 每次从CCR中读到的CNT值就是量上升沿之间的以fc为频率的计数。频率可以由fc/N得到。如果我们要计算频率的时候,就用fc/N这个式子;不需要的时候,CNT到CCR的搬运以及CNT的复位都由硬件完成,不占用任何软件资源。
  • CNT是有范围的,0~65535,如果信号频率太低(两次上升沿时间间隔太长),CNT可能会溢出,则计算的频率就是错的。
  • 触发源只有TI1FP1和TI2FP2,没有TI3和TI4相关的信号,所以如果需要自动reset的功能,只能用CH1和CH2。如果想要用CH3和CH4而达到类似效果,就需要使用CH3和CH4的中断了,在中断回调函数中手动清零CNT。而要注意的是,这种情况会频繁进入中断,比较消耗软件资源。同时,TI1FP2和TI2FP1也不能作为触发源。

PWMI基本结构


用两个通道同时捕获一个引脚的输入信号。

  • CCR2捕获的时候不会清零CNT。此时CCR2的读数就是高电平期间的计数值。。
  • CCR1捕获的时候会清零CNT。此时CCR1的读数就是一个周期的计数值。

CCR2/CCR1就是占空比

定时器资源盘点

在了解定时器同步的时候,对到底有哪些TIM资源产生了怀疑。。。

为什么是4组?

定时器分为基础定时器、通用定时器和高级定时器。看起来应该分为3个章节就可以,但是RM实际有4个章节。高级和基本定时器各一章,但是通用定时器分成了2章:TIM2 ~ 5和TIM9 ~14。
这是因为TIM2 ~ 5和TIM9 ~14还是有区别的,主要在于

  • TIM2~ 5每个定时器有4个通道,TIM9~14只有1或2个通道(看框图,后者要简洁很多)
  • TIM2~ 5支持向上、向下和中心对齐计数,但TIM9~ 14只有向上计数(RM中TIM9~14的章节没提向下/中心对齐计数)
  • TIM2~ 5有编码器等接口,TIM9~14没有
  • TIM2~ 5和TIM9 ~14两组定时器中各个定时器挂的总线也不一样,有的在APB1有的在APB2

从STM32F103x8B的系统架构图可以看出,APB1最高频率是36MHz,而APB2最高时72MHz。我之前有个印象觉得“高级的外设”应该挂在APB2上。但是现在看来TIM2~5的功能更加强大但是也会挂在较低频率的APB1上。所以,之前的“印象”并不正确。通常高速总线挂实时性高、吞吐量大的外设,但也不是绝对的,应该还有兼容性、物理布局等考量。对于固件开发者来说,不可以想当然。不过库文件已经为此做好了说明。

虽然TIM2~5是挂在36Hz的APB1上,它们还是可以先通过倍频器使用72MHz。

虽然TIM9~ 14功能上比TIM2~ 5“低级”一些,它们还是通用定时器,因为它们和基本定时器还是有本质区别的:“基本定时器”实在太基本了,只有时基单元和驱动DAC的功能,只是数时间;而通用定时器则是可以和外界交互了:可以输入捕获,也能输出PWM波等,即使它只有一两个通道。

到底有哪些TIM资源

datasheet是针对于每个型号提供的。在课程所提供的STM32F103x8B的datasheet的架构图中,只有TIM1~4。也就是说,我们的STM32F103C8T6只有这4个定时器。

但是!这个DS的标题里,包括首页的介绍中说,它有7个定时器?!

绿框里列了这7个定时器具体是什么,看起来,它是把看门狗定时器和 SysTick 系统滴答定时器都算在里面了。而它的第一个第二点说的分别是通用定时器和高级定时器。
其实DS中的这个表格更加直接清楚地列出了资源。

而RM是给所有STM32F10xxx的手册,所以它里面有TIM9~ 14定时器的描述和用法(虽然它里面的架构图也没有体现TIM9~ 14)。因此并不是所有RM中的信息都和我们手上的芯片有关。具体用到哪些,可以看RM的表格“Table 1. Sections related to each STM32F10xxx product”。根据命名规则,我们所用的STM32F103C8T6是64Kb的Medium density的芯片。在Table 1中显示“Section 16: General-purpose timers (TIM9 to TIM14)”和这个型号的芯片无关;甚至基本定时器的章节也无关。由此也可以看出,STM32F103C8T6没有TIM9~14,也没有基本定时器;只有高级定时器和通用定时器。这些当然也和DS相符。

RM中的定时器互联关系

在RM中,对于高级定时器和通用定时器,开头都有这句话:
“The timers are completely independent, and do not share any resources. They can be synchronized together as described in xx chapter."

定时器可以和哪些同步和串联?

定时器之间并不是全部可以乱连的。取决于芯片内部它们相互之间有没有连线。具体的连接可以看每个章节的SMCR(slave master control register)的SMS域的介绍。比如当TIM2~5作为slave的时候

可以看出,高级定时器可以驱动这几个通用定时器;如果看TIM1和TIM8作为slave的表格,它们可以被TIM2~TIM5驱动。

但TIM9~14和之间和其他组定时器的互联就有限了。

基本定时器能和其他定时器级联么

但是,对于基本定时器,开头只有"The timers are completely independent, and do not share any resources."
并没有体现它可以和其他timer同步。在它前面的描述中也只提到了“In fact, the timers are internally connected to the DAC and are able to drive it through their trigger outputs”,并没有说会连到其他timer。看了一下它的框图

虽然它也有TRGO,但是似乎是只到了DAC。

而且从上面的3个interconnection表格中,也没有看到TIM6和TIM7作为master的情况。所以这里看起来它们不能作为master。
感觉有一个“矛盾”的点是它的CR2寄存器的描述

听上去像是它可以驱动其他timer?

至于它到底能不能驱动其他timer,目前未知。而且我们所用的板子并不支持TIM6和TIM7,没法验证,也看起来没必要钻这个牛角尖了。。只能说STM32的手册已经写得很好了,但是似乎也不太完美,至少对我来说需要一些理解成本。

不过可以确认的是,基本定时器不能当slave。首先从框图中看,它没有ITG接口,其次它也没有类似其他的SMCR寄存器。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询