[信息] 基于Up-Down计数模式实现6路交错PWM发波

[复制链接]
116|0
STM新闻官 发表于 2025-11-2 10:28 | 显示全部楼层 |阅读模式
本帖最后由 STM新闻官 于 2025-11-2 10:37 编辑

1. 引言 随着电力电子和电机控制技术的不断进步,多相交错 PWM 控制策略在提升系统性能和效率方面发挥着重要作用。Interleave Mode PWM(交错模式 PWM)通过将多个PWM通道的信号在时间上错开,实现电流纹波的有效降低和系统热管理的优化。 本文介绍了如何使用STM32 MCU定时器来实现Up-Down计数模式下的交错PWM发波技术。通过采用Up-Down计数方式,定时器能够生成对称且稳定的PWM波形,配合多通道交错输出,实现多相信号的时间错开,显著降低电流纹波和开关损耗,提升系统的电磁兼容性和控制精度。

2. Interleave Boost 拓扑 在新能源应用领域,Boost拓扑广泛应用在DC/DC变换器中。多相交错DC/DC升压转换器被应用于对低电流纹波、高效率、更快动态响应和更高功率密度有需求的场合。借助交错技术,交错升压转换器的电感电流得以降低。图1是6路多相交错Boost拓扑,其中Timer采用中心对齐(Up-Dwon)模式,彼此之间的相位相差60度。

686186906be3e5801e.png
3. 解决方案
3.1. STM32 Timer 发波与同步设计 这 里我们以 ST 的一款主流系列芯片STM32H745 为例,选取TIM1/TIM2/TIM3/TIM4/TIM5/TIM8 作为 PWM 输出(这6个Timer都具有Up-Down计数模式),实现这6个Timer之间的计数相位为60度。 STM32 MCU的Timer具有三种从模式:Reset模式/Trigger模式/Gate模式。其中Reset 模式只能将定时器的计数值清零,因此这里不适用。Gate模式是门控模式,也不适用。 所以这里我们选择 Trigger 模式,让定时器实现同一时刻启动,但是在启动前设置不同的CNT计数值来调整定时器之间的相位。但是这里有一个问题,对于Up-Dwon计数模式,STM32 MCU 的定时器启动的时候只能是增计数方向,不方便让定时器启动时在down 的方向计数。如果要在同一时刻启动定时器,那必然需要有至少 2 个定时器要在down 计数方向启动。因此,需要采取另一种办法,就是让其中两个定时器延迟半个周期启动。 如图2所示,让TIM1/TIM4/TIM5/TIM/8在同一时刻启动,但是启动之前,为Timer设置不同的CNT初值。在这里借助辅助定时器TIM15,TIM15与TIM1同时启动,但是TIM15定时半个周期,半个周期后再发送Trigger信号给TIM3/TIM2,让TIM3/TIM2延迟半个周期启动,从而达到错相的目的。
414766906bea17ed8e.png
3.2. TIMx 互联设计 STM32的Timer之间可以通过内部互联信号进行关联,但并不是任意的Timer之间都有互联信号。查看参考手册RM0399第14章《Block Interconnect》,将使用到的Timer提取出来,可以得出以下表格:
586016906c15d6b896.png
从图 3 可以看出,TIM1 的信号可以给到其它几个定时器。而 TIM15 信号只能给到TIM1和TIM3,由于需要两个Timer被TIM15触发,因此选择TIM15触发TIM3,TIM3再触发TIM2。 最终设计的TIM 触发关系如图 4 所示,TIM1 的 TRGO 信号同时触发TIM4/TIM5/TIM8/TIM15,TIM15 得到触发信号后启动定时器,定时半个周期后,输出触发信号给TIM3,TIM3同时发出触发信号给TIM2。
8096906c1757e8ba.png
3.3. Timer 的 CubeMX配置
3.3.1. 发波TIM1/4/5/8/3/2 配置
958436906c18a45b52.png
804146906c1b35b2f8.png
3.3.2. 辅助定时器TIM15配置        
TIM15在这里的作用是辅助定时器,它和TIM1同时启动,然后定时半个周期,定时结束后发送TRGO信号给TIM3启动,然后TIM3同时启动TIM2 。
图5. TIM15配置  


3.4. 启动输出
用CUBEMX生成代码,然后启动定时器及PWM输出,在这里要注意的是定时器的初始化顺序要按照定时器的主从关系初始化(CUBEMX生成的代码是按照定时器数字大小顺序初始化的,这点需要注意),不然会导致定时器的级联不成功。

定时器的在启动之前需要重新配置它们的CNT初值,以保证定时器之间的错相正确,这里为了测试方便,我们设置定时器为Up-Down计数模式,且定时器的ARR值为6000,则一个周期为12000个计数值。 初始化好定时器后,就可以启动PWM输出了。

图7. 启动PWM输出

3.5. 输出波形 为了便于观察,所有的PWM输出占空比设置为16.7%(即1 6波。  ),采用中心对齐模式发


4. 总结 STM32拥有众多不同类型的Timer,不同的Timer之间可以通过内部的互联信号实现同步。Timer在启动之前可以通过CNT寄存器调整Timer的初始位置(相位)。对于具有Up-Down计数模式的Timer,可以调整CNT的值,但是不能调整Timer初始的计数方向,即CR1寄存器中的DIR值,也就是说Timer启动只能以增计数方向启动,这点需要注意。



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

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:您的嵌入式应用将得益于意法半导体领先的产品架构、技术、多源产地和全方位支持。意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。

1428

主题

1758

帖子

25

粉丝
快速回复 在线客服 返回列表 返回顶部