在STM32H725多定时器同步移相(基于ASTM32CubeMX)

在STM32H725上实现多个定时器的移相功能,同时各个定时器可以各自控制各自的占空比。

1需要实现的功能有:

1 单个定时器各自独立输出自己的PWM信号,PWM模式、极性、互补等可调,占空比可控;

2 多个定时器时钟之间同频率(好像一半频率关系也可以);

3 多个定时器计数之间相位固定,或相位可控;

2两个TIM延迟实现原理

采用定时器的从模式实现。选定一个主TIM,如比TIM1。其他的TIM,比如TIM2,实现与TIM1的移相,作为从TIM。在主TIM计数器指定值时,从TIM复位清零开始计数。

2.1 触发输出配置

首先主TIM需要配置的是,作为主模式时的触发输出。在TIMx_CR2中的MMS位进行配置,具体如下:

image-20250328175724351

选定不用的通道进行配置,比如CH1作用PWM输出,CH2用作PWM输出,那么CH3或CH4就可以用作触发输出。

MMS配置为110,即OC3REFC这个信号可作为从模式触发输出。

2.2 配置OC3REFC

如图所示,图中OC1REFC为CH1的信号,那么对应OC3REFC就是CH3信号。

image-20250401194417470

这个信号就在TIM中配置,可以配置为PWM模式、强制输出模式等。

为了能够每个周期都实现固定或可调的相位延迟,这里配置为PWM模块,或者比较输出模块中的翻转,又或者强制输出模式中的翻转。这里因为从TIM的从模式的触发源,好像是上升沿触发,这个具体不知道在哪配置,我用开发板试出来的。

比如,配置为PWM模式2。图中上面三角波是TIM1的计数器,也即主TIM的计数器,绿色的是TIM1的OC3REFC信号。底下是从TIM的计数器。

image-20250401195115906

2.3 配置从TIM的从模式

从模式配置为复位模式,即从TIM收到输入触发源后,从TIM的计数器和预分频器均复位清零。

这里输入触发源选择其他TIM的触发输出。不同TIM的触发源定义如下:

image-20250313192850619

TIM2作为从TIM,TIM1作为TIM2的主TIM,因为选择ITR0。

image-20250401195115906

图中,底下的为TIM2,也即从TIM的计数器。这样就实现了TIM2和TIM1之间的移相,并且各自可以根据各自的计数器进行PWM配置。

3 两个TIM延迟CubeMX配置

首先配置主TIM中的从模式部分,如下:

image-20250401200019077

首先是主TIM的触发输出配置,见图中1。触发输出选择Output Compare(OC3REF)。

然后是主TIM的OC3REF配置,见图中2(有两个地方),通道选择中,Channel3选择PWM Generation No Output;然后具体在底部配置为PWM模式2,初始化的相位对应值,即在主TIM产生OC3REF信号的数值,即CCR3。

TIM2配置

TIM2的从模式中,选择复位模式,触发源根据表格选择触发源。可对照之前的表进行触发源确定,这里选择ITR0。

image-20250313192727389

4 多个TIM之间的移相

如果要实现多个TIM的移相,可以这个TIM即作为其他TIN的主TIM,同时作为从TIM。比如,实现TIM1、TIM2和TIM3分别移相120度,为三相拓扑实现PWM信号产生。TIM1为A相产生PWM,TIM2为B相产生PWM,TIM3为C相产生PWM。现要实现三相之间的PWM各移相120,那么TIM1为TIM2的主TIM,TIM2作为从TIM,延迟TIM1有120度。同时TIM2作为TIM3的主TIM,TIM3作为从TIM延迟TIM2有120度。

上述中,TIM2就要配置触发输出和通道部分,也要选择从模式的复位模式和触发源。

原图如下:

image-20250401202837912

具体的CubeMX类似于两个TIM之间相位延迟配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值