工程师笔记|高精度定时器的同步功能

描述

关键词:高精度定时器, 同步




目录预览




1.引言

2.定时器同步结构

3.高精度定时器内部同步

4.高精度定时器外部同步

5. 小结




STM32G474 所含的高精度定时器(HRTIMER)其实包含了多个定时器,多个定时器之间可以单独工作,也可以进行同步,且高精度定时器还能与片上的其他定时器以及其他芯片进行同步,本文将对高精度定时器的同步功能进行介绍。


2.

定时器同步结构


HRTIME 的整体架构如下图所示,内含由 7 个定时器,主定时器 Master timer 与子定时器Timer A~F,为 1 主 6 从结构,同步功能主要分为两部分:


内部同步:各定时器通过内部的 Cross-timer counter reset bus 互连,见图中红框标识部分; 

外部同步:主定时器通过 External Synchronization input/output 单元与片上其他定时器以及片外其他 MCU 的定时器进行同步,如图中绿框标识部分。


单片机


整个同步功能的主体是主定时器,其主要作用就是用来给所有子定时器提供统一的同步事件,以及将同步事件提供给外部或是接收外部输入的同步事件。另外子定时器也可将自身的某些事件作为同步事件发送到 Cross-timer counter reset bus 上。在同步功能中,将提供同步信号的定时器称为主,接收同步信号的称为从。在接收到同步信号后,从定时器将自身的计数器复位到 0 或是启动计数,从而与主定时器实现同步或形成一定的移相。

3.

高精度定时器内部同步


通过内部的互联总线 Cross-timer counter reset bus,除主定时器 Master Timer 外,每个定时器都可以接收总线上其他定时器发出的同步信号,同时所有定时器都可将自身的某些事件作为同步信号发送到总线上。


以定时器 Timer A 为例,其可以接收到来自 Cross-timer counter reset bus的同步事件包括:

• Master timer period event

• Master timer cmp1/2/3/4 event

• Timer B cmp1/2/4 event 

• Timer C cmp1/2/4 event 

• Timer D cmp1/2/4 event 

• Timer E cmp1/2/4 event 

• Timer F cmp1/2 event 


通过 Cross-timer counter reset bus,可以将所有的子定时器都与主定时器进行同步,也可以将所有的定时器分为几组,分别工作。下面以子定时器都与主定时器同步为例进行说明,借助 CubeMx 配置工具,轻松完成如下图所示的四相 90°交错 PWM 的产生。


单片机

Master Timer 的 PER/CMP1/CMP2/CMP3 事件分别作为 Timer A/B/C/D 的同步源,复位对应的定时器计数器。在子定时器中,分别选择对应的来自 Master Timer 的事件作为自身的同步源。在 CubeMx 中的相关配置如下的截图(截图仅示意同步功能部分的配置)。Master Timer 中的配置:

单片机

更加简单的方式是在使能 CMP/1/2/3 后,直接选择 interleaved Mode 的 Quad 选项,这样CMP1/2/3 就会自动等于 PER/4,(PER*2)/4,(PER*3)/4,后续即使 Timer_PER 的值更新,CMP1/2/3 也会按照该规则自动更新,无需软件参与。

    篇幅有限仅展示部分,完整文档请点击“阅读原文”后下载    
THE END


点击“阅读原文”,可下载原文档



原文标题:工程师笔记|高精度定时器的同步功能

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分