标题: 一个关于STM32定时器内部主从互联的话题 [打印本页]

作者: taoran    时间: 2016-3-12 15:11
标题: 一个关于STM32定时器内部主从互联的话题
本文作者:Miler Shao
   凡接触过STM32芯片的人可能发现,STM32芯片内的定时器外设往往很多,其中不少定时器可以内部连接建立起主从关系,从而实现定时器间的时钟同步或前后级联操作。被配置为主模式定时器可以复位、启停从模式定时器或为从定时器提供时钟源。

    在STM32 各系列的参考手册里对各个定时器都有很详细而庞大的描述,不过经常会有人在这里遇到点障碍。我们不妨以一个问题入手。

    STMCU社区网站有人咨询如下话题:

    我在使用STM32F407芯片,想用TIM10作为主定时器输出给TIM9,TIM10作为TIM9的计数时钟。但是我在TIM10寄存器中没有找到相应的寄存器设置。比如当把TIM2作为主定时器的时候,可以在定时器的TIM2_CR2寄存器下的MMS[2:0]位设置通道几作为内部互联输出。TIM11也找不到这样的寄存器,请问定时器11应该怎么配置成内部互连输出。谢谢。

    咨询者大致意思是说想把TIM10做MASTER,并为TIM9提供时钟。但找不到关于TIM10的主从模式的配置寄存器。TIM11也找不到相应寄存器。

    如果一个TIMER能配置为MASTER模式,就得有触发输出端,即TRGO如果某TIMER能配置为SLAVE模式, 自然得有内部触发输入端,即ITRn[n=0~3]。这样通过把前一级TIMER的TRGO内部连接到下一级TIMER的ITRn,形成主从级联关系。

    下面截图是STM32高级定时器功能框图的一部分,不难看出,它既可作MASTER也可作SLAVE。

    现在我们去STM32F4系列的参考手册RM0090找找咨询者提到过的TIM2 、TIM10、 TIM11 的功能框图。


    显然,TIM2支持主、从模式配置。 继续看看TIM10 TIM11的框图。


    从TIM10/11/13/14的功能框图能一眼看出它们根本不支持定时器间的内部主从级联,既不能做MASTER也不能做SLAVE。自然也就没有相关的配置寄存器。

   到这里,咨询者的答案也就基本出来了。我们顺便再多看一幅框图:

 

    上图是STM32F4系列芯片里TIM9和TIM12的功能框图部分,可以看出这两个TIMER跟前面提到的TIM10/TIM11 又不一样,可以配置为SLAVE模式,但不能配置为MASTER模式,因为它没有TRGO输出端。

    总体上讲,STM32芯片里定时器较多,往往根据功能特征分为几类。各类TIMER功能上会有差异,这点要注意。

    继续回到上面的话题,即使某TIMER支持主从模式的功能,但在跟它建立主从关系的定时器选择上并非随心所欲的,不是说你想跟谁联就跟谁联,想接哪个通道就可以接哪个通道,而是要遵照相关的约定。我们以上面的TIM2 为例来看下。

 
    从上图可以看出,如果TIM2工作在slave模式,就只有TIM1/8/3/4之一可以与之构成主从关系,而且ITRn 也有规定,比方TIM1的TRGO 就只能从TIM2的ITR0进。如果TIM2做MASTER时,只有TIM3/4/5可以配合做它的SLAVE。

小结下:

1、不是所有定时器都支持定时器内部主从互联。其中部分完全不支持内部主、从互联;有的只支持从模式下的互联;

2、即使支持TIMER的互联模式,但互联的定时器及相关通道也是有相关约定的。


作者: 578141611    时间: 2016-8-19 10:44
请问你找的这个文档叫什么名字,STM32f1系列有这个文档吗?
作者: zhangyada    时间: 2018-1-21 14:27
578141611 发表于 2016-8-19 10:44
**** 作者被禁止或删除 内容自动屏蔽 ****

刚看到  F1当然有  stm32f1xx中文参考文档  百度文库可以搜到
作者: 问心叶草    时间: 2018-9-8 11:03
谢谢楼主的分享
作者: 百呆过吵    时间: 2022-3-9 12:18
但在stm32F407里面手册有关于定时器9和定时器10主从关系的图表呀

通用定时器.png (45.56 KB, 下载次数: 138)

通用定时器.png

作者: la2364    时间: 2024-8-31 11:02
使用高级定时器做主,要加上这一行        TIM_CtrlPWMOutputs(TIM1,ENABLE);   
作者: qiehk2012    时间: 2024-9-1 14:48
感谢楼主分享东西不错




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1