找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 17208|回复: 6
打印 上一主题 下一主题
收起左侧

一个关于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的互联模式,但互联的定时器及相关通道也是有相关约定的。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:137110 发表于 2016-8-19 10:44 | 只看该作者
请问你找的这个文档叫什么名字,STM32f1系列有这个文档吗?
回复

使用道具 举报

板凳
ID:182904 发表于 2018-1-21 14:27 | 只看该作者
578141611 发表于 2016-8-19 10:44
**** 作者被禁止或删除 内容自动屏蔽 ****

刚看到  F1当然有  stm32f1xx中文参考文档  百度文库可以搜到
回复

使用道具 举报

地板
ID:245808 发表于 2018-9-8 11:03 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

5#
ID:1009170 发表于 2022-3-9 12:18 | 只看该作者
但在stm32F407里面手册有关于定时器9和定时器10主从关系的图表呀

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

通用定时器.png
回复

使用道具 举报

6#
ID:1003094 发表于 2024-8-31 11:02 | 只看该作者
使用高级定时器做主,要加上这一行        TIM_CtrlPWMOutputs(TIM1,ENABLE);   
回复

使用道具 举报

7#
ID:226289 发表于 2024-9-1 14:48 | 只看该作者
感谢楼主分享东西不错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表