STM32G474 的高精度定时器(HRTIMER)是面向数字电源、电机控制等高精度时序控制场景的核心外设,其独特的 1 主 6 从硬件架构设计,使其不仅支持内部多定时器的同步协作,还能实现与片上其他定时器、片外多 MCU 定时器的跨设备同步,可灵活生成多相交错 PWM、同步时序触发等复杂控制信号。本文基于 LAT1173 应用笔记,从 HRTIMER 的同步架构出发,详细拆解内部同步、外部同步的实现原理与配置方法,结合实际应用案例给出可落地的配置思路,为高精度时序控制开发提供参考。
资料获取:【应用笔记】LAT1173高精度定时器的同步功能
1. HRTIMER 同步核心架构 1 主 6 从的双层同步设计
STM32G474 的 HRTIMER 并非单一定时器模块,而是集成了1 个主定时器(Master Timer)+6 个子定时器(Timer A~F) 的多定时器集群,整体采用主从架构设计,同步功能分为内部同步和外部同步两层,通过专用硬件总线和同步接口实现无延迟的高精度同步,这也是其区别于普通定时器的核心优势。
1.1 核心同步组件与分工
- 主定时器(Master Timer):是整个同步系统的核心,负责为所有子定时器提供统一的同步事件基准,同时作为外部同步的交互枢纽,向片外输出同步信号或接收外部同步信号,是连接内部与外部同步的桥梁;
- 子定时器(Timer A~F):可独立工作也可接受同步信号控制,每个子定时器都能生成独立的 PWM、时序触发信号,同时也能将自身的比较事件、周期事件作为同步信号反馈至内部总线,实现灵活的同步组网;
- Cross-timer counter reset bus:内部同步专用硬件总线,所有定时器的同步事件都通过该总线传输,实现内部定时器间的无软件干预同步;
- External Synchronization input/output:外部同步接口,包含 HRTIM_SCOUT 同步输出引脚和 HRTIM_SCIN 同步输入引脚,配合内部 ITR10 映射通道,实现与片上 / 片外定时器的同步交互。
1.2 同步基本逻辑
同步功能遵循主从交互原则:提供同步信号的定时器为「主」,接收同步信号的定时器为「从」。当从定时器接收到主定时器的同步信号后,可通过硬件配置实现计数器复位至 0或启动计数两种动作,从而实现严格的时序同步,或通过调整同步事件触发时机形成精准的移相控制,满足多相交错 PWM 等应用需求。
2. 内部同步 基于硬件总线的多定时器协同
HRTIMER 的内部同步依托Cross-timer counter reset bus硬件总线实现,所有定时器均可通过该总线发送或接收同步事件,无需 CPU 介入,同步延迟可忽略不计。通过内部同步,可轻松实现多子定时器与主定时器的统一时序控制,或子定时器之间的交叉同步,是实现多相交错 PWM 的核心方式。
2.1 内部同步的事件交互规则
内部同步总线支持双向的事件传输,除主定时器外,每个子定时器都能接收总线上的任意同步事件,也能将自身的特定事件作为同步信号发送至总线。以 Timer A 为例,其可接收的同步事件包括主定时器的周期事件、比较 1~4 事件,以及 Timer B~F 的比较 1~4/1~2 事件,丰富的事件源为同步配置提供了极高的灵活性。
基于该规则,开发者可根据需求将定时器分为多个同步组,既可以让所有子定时器统一跟随主定时器同步,也可以让部分子定时器组成独立同步集群,满足复杂的时序控制需求。
2.2 典型应用:四相 90° 交错 PWM 的实现
以所有子定时器跟随主定时器同步为核心场景,借助 STM32CubeMX 工具可快速配置实现四相 90° 交错 PWM,这是数字电源中最典型的内部同步应用,核心配置思路为主定时器提供分级同步事件,子定时器分别接收并复位计数。
- 主定时器核心配置:启用主定时器的周期事件(PER)和比较 1~3 事件(CMP1/CMP2/CMP3),将其分别作为 Timer A/B/C/D 的同步源;更便捷的方式是启用Interleaved Mode 的 Quad 选项,此时 CMP1/CMP2/CMP3 会自动按 PER/4、(PER2)/4、(PER3)/4 配置,且后续 PER 值更新时,比较值会自动同步调整,无需软件干预,大幅简化配置;
- 子定时器配置:分别为 Timer A/B/C/D 选择主定时器的 PER/CMP1/CMP2/CMP3 作为计数器复位触发源,确保四个子定时器在主定时器的分级同步事件触发下依次复位计数;同时配置子定时器的 PWM 占空比(如 20%),设置 PWM 输出模式;
- 硬件实现效果:配置完成后,Timer A/B/C/D 将生成四路相位依次相差 90° 的交错 PWM,所有 PWM 的时序基准由主定时器统一控制,实现无延迟的高精度内部同步,且同步精度不受软件执行的影响。
3. 外部同步 跨定时器 / 跨芯片的高精度时序协同
HRTIMER 的外部同步通过Master Timer 的 External Synchronization input/output 单元实现,支持两种核心应用场景:与片上其他普通定时器的同步、与片外其他 MCU 的 HRTIMER 同步,通过专用同步引脚和内部映射通道,实现跨外设、跨芯片的高精度时序协同,满足多芯片联合控制的场景需求。
3.1 外部同步的主从工作模式
HRTIMER 在外部同步中可作为主设备或从设备,两种模式的同步信号交互规则与配置重点不同:
- 主设备模式:HRTIMER 主动输出同步信号,同步事件可由主定时器启动事件、主定时器 CMP1 事件、Timer A 启动事件、Timer A CMP1 事件生成;同步信号可通过HRTIM_SCOUT 引脚输出(脉冲宽度为 16 个 HRTIM 时钟周期),也可直接映射到内部ITR10 通道,作为片上其他定时器的同步源,无需额外占用硬件引脚;
- 从设备模式:HRTIMER 接收外部同步信号并做出响应,同步信号来源分为两种 —— 片上 TIM1 定时器的 TRGO 触发信号、片外通过HRTIM_SCIN 引脚输入的同步脉冲;接收到同步信号后,可配置 HRTIMER 内部定时器实现计数器复位或启动计数,与外部主设备实现时序同步。
3.2 场景 1:与片上 TIM1 的两相 180° 交错 PWM 同步
以HRTIMER 为主、TIM1 为从实现两相 180° 交错 PWM,核心利用内部 ITR10 通道实现同步信号传输,无需额外硬件连线,是片内外设同步的最优方案,核心配置步骤如下:
- HRTIMER 配置:将主定时器的 CMP1 事件设为同步事件,同时将该同步事件映射至 ITR10 通道;配置 Timer A 生成一路基础 PWM,设置占空比与频率;
- TIM1 配置:将 TIM1 设为从设备,工作模式选择Reset Mode(复位模式),触发源选择ITR10;配置 TIM1 的 PWM 输出模式为 PWM_MODE1,设置与 Timer A 相同的频率和占空比;
- 实现效果:HRTIMER 的 Timer A 与片上 TIM1 将生成两相相位相差 180° 的交错 PWM,TIM1 的计数时序由 HRTIMER 通过 ITR10 通道统一控制,实现片内无引脚的高精度同步;修改主定时器 CMP1 的值,可灵活调整两相 PWM 的移相角度,满足不同的控制需求。
3.3 场景 2:两片 MCU 的 HRTIMER 跨芯片同步
以MCU1 的 HRTIMER 为主、MCU2 的 HRTIMER 为从实现跨芯片的两相 180° 交错 PWM,需通过 HRTIM_SCOUT 和 HRTIM_SCIN 专用同步引脚实现信号交互,是多芯片联合控制的典型应用,核心配置与硬件连接如下:
- 硬件连接:将 MCU1 的HRTIM_SCOUT 引脚与 MCU2 的HRTIM_SCIN 引脚直接连接,作为同步脉冲的传输通道;
- 主设备(MCU1)配置:将主定时器的 CMP1 事件设为同步事件,同步信号强制输出至HRTIM_SCOUT 引脚;配置 Timer A 生成基础 PWM,同时在程序中初始化同步引脚对应的 GPIO(如 PB1),确保同步脉冲正常输出;
- 从设备(MCU2)配置:将 HRTIMER 的同步信号源设为HRTIM_SCIN 引脚的上升沿;配置 Timer A 的计数器复位 / 启动触发源为该同步信号,同时配置与 MCU1 相同的 PWM 参数;
- 实现效果:MCU1 的 HRTIMER 通过 SCOUT 引脚输出同步脉冲,MCU2 的 HRTIMER 通过 SCIN 引脚接收并触发计数,两片 MCU 的 Timer A 将生成精准的 180° 交错 PWM;通过级联多个 MCU 的 SCOUT/SCIN 引脚,可实现多芯片的时序同步,满足大功率设备的分布式控制需求。
4. HRTIMER 同步功能的配置与应用要点
HRTIMER 的同步功能依托硬件架构实现,配置过程主要基于 STM32CubeMX 完成,无需复杂的软件代码开发,但实际应用中需把握核心配置要点与硬件特性,才能确保同步功能的稳定性和高精度,避免出现时序偏差、同步失效等问题。
4.1 配置核心要点
- 优先使用硬件同步通道:内部同步优先使用 Cross-timer counter reset bus,片内同步优先使用 ITR10 映射通道,减少软件干预和硬件引脚占用,降低同步延迟;
- 合理选择同步事件源:主定时器的 PER/CMP 事件是最常用的同步源,子定时器的同步事件需根据控制需求选择,避免多个同步事件同时触发导致的时序冲突;
- 利用 Interleaved Mode 简化移相配置:实现多相交错 PWM 时,启用主定时器的 Interleaved Mode(Quad/Dual/Half),可自动分配比较值,实现等相位差的交错时序,且支持参数自动同步更新;
- 同步引脚的 GPIO 初始化:跨芯片同步时,需在程序中手动初始化 HRTIM_SCOUT/SCIN 对应的 GPIO 引脚,配置为复用功能,确保同步脉冲正常收发。
4.2 应用场景与特性匹配
HRTIMER 的同步功能针对高精度时序控制场景设计,其特性与应用场景的匹配度直接决定控制效果,核心应用场景与适配要点如下:
- 数字电源:利用内部同步实现多相交错 PWM,降低输入输出纹波;利用跨芯片同步实现多电源模块的并联控制,提升功率容量;
- 电机控制:通过内部同步实现电机驱动的多相 PWM 同步输出,配合位置传感器的触发信号实现精准的换相控制;
- 多设备协同控制:通过跨芯片同步实现多个 MCU 的时序统一,满足工业控制、机器人等场景的分布式协同需求。
4.3 精度保障关键
HRTIMER 的同步精度由硬件架构决定,最高可支持 170MHz 的时钟频率,实现纳秒级的时序控制,实际应用中需注意两点:一是保证 HRTIMER 的时钟源稳定,优先使用高精度外部晶振;二是跨芯片同步时,同步引脚的连线尽量短,减少电磁干扰导致的脉冲畸变,确保同步信号的完整性。
STM32G474 的 HRTIMER 同步功能,依托1 主 6 从的硬件架构和双层同步设计,实现了从内部多定时器协同到跨芯片多外设同步的全场景高精度时序控制,其核心优势在于硬件化的同步实现—— 通过专用总线和接口完成同步事件的传输与响应,无需 CPU 介入,同步延迟可忽略不计,满足数字电源、电机控制等对时序精度要求极高的应用场景。
从配置实现来看,借助 STM32CubeMX 工具,可快速完成内部同步的多相交错 PWM 配置、外部同步的片上 / 跨芯片时序协同,无需复杂的软件代码开发,大幅降低了高精度时序控制的开发门槛。而其灵活的同步事件源选择、可配置的同步响应动作,又为复杂控制场景提供了足够的定制化空间。
理解 HRTIMER 的同步功能,不仅是掌握一款外设的使用方法,更能把握 STM32 面向高精度控制的硬件设计思路 —— 通过硬件架构的优化,实现无软件干预的高精度外设协同,这也是提升嵌入式系统控制精度和实时性的核心方向。在实际开发中,只需根据应用场景选择内部同步或外部同步模式,匹配对应的配置方法,即可充分发挥 HRTIMER 的同步优势,实现稳定、高精度的时序控制。
413