STM32PWM

考前拾遗,后面将没有多少时间学习STM32,直到我考完期末

电路部分

STM32有四个定时器,每个定时器都有不同的输出通道(TIMy_Channelx),在STM32F103C8T6的四个定时器中,每个定时器都有四个输出通道,其中高级定时器的前三个输出通道拥有死区生成和互补输出的功能。

设置每个定时器的CCR,在CNT寄存器取到不同的值时,channel将产生不同的电平。

每个通道有各自的CCR寄存器,但是同一个定时器里的不同(4个)通道共用同一个CNT计数器。

PWM

具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常用于电机速控等领域。

按笔者的理解,这个系统不仅仅需要惯性,还需要阻尼。当我们失去对这个系统的控制时,这个系统会自发地向某种能量水平运动。例如小车会慢慢停下,灯泡会逐渐熄灭,电容充电到满为止(然后发热发光:()。

PWM参数$T_{ON}$是高电平持续时间,与之对应的是$T_{OFF}$,当然还有$T_S=T_{ON}+T_{OFF}$:

如果带入下面讲OC时的各寄存器,那么公式就会变成:

输出比较模式(OC)

电路的图片在江科大自化协PPT的第66页。简单来说,是配置了输出的设置之后,寄存器通过途中OC1(对于其它通道,会是OC2,OC3……)连接到GPIO输出上去。因此我们要使能TIM_TimeBase(让它开始计数),使能TIM_OC(让它开始比较),初始化GPIO(让它能正确地作用,从内部的信号到外界的输出)
图中的输出模式控制器的作用是,在不同的设置下,根据CNT和CCR不同的取值,给REF以不同的电平。REF是什么?REF会被送到输出使能电路,它决定了OCx的输出电平,在此过程中途径TIMx_CCER,功能是“极性选择”,当它被激活时,REF信号的意义就变成了时OC的输出电平翻转。

我不画表格了,md的表格太呆

冻结:CNT=CCR时,REF为原状态
匹配时置有效电平:CNT=CCR时,REF置有效电平
匹配时置无效电平:CNT=CCR时,REF置无效电平
匹配时电平翻转:CNT=CCR时,REF电平翻转
强制为无效电平:CNT与CCR无效,REF强制为无效电平
强制为有效电平:CNT与CCR无效,REF强制为有效电平

PWM模式1
向上计数:CNT < CCR时,REF置有效电平;CNT >= CCR时,REF置无效电平
向下计数:CNT > CCR时,REF置无效电平;CNT <= CCR时,REF置有效电平
PWM模式2(反过来):
向上计数:CNT < CCR时,REF置无效电平;CNT >= CCR时,REF置有效电平
向下计数:CNT > CCR时,REF置有效电平;CNT <= CCR时,REF置无效电平

名词解释

有效电平(高电平)是高级定时器里的,
无效电平(低电平)是高级定时器里的,
冻结:不用管,是高级定时器里的。

数学

对于匹配使电平翻转的模式:

如果带入各种各样的寄存器,有:

寄存器再解释一遍:
CK_PSC:预分频系数,对于你需要的频率可以用上面的PWM频率这条公式来计算CK_PSC的值。你手边就是计算器,以后别见到CK_PSC就发愁了。
ARR:自动重装器,决定了计数的范围。江科大将它解释作步距。
CCR:输出比较寄存器。

更具体的流程

晶振->PSC预分频器->CNT计数器(ARR自动重装器)->CCR捕获/比较器->输出模式控制器->极性选择->GPIO

对于高级输出比较通道,这个电源赛道应该用不上,跳过。配置方式可以百度。

期待…

七月和八月,会有美妙的事情发生,无论是对我,还是对我的队友……

作者

勇敢梧桐树

发布于

2023-05-29

更新于

2023-07-09

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×