这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » PWM模块运行模式的分类及特性

共9条 1/1 1 跳转至

PWM模块运行模式的分类及特性

高工
2022-06-20 22:24:36     打赏

dsPIC33C系列芯片的PWM功能较以往更复杂,功能更加灵活,PWM的工作模式上和以往芯片也有一些不同之处,由于篇幅所限,本文侧重分析一下PWM模块运行模式的分类及特性。

一.PWM运行模式概述

poYBAGKsMaCAOazeAAFGHH1TMuc383.png

图1 PWM的运行模式分类

从图1上看,PWM的工作模式主要有几种,如独立边沿PWM模式,这也是默认设置的工作模式,变相位PWM模式,独立边沿PWM双输出模式,中心对齐模式,双更新中心对齐模式,双边沿中心对齐模式等六种,其中后三种都是和中心对齐模式有关的模式。在这些PWM工作模式中,值得注意的是,有些模式采用多个PWM的计数器周期去产生单个PWM周期。

pYYBAGKsMaqAMGMeAAKbir8Znys194.png

图3 PWM控制寄存器Low中的模式选择位

在配置PWM的工作模式中,首先通过图2,3所示的寄存器配置PWM运行模式。

二。独立边沿PWM模式

独立边沿的PWM模式,用于产生边沿对齐的PWM信号,或者产生任意相位偏移的PWM信号,需要两个独立的寄存器去定义PWM波形的上升沿和下降沿位置。具体来说,通过PGxPHASE去定义PWM信号的上升沿位置相对于PWM周期计数器的起点的位置,而PGxDC用于定义相对于PWM周期计数器起点,到PWM波形下降沿的位置。PGxPER用于确定PWM计数器的周期。

另外,除了可以设定单个的PWM波形为独立边沿模式,还可以通过PGxPHASE寄存器来设定多个PWM信号之间同步,只要将PGxPHASE值设为相同值即可。

另外,还有一些特殊情况,比如当PGxPHASE=PGxDC时,则PWM脉冲占空比为0,而当设为PGxDC》PGxPER时,则PWM脉冲的占空比为100%。

poYBAGKsMbeAMpjfAACsQmysnN8775.png

图4 独立边沿PWM模式的波形示例

通过图4所示的独立边沿PWM模式波形示例,可以看出PGxPHASE和PGxDC都是基于同一个起点开始计算,就是PWM周期计数器的起点,所以PHASE设置会占用脉宽大小的部分。

三。变相位PWM模式

变相位PWM模式,它和独立边沿PWM模式不同,其中一个寄存器决定从PWM周期计数器起点开始计算的相位偏移的宽度,另一个寄存器决定从相位偏移开始计算的脉冲宽度。

poYBAGKsMb-AA7xkAAEY7_YzJ4U058.png

图5 变相位模式的SFR和波形关系

这种模式下,PGxPHASE决定相位偏移宽度,而PGxDC决定脉冲宽度,PGxPER决定PWM的周期。当用户希望固定脉宽,来调制相位偏移时,或者固定相位偏移,来调制脉宽时,则这种模式比较有用。

pYYBAGKsMcKAFXxPAAB3kMc0tYA203.png

图6 变相位的PWM模式波形示例

从图6的变相位PWM模式的波形示例来看,PGxPHASE对相位偏移的设定并不占用PGxDC对脉宽的设定部分,二者是独立的。

在使用变相位模式时,可以通过MDC去对所有PWM的脉宽进行统一设定。但是也要注意一个问题,就是变相位PWM模式并不支持跨周期运行的情况,也就是说PGxPHASE+PGxDC一定要小于PGxPER这样的关系。

poYBAGKsMcqAE5ZlAADCD8NfsPU607.png

图7 多个PWM使用变相位模式波形示例

在图7中,PWM1-4都是用变相位模式,四个PWM设置相同的脉宽值,但是设定为了不同的相位偏移,注意此处是满足PGxPHASE+PGxDC小于PGxPER这个关系的。

四.双PWM输出模式

双PWM输出模式,即在PWMxH和PWMxL上都输出独立的PWM波形。PWM双输出模式和PWM独立边沿模式不同,它允许在第二个PWM pin上输出波形,且在独立模式下。


pYYBAGKsMdGAcuYfAACuuBQZBvc081.png

图8 PWM双输出模式波形示例

在PWM双输出模式中,注意PGxTRIGA和PGxTRIGB都是基于PWM周期计数器起点开始计算宽度的。

值得注意的是,在双输出模式下,PGxTRIGA,PGxTRIGB作为正常的事件输出信号还是正常工作的,比如相位偏移触发,或者ADC触发信号等,如果需要一个纯粹的信号去做触发功能,可以选择PGxTRIGC来使用。

五。中心对齐PWM模式

中心对齐PWM模式,和边沿对齐模式PWM不同,它可以避免PWM占空比不同时,上升沿或者下降沿重叠,因此导致纹波或者滤波的需求,因此,在一些场合如逆变器中有所用途。

中心对齐模式PWM的脉宽是对称于两个PWM周期计数器的,当占空比增加时,则上升沿和下降沿部分都在增加,以保持对称。基于这个概念,中心对齐模式PWM脉冲波形是由两个PWM周期计数周期组成。

pYYBAGKsMdaAT7IkAACTnRxVLJs738.png

图9 中心对齐PWM模式的SFR和波形的关系

中心对齐PWM模式采用PGxDC决定从两个PWM周期中间开始计算的脉冲宽度,即真实脉宽的一半,而PGxPER决定每一个PWM周期计数器的周期。

poYBAGKsMdyALZLcAADIAaDQwvQ549.png

图10 中心对齐PWM模式的波形示例

中心对齐PWM的上升沿位置在PGxPER-PGxDC+1处,而下降沿位置在PGxDC处。值得注意的是更新PWM的buffer寄存器,如PGxDC或者PGxPER等,只能在第一个PWM周期计数器开始处更新,这一点可以通过判断CAHALF位来判定是否处于第一个PWM计数周期处,当CAHALF为0时为第一个PWM计数周期,CAHALF为1时为第二个PWM计数周期。

另外一点,从图上可以看出,EOC中断事件,是在两个PWM计数周期结束后才产生的。

六。双更新中心对齐PWM模式

双更新中心对齐模式,和普通的中心对齐模式是类似的,只不过有两次EOC中断,和两次PWM数据寄存器更新。双更新的好处是减小的环路处理延时,但是有可能造成脉宽波形不对称。

poYBAGKsMeSATeqMAAETVqHVv1c618.png

图11 双更新中心对齐PWM模式

七.双边沿的中心对齐PWM模式

双边沿的中心对齐PWM模式,和双更新的PWM中心对齐模式类似,在双边沿中心对齐模式中,允许对上升沿宽度和下降沿部分宽度做相应控制,这同样会造成波形的不对称性。

这个模式的特点就是,给预用户足够的灵活性,增加了对两个边沿的控制之外,还可以减小中断事件的频率。

pYYBAGKsMiSAaGsfAAC13gjARc4011.png

图12 双边沿的中心对齐PWM模式寄存器和波形关系

具体来说,通过PGxPHASE来实现对上升沿部分脉冲宽度的控制,通过PGxDC来实现对下降沿部分脉冲宽度的控制。

有一个非常灵活之处,就是在双边沿中心对齐PWM模式中,用户可以设置为单更新模式,也可以设置为双更新模式。单更新模式就是说,用户随时在允许改写宽度的阶段去改写PGxPHASE或者PGxDC,而在下一个完整PWM周期初始处去更新之。

pYYBAGKsMimAK4iBAAEdNLKW990555.png

图13 双边沿中心对齐PWM模式---单更新模式

如图13所示,我们可以看出,在PWM周期中改写了PGxDC和PGxPHASE的值,然后在下一个周期中才进行更新数据Buffer。同时,EOC中断事件也是每一个完整PWM信号周期中断一次。

和单更新对应的,就是双更新模式,在这个模式中,对应每一个PWM计数周期都有一个EOC事件中断,也有一个PWM数据更新。

pYYBAGKsMjGARVsfAAEmie_gwZE701.png

图14 双边沿中心对齐PWM模式---双更新模式

在双更新的模式中,注意改写和更新的时刻,在上升沿PWM计数周期初始时刻,只能更新PGxPHASE的值,而在下降沿PWM计数周期初始时刻,只能更新PGxDC的值,用户可以用CAHALF来决定合适的寄存器改写时刻,比如,在CAHALF=0时,前面的一个PWM计数周期中,只能改写PGxDC的值,然后在后面的一个PWM计数周期初始时刻更新。而在CAHALF=1时,后面的一个PWM计数周期中,只能改写PGxPHASE的值,然后在第一个PWM计数周期初始时刻更新。每一个PWM计数周期结束后,都会进行EOC中断。总的说来,就是说先写入,然后在下一个PWM计数周期初始更新。

总结,主要分析和总结dsPIC33C系列的PWM工作模式的一些细节,后续我们会进一步讨论与运行模式相关的PWM的I/O输出模式的配置。




专家
2022-06-21 07:32:41     打赏
2楼

谢谢分享


专家
2022-06-21 07:35:13     打赏
3楼

谢谢分享


专家
2022-06-21 08:03:41     打赏
4楼

谢谢分享


专家
2022-06-21 08:53:01     打赏
5楼

值得学习的知识,谢谢分享


高工
2022-06-21 09:16:59     打赏
6楼

谢谢分享


专家
2022-06-21 09:34:38     打赏
7楼

谢谢分享!


高工
2022-06-21 09:42:49     打赏
8楼

感谢分享


院士
2022-06-21 09:47:26     打赏
9楼

谢谢楼主分享的文章~!


共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]