初学者STM32—输出比较与PWM
本文主要讲解了输出比较与PWM的主要产生的方法,详细介绍了其主要结构以及功能和计算方法
一、输出比较
OC(Output Compare)输出比较
输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形
每个高级定时器和通用定时器都拥有4个输出比较通道
高级定时器的前3个通道额外拥有死区生成和互补输出的功能
二、PWM
PWM(Pulse Width Modulation)脉冲宽度调制
在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速等领域
PWM参数:
频率 = 1 / TS(周期的倒数)
占空比 = TON / TS(高电平占整个周期的占比)
分辨率 = 占空比变化步距

很多领域都用到了PWM这个功能,包括灯光控制、电机控制等具有惯性的器件。(惯性:运行过程存在视觉残留的设备)。其中PWM调节电机的运行这一个功能运用非常广泛,小到家用品大到军工产品无不涉猎。
三、输出比较通道

这个输出比较通道实际上就是通用定时器的输出控制部分如下图所示

输出控制器

左侧就是连接着计数器和比较器,当CNT>=CCR1就会传输一个信号给输出模式控制器,控制器就会改变OC1ref(参考信号)的高低电平

OC1ref(参考信号)连接到主模式的控制器,也可映射到主模式的TRGO,但是它的主要去向下面的路线到达极性选择器,取0就是信号电平不反转,直接传输到使能电路,取1就翻转。最后经过使能到OC1(CH1)连接了哪一个GPIO,可以通过查找引脚定义图知道。
那么输出模式控制要怎么控制呢?
他就是有一个寄存器,通过配置寄存器就可以选择模式来控制ref

置有效无效电平就是高电平和低电平
冻结:CCR和CNT都不能改变REF的状态
强制无效、有效:强制为低电平和高电平
PWM模式:PWM在不同模式下的置电平是不同的,参考表中,PWM2就是PWM1取反
四、PWM基本结构

时钟源连接着时基单元,我们通过配置好时基单元后计数器就会根据已经配置好的模式进行输出控制,前面讲过用输出控制寄存器配置,通过配置好的参考电平,使能时候就可以控制GPIO口输出相应的PWM了。
五、PWM参数的计算

蓝色:CNT 黄色:ARR 红色:CCR 绿色:输出电平
我们可以发现:当蓝色(CNT)自增的过程中,低于红色(CCR)的大小时候是输出高电平,而高于红色(CCR)就输出低电平,当蓝色(CNT)自增等于黄色(ARR)的值就置零从新开始自增,而这个连续过程就产生了PWM波形。
PWM频率: Freq = CK_PSC / (PSC + 1) / (ARR + 1)
PWM占空比: Duty = CCR / (ARR + 1)
PWM分辨率: Reso = 1 / (ARR + 1)PWM分辨率:占空比变化的步距,重装值+1的倒数,一般来说ARR=100,分辨率为1%就足够了,但是有些设备要求更高的分辨率,那么ARR就要设置的更大,但是更大的ARR需要性能更高
的CPU。
六、总结
本文介绍了定时器的输出比较(OC)功能和PWM(脉宽调制)技术。输出比较通过比较CNT与CCR寄存器值来控制输出电平,可生成PWM波形。PWM通过调制脉冲宽度来等效模拟量,广泛应用于电机控制等领域。
本文介绍了PWM的三个关键参数(频率、占空比、分辨率)的计算方法,频率由CK_PSC、PSC和ARR决定,占空比由CCR和ARR决定,分辨率:占空比变化的步距。此外还介绍了PWM的基本结构和工作原理,包括计数器、比较器和输出控制器的协同工作过程。
更多推荐



所有评论(0)