PWM 脉冲宽度调制

介绍:

利用微处理器的数字输出来对模拟电路进行控制 (很厉害哦)
对模拟电平信号进行数字编码,只要带宽足够,任何模拟值都可以用PWM进行编码

特点:

简单灵活 动态响应好

应用:

电动机控制(比如机器人内的电机控制,STM32中一个芯片可以控制很多电机)、功率控制、

转换原理:

PWM 脉冲宽度调制

将模拟的信号(连续的曲线)分割,计算每块地面积,转换成数字信号的面积(不同的面积有不同的宽度,这也就是宽度调制这个名字的由来)

PWM输出源和输出数量

STM32除了TIM6,7(基本定时器),TIM1,8可以产生7路,共14路;通用定时器TIM2,3,4,5每个4路,共16路,所以STM32可以产生30路PWM输出。

控制原理

PWM 脉冲宽度调制

占空比:高电平持续时间占总时间的比例。
STM32 的PWM是TIMx_ARR寄存器确定频率(周期)、由TIMx_CCRx寄存器确定占空比的信号

PWM模式:

脉冲宽度调制模式可以产生一个由 TIM1_ARR 寄存器确定频率、由TIM1_CCRx寄存器确定占空比的信号。在 TIM1_CCMRx寄存器中的OCxM位写入“110”(PWM 模式 1)或“111”(PWM 模式 2),【模式1,2选择输出的高低电平】能够独立地设置每个通道工作在 PWM模式,每个 OCx 输出一路 PWM。必须通过设置 TIM1_CCMRx 寄存器 OCxPE 位使能相应的预装载寄存器,最后还要设置 TIM1_CR1 寄存器的 ARPE 位使能自动重装载的预装载寄存器(在向上计数或中心对称模式中)。

向上计数配置

当 TIM1_CR1 寄存器中的 DIR 位为低的时候执行向上计数。

在 PWM 模式 1,当 TIM1_CNT【计数器值】< TIM1_CCRx 时 PWM 参考信号,OCxREF 为高,否则为低。如果 TIM1_CCRx中的比较值大于自动重装载值(TIM1_ARR),则 OCxREF 保持为“1"。如果比较值为 0,则 OCxREF 保持为“0"。 图 128 为 TIM1_ARR=8 时边沿对齐的 PWM 波形实例
【不同的模式,1和0代表的电平高低不同,不是1是高,0是低】

PWM 脉冲宽度调制

第一行是采用模式1的,模式2与模式1原理相同不过1和0代表的高低电平相反
还有向下计数模式(与向上技术模式相反),*对齐模式,

最后,重点是要通过两个寄存器TIMx_ARR寄存器,TIMx_CCRx寄存器控制