认知里的PWM脉冲宽度调制

电子说

1.3w人已加入

描述

针对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位是自动重装载允许位。

晶体管

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

晶体管

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

晶体管

4.UDIS位禁止事件更新。

晶体管

5.CEN使能计数器。

晶体管

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

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

晶体管

晶体管

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

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

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

晶体管

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

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

晶体管

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

全部0条评论

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

×
20
完善资料,
赚取积分