请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

高精度定时器的同步功能

[复制链接]
STMCU小助手 发布时间:2022-11-24 22:00
STM32G474 所含的高精度定时器(HRTIMER)其实包含了多个定时器,多个定时器之间可以单独工作,也可以进行同步,且高精度定时器还能与片上的其他定时器以及其他芯片进行同步,本文将对高精度定时器的同步功能进行介绍。' e7 R  Y# N4 R' c
- G0 H7 R' s/ M# n
2.定时器同步结构' U* D) n+ o4 `
" i9 n! [' ], ?) p- C  |5 P; C
HRTIME 的整体架构如下图所示,内含由 7 个定时器,主定时器 Master timer 与子定时器Timer A~F,为 1 主 6 从结构,同步功能主要分为两部分:
- J3 n  W2 Z1 {0 s2 ^, {/ X. J4 u7 C' @" z
• 内部同步:各定时器通过内部的 Cross-timer counter reset bus 互连,见图中红框标识部分; $ t2 i, f0 f4 v: a
0 d' F" I* ]1 g% L+ k+ M, g1 w! l# z
• 外部同步:主定时器通过 External Synchronization input/output 单元与片上其他定时器以及片外其他 MCU 的定时器进行同步,如图中绿框标识部分。! ~: |' ?7 {) P  P, `' F$ m

" e, w( ]5 T5 _0 m8 q. u% K4 M# J" s2 V# W/ i
9 {2 s& m; W3 X9 ^3 O
微信图片_20221123221415.jpg 9 Y1 M5 C* w7 C( @" z
  Z( }, W+ Y9 p0 R
& E+ j0 r) H; }; R1 h; g# B2 R+ c3 L
整个同步功能的主体是主定时器,其主要作用就是用来给所有子定时器提供统一的同步事件,以及将同步事件提供给外部或是接收外部输入的同步事件。另外子定时器也可将自身的某些事件作为同步事件发送到 Cross-timer counter reset bus 上。在同步功能中,将提供同步信号的定时器称为主,接收同步信号的称为从。在接收到同步信号后,从定时器将自身的计数器复位到 0 或是启动计数,从而与主定时器实现同步或形成一定的移相。

0 |% _4 a* `0 \6 T* s7 T0 v. \3 h& a9 D! X- g  w) k3 S. n
3.高精度定时器内部同步) d  F" A. D) [  K- ?; x; {
+ ]6 c2 ~0 A& g  p4 K$ a
通过内部的互联总线 Cross-timer counter reset bus,除主定时器 Master Timer 外,每个定时器都可以接收总线上其他定时器发出的同步信号,同时所有定时器都可将自身的某些事件作为同步信号发送到总线上。# n) `4 D1 s; e( d: a; Y% U+ n* _. R

8 M9 B- S/ _/ }) N- D( W以定时器 Timer A 为例,其可以接收到来自 Cross-timer counter reset bus的同步事件包括:
( y' r$ K4 o0 M* S3 l$ b0 s
6 J. f0 y" a5 Z3 J/ c, z• Master timer period event0 z% p7 G. v/ ^  I1 \9 F

! J5 O# U+ Q/ L$ w3 R" V0 ?- k# p• Master timer cmp1/2/3/4 event
9 F0 V$ h* ?! u0 d+ H5 w! j  G6 ^2 J/ A% K8 S( h( P/ J
• Timer B cmp1/2/4 event
1 E/ H. A$ d# v$ F% n
1 H4 T' \  |' }' u• Timer C cmp1/2/4 event
0 D7 m3 r/ Z) t; w4 {4 n" z
2 A, A+ E& @4 }4 ?• Timer D cmp1/2/4 event 5 p8 l5 ~6 p4 t3 Z  v2 s
8 l/ O4 l& e7 G% E' ]+ E; M# K
• Timer E cmp1/2/4 event $ J; P$ }$ M* j5 t& g

( \$ G, E2 v0 d2 b! w9 S• Timer F cmp1/2 event

" p! }. e2 ^2 z, p5 c9 v& o
" C! q! `  g# J通过 Cross-timer counter reset bus,可以将所有的子定时器都与主定时器进行同步,也可以将所有的定时器分为几组,分别工作。下面以子定时器都与主定时器同步为例进行说明,借助 CubeMx 配置工具,轻松完成如下图所示的四相 90°交错 PWM 的产生。) K# R) a  k. n/ H
9 ~2 x' |( P  M3 V
微信图片_20221123221407.jpg 3 I) J& o3 K" G) ~2 {0 L. R8 T
! s4 w$ m$ K5 R: w
Master Timer 的 PER/CMP1/CMP2/CMP3 事件分别作为 Timer A/B/C/D 的同步源,复位对应的定时器计数器。在子定时器中,分别选择对应的来自 Master Timer 的事件作为自身的同步源。在 CubeMx 中的相关配置如下的截图(截图仅示意同步功能部分的配置)。Master Timer 中的配置:
4 C/ ~4 N9 r* Q) `5 D2 Y# I" G4 }
微信图片_20221123221358.jpg
1 S& _/ Z/ B) H) }' z% V: _( Q( ]6 b3 l; R1 `
更加简单的方式是在使能 CMP/1/2/3 后,直接选择 interleaved Mode 的 Quad 选项,这样CMP1/2/3 就会自动等于 PER/4,(PER*2)/4,(PER*3)/4,后续即使 Timer_PER 的值更新,CMP1/2/3 也会按照该规则自动更新,无需软件参与。
% Z& a* a' y  {6 ~
8 l* A) @  X; ?2 y7 m+ `
收藏 评论0 发布时间:2022-11-24 22:00

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版