认知里的PWM脉冲宽度调制

电子说

1.2w人已加入

描述

针对PWM,官方的解释是这样:PWM,也称脉冲宽度调制,它是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。

当然可以这样理解。有5V电源,要控制一台灯的亮度,有一个传统办法,就是串联一个可调电阻,改变电阻,灯的亮度就会改变。还有一个办法,就是PWM调节。不用串联电阻,而是串联一个开关。假设在1秒内,有0.5秒的时间开关是打开的,0.5秒关闭,那么灯就亮0.5秒,灭0.5秒。这样持续下去,灯就会闪烁。

如果把频率调高一点,比如是1毫秒,0.5毫秒开,0.5毫秒灭,那么灯的闪烁频率就很高。我们知道,闪烁频率超过一定值,人眼就会感觉不到。所以,这时你看不到灯的闪烁,只看到灯的亮度只有原来的一半。同理,如果1毫秒内,0.1毫秒开,0.9毫秒灭,那么,灯的亮度就只有原来的10分之一。

这就是PWM的基本原理。总的来说,都是保持一定的电压或电流不变,但改变一定周期内的导通和关断时间。这样等效于保持导通,但改变电压或电流大小。

第一次用的PWM是电机。理论上可以在-UU之间线性调节电压及方向,使电机正反转,对于风扇一般是不改变风向,也就是0u之间调节,直流电机基本采用调电压调速。也就是采用PWM调电压,进而调节速度。

说到PWM,就要说到占空比。那么什么是占空比:pwm占空比就是一个脉冲周期内高电平的所整个周期占的比例。

要想了解PWM首先就要从寄存器

计数器寄存器(TIM_CR1):计数器寄存器是一个16位的寄存器,其中:

1.ARPE位是自动重装载允许位。

MOS管

2.DIR位是控制计数方式位。

MOS管

3.URS位是控制事件更新请求源。

MOS管

4.UDIS位禁止事件更新。

MOS管

5.CEN使能计数器。

MOS管

其次是预分频器(TIMx_PSC):预分频器可以将计数器的时钟频率按1到65536之间的任意值分频。在预分频寄存器对主频率分频后,提供给计数器,作为计数器的时钟。它是基于一个在TIMx_PSC寄存器中的16位寄存器控制的16位计数器。

因为这个控制寄存器带有缓冲器,它能够在工作时被改变。但是预分频器的新参数会在下一次更新事件到来时被调用。例如,预分频器的参数从1变到2时,计数器的时序图应该是:

MOS管

MOS管

再次是自动重装载寄存器(TIMx_ARR):自动重装载寄存器也是一个16位的寄存器。实际上自动重装载寄存器实际上对应着2个寄存器。一个是程序员可以直接操作的寄存器,一个是程序员看不到的影子寄存器。实际上真正起作用的开始影子寄存器。而这两个寄存器是如何配合工作的,则需要TIMx_CR1寄存器的APRE位设置:

当APRE=0时,预装载寄存器的参数实时的传送给到影子寄存器,并没有实现预装载的功能;

当APRE=1时,在每一次事件更新时,预装载寄存器的参数才会被传送到影子寄存器。

MOS管

而PWM的频率是通过预分频参数和自动重装载寄存器的参数确定的。预分频的参数确定了计数器的时钟,自动重装载寄存器的参数确定了在这个时钟频率下的计数次数,即周期。举个例子:如果系统主频率是72M,psc=8,那么,计数器的时钟就是72M/(8+1)=8M;arr=2000,那么PWM会在8M的频率下每次计数2000次之后会进入到下一个计数循环。而PWM的占空比精度于预分频参数有关,预分频参数越小,精度越高;反之就越低

从下面的定时器时钟框图可以看出,事件U更新是在预分频后,捕获比较之前,而CC4I是中断和DMA输出。所以PWM在每一个周期之后会有一个中断,在来了中断之后,才会更新事件,这样就保证了PWM的每个周期都能够正常完成,而不会导致波形失真。

MOS管

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分