使用STM32高级定时器生成非对称PWM实现移相控制

参考ST官方手册解释如下:

在不对称模式下,可生成相移可编程的中心对齐的 PWM 信号。对于专用通道,可使用两个 TIMx_CCRx 寄存器(TIMx_CCR1 和 TIMx_CCR2 或者 TIMx_CCR3 和 TIMx_CCR4)编程 相移和脉宽,频率由 TIMx_ARR 寄存器的值确定。因此,可单独在两个通道上通过编程 TIMx_CCMRx 寄存器中的 OCxM 位来选择不对称 PWM 模式:

● OCxM = 1110 时使用不对称 PWM1,此模式下的输出参考特性与 PWM1 模式相同。当 计数器递增计数时,输出参考与 OC1/3REF 相同;当计数器递减计数时,输出参考与 OC2/4REF 相同

● OCxM = 1111 时使用不对称 PWM2,此模式下的输出参考特性与 PWM2 模式相同。当 计数器递增计数时,输出参考与 OC1/3REF 相同;当计数器递减计数时,输出参考与 OC2/4REF 相同

需注意,带中心对齐计数下,生成的PWM频率为向上或向下计数的一半

参考效果如下图

 

下边是在STM32G431RBT6上的演示效果

选择TIM8的通道一和通道2

 

配置频率为850HZ 

通道1和通道2占空比设置为50% 

 

在代码中添加

用来修改相位,示例中Phase_shift_cnt取值为1000 

通过逻辑分析仪测得

与计算结果一致。

作者:晨星️

物联沃分享整理
物联沃-IOTWORD物联网 » 使用STM32高级定时器生成非对称PWM实现移相控制

发表回复