LAT1155
Local Application Tips
LAT1155 Rev 1.0 May 2022
使用 TIMER 输出比较模式输出相移信号
关键字:输出比较, PWM,相移, DMA
1. 前言
客户想要使用 STM32L031 产生两个特定的 PWM 波,这两个波形频率相同,占空比相
同,但相位不同。经过验证,使用定时器的输出比较模式可以产生这种带相移的 PWM
形。
下面以 STM32L031 TIM2 为例来介绍使用产生相移信号的方法。
2. 概述
在未使能预装载寄存器(OCxPE=0),使用输出比较模式,可以随时通过软件更新
TIM_CCRx 寄存器的值,以控制输出波形。
DMA 的循环模式,可以在最后一次数据传输完成后,自动重新加载初始编程值,内部
地址寄存器会重新加载基址值,进入下一个循环
使用输出比较模式配合 DMA 的循环模式可以不断更新 TIMx_CCR 寄存器的值,从而
输出可控的波形。
下面以 NUCLEO-L031 为例介绍产生相移信号的方法。
3. 目标波形
为了便于观察,令 PWM 波的周期为 100ms,占空比为 20%。以 TIM2_CH1 输出的波
形的为基准,其为 0 度相移。
TIM2_CH1: 相移 0 度,占空比为 20%
TIM2_CH2: 相移 90 度,占空比为 20%
TIM2_CH3: 相移 180 度,占空比为 20%
TIM2_CH4: 相移 270 度,占空比为 20%
LAT1155
LAT1155 - Rev 1.0 page 2/7
4. 使用 STM32CubeMX 进行配置
使用 STM32CubeMX 进行基础参数的配置。这里配置时钟为 32MHz,如图 1 所示。
1. 管脚与时钟配
配置时钟源为内部时钟,因为 TIM2_CH1 为基准信号,直接配置为 PWM 输出即可。
TIM2_CH2TIM2_CH3 TIM2_CH4 配置为输出比较模式,如图 2 所示。
2. 选择 Timer2 的时钟源
配置 TIM2 的预分频值与计数周期,配置计数周期 100,计数模式配置为"Up"。配置
channel1 的模式为"PWM mode 1",因为占空比为 20%,计数周期为 100,所以 CCR1
存器配置为 20(也即 Channel1 Pulse 配置为"20"),极性配置"High"Channel2