【STM32】主从模式实现PWM移相+占空比可调(首创方法/易实现)

一、前言

在交错并联DC/DC、三相逆变等电力电子场合中,常常需要用到PWM移相,而且通常需要控制MOS、IGBT等开关器件的通断时间达到闭环控制的目的,因此需要改变占空比。因此本文主要研究如何使用STM32实现PWM移相的同时还可以动态调节占空比。

在此前,我查阅了大量的方法,诚然,STM32实现这个方式比DSP要困难得很多,网上大部分方法都仅仅进行了PWM移相,但无法调节占空比。 

根据如下文章进行了配置,但是发现从定时器输出的PWM频率为主定时器的1/2(也许我有配置存在遗漏,欢迎读者指出)。
CUBEMX STM32输出相位差PWM 三相PWM输出HAL库-CSDN博客https://blog.csdn.net/fored_summer/article/details/123796800?ops_request_misc=%257B%2522request%255Fid%2522%253A%25225547c55372831c43ac47e079befb74f6%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=5547c55372831c43ac47e079befb74f6&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-123796800-null-null.142^v102^pc_search_result_base3&utm_term=fored_summer&spm=1018.2226.3001.4187

后查找原因,找到了 橘洲青年 大佬的文章,对该原因进行了透彻分析,并给出了代码的解决方式,但奈何本人看到代码就头疼,因此我尝试寻找了非代码实现方式,在此感谢 橘洲青年 大佬,给我提供了思路,文章如下:
PWM移相以及占空比可变(上)_pwm移相原理-CSDN博客https://blog.csdn.net/2301_76477939/article/details/134852920?spm=1001.2014.3001.5502

STC8h1k08单片机PWM移相与占空比可变实现,-CSDN博客https://blog.csdn.net/2301_76477939/article/details/134918316?spm=1001.2014.3001.5502

二、理论分析

如下图所示,假设ARR=1000,设置主定时器的CCR为500(占空比50%),OCREF为666(移相角度=666*360°/1000=240°)。可以看到可以正常移相240°,但频率减少了一半,如果主定时器是10kHz,从定时器此时是5kHz。这是因为只有主定时器CNT到达OCREF时才会触发从定时器。

 因此,问题在于主定时器一个周期输出的PWM会翻转两次电平,但从定时器在触发模式下只能翻转一次,这是因为从定时器一个周期内只会被主定时器触发一次

因此,我想到的是如何使从定时器一个周期会被主定时器触发两次

OCREF + OCREF2 = ARR

三、CUBEMX配置

如下图,TIM8作为主定时器,OCREF使用TIM8的CH2,CCR设置为666;OCREF2使用TIM8的CH3,CCR设置为333。TIM8 CH1输出第一路PWM,TIM8 CH2与CH3作为触发源。

主定时器TIM8配置

查询数据手册,TIM2可作为TIM8的从定时器,触发源为ITR5。

TIM2配置如下图所示,注意One Pulse Mode必须勾选,否则输出的PWM不受主定时器触发,为自己配置输出的PWM。Slave Mode 配置为Combined Reset Trigger Mode,如果配置为普通的Trigger Mode,则从定时器只会被第一个OCREF触发,第二个OCREF不会响应。

从定时器TIM2配置

下图为数据手册对Combined Reset Trigger Mode的解释,大致意思是在这个模式下从定时器被触发后,从定时器的计数器会被初始化,更新寄存器,且仅能在One Pulse Mode勾选时使用。

使用该方法的缺点在于实现一个移相PWM需要消耗一个高级定时器+普通定时器。

四、实验部分

使用主控为STM32G474VET6,主要实现3路PWM,0°、120°、240°移相,频率为10kHz。定时器配置为TIM8(主,0°)->TIM2(从,240°),TIM1(主)->TIM3(从,120°)

(1)3路PWM,0°、120°、240°移相,占空比都为50%

 (2)3路PWM,0°、120°、240°移相,占空比分别为20%、40%、80%

作者:tjd6666

物联沃分享整理
物联沃-IOTWORD物联网 » 【STM32】主从模式实现PWM移相+占空比可调(首创方法/易实现)

发表回复