PWM移相以及占空比可变

您所在的位置:网站首页 占比如何 PWM移相以及占空比可变

PWM移相以及占空比可变

2024-07-13 08:17| 来源: 网络整理| 查看: 265

在  PWM移相以及占空比可变(上) 一文中,我讲述了如何实现两路PWM输出相位差在0-180°范围内任意可调的实现逻辑,但是在后续的实验过程中,发现实现逻辑出现错误,导致PWM输出只有在固定占空比的情况下才能实现相位可调。而下文则是对于如何正确实现 PWM移相以及占空比可变  进行讲解。

注意:

本文使用的是STC8h1k08单片机进行实验。本文使用I/O口分别为 P11、P34,其中P11为通道1--CH1,P34为通道2----CH2。本文中,CH1的预装载重装值为 AAR1=2000,CH2的预装载重装值为 ARR2。本文 一、PWM的2种输出方式 

我们要使用 STC8H 高级定时器的PWM输出模式以及输出比较模式,其中 CH1 为 PWM 模式,CH2 为 输出比较模式。

1.1、PWM模式

上图清晰的展示了PWM输出模式下 PWM 输出的基本原理,这里不在赘述,不懂的小伙伴可以自行学习。

1.2、输出比较模式 

输出比较模式通俗来说 是CNT = CCR时  电平会翻转。例如 你配置了 向上计数,ARR=100, CCR=30,初始电平为高电平,那么 CNT从0计数到30时, CNT =CCR =30,此时高电平就会跳变到低电平,CNT继续在30的基础上计数,直到计数到100并溢出,此时CNT会置0并重新开始计数。

值得注意的是,PWM模式与翻转模式下所输出的波形频率是相差 2倍的,即 PWM输出频率为10HZ,那么输出比较模式下的输出频率只有5HZ。如下图

这是因为   输出比较模式下不关心CNT比 CCR值大还是小,只关心CNT和CCR值什么时候相等,两个值相等时,就翻转输出电平。在PWM模式下,CNT值从0增加到ARR一个周期内输出电平有两次变化(超过CNT=CCR临界值时跳变一次,CNT溢出置零跳变一次),而在输出比较模式下时CNT值从0增加到ARR一个周期内输出电平只有一次变化。所以输出比较模式下,定时器输出方波的频率为PWM模式下定时器输出方波频率的一半。(该段内容源自--生成两路PWM波相位差90°的方法)。

那么如何使输出比较模式下输出的波形频率与PWM输出的波形频率一致呢。其实主要是如何实现在同一个ARR周期下,输出比较与PWM的电平有两次变化。这个将在下文讲解。

二、自动重装值ARR 与 移相角度关系 2.1、PWM模式移相

以上图为例,我们先用PWM模式输出实现45°移相,其中ARR为2000,占空比为50%。

那么问题来了,我是如何判断或者我的逻辑是如何让他实现45°移相的呢?

其实很简单,我们把 ARR=2000 与 角度 360°一一对应起来,或者说是360°均分为 ARR 份。那么我们要移相 45°,即A点与B点相差45° ,现在要求的是 A点的CCR  与 B点 的CCR相差多少,已知B点的CCR的值 。通过计算我们很快就可以得出,A点与B点的 CCR的差值为 250,那么我们只需要在配置的时候,把两路PWM的CCR的值相差250,即可实现 45°的移相。

同理我们要实现90°的移相,那么A点与B点的CCR值应该相差多少? 通过计算 可以的到

\Delta CCR=\frac{2000}{360^{o}}*90^{o}

那么只要确定其中一路的CCR, 那么另外一路CCR便可以确定。

以上是在 ARR=2000 的情况下得到的,那么ARR是其他的值的时候我们该如何求得 A点与B点的\Delta CRR 值呢?

公式如下:

\Delta CCR=\frac{ARR}{360^{o}}*x

其中, ARR为自动重装值,x取值为(0-180°),为你所需要的角度 。

2.2、输出比较模式移相 2.2.1、输出比较的频率问题

 输出比较模式相比较与PWM模式有一个需要解决的问题就是频率不一致的问题。我们需要将输出比较模式 输出的波形频率调成与 PWM模式输出的波形频率一致才可以进行下一步的移相工作。

那么我们该如何进行操作呢?

在1.2、输出比较模式 结尾我提到过,主要是如何实现在同一个ARR周期下,输出比较与PWM的电平有两次变化。

我们以 PWM模式输出的波形为基准,其中ARR1=2000,占空比为50%(即CCR1=1000)。

那么 我们假设第一个CCR2为0,即CCR2=0,那么在上电后,输出比较模式 CNT=CRR2=0,电平第一次翻转,由低电平跳变为高电平,那么我们要在 ARR1=2000 的范围内在跳变一次电平,且占空比为50%,那么显而易见,我们下一次跳变的CCR2的值应该为 CCR2=1000。那第三次跳变点应为 CCR2=2000(即0点)。如下图所示。

因此,我们在代码中,在CNT=CRR时,除了电平翻转外,还需要将下一次 电平翻转点的值装入到CCR当中。

在占空比固定位50%的情况下,不同的ARR值中,我们翻转点CCR的值也是不一样的,但是总的来说 ,只要A1、A2 的CCR间隔相差 ARR/2即可。

2.2.2、输出比较移相

输出比较的移相以PWM 移相类似,只是输出比较的移相需要考虑两次比较值CCR的位置。

首先,我们仍假设通道CH1为OPWM模式下输出的PWM波形,CH为输出比较模式输出的PWM波形,CH1的ARR1 = 2000,CCR1=1000,  CH2的重装载值为ARR2,第一次CCR值为 CCR2_A,第二次CCR的值为CCR2_B。

2.2.2.1、移相90°。

 首先,我们要确定我们移相角度;其次,我们要确定CH1与CH2电平翻转点差值\Delta CCR相差多少;然后,我们还需确定CH2第一个翻转点位置 CCR2_A 位置在哪里,最后在确定 CCR2_B位置在哪里。

根据公式:\Delta CCR=\frac{2000}{360^{o}}*x  有    \Delta CCR=\frac{2000}{360^{o}}*90^{o}

我们得到 \Delta CCR= 500, 因此  A1-B1=500。

那么我们令 CCR2_A = \Delta CCR=500,由于占空比为50%,所以CCR2_B=CCR2_A+\Delta CCR

即得 CCR2_B = 1500。这样就可以得到 占空比为50%,相位差为90°的两路PWM。

2.2.2.2、移相45°

根据公式:\Delta CCR=\frac{2000}{360^{o}}*x  有  \Delta CCR=\frac{2000}{360^{o}}*45^{o}  得到 \Delta CCR=250

则我们令 CCR2_A = \Delta CCR = 250, 由于占空比为50%,所以CCR2_B=CCR2_A+\Delta CCR=1250

2.2.2.3、移相10°

根据公式:\Delta CCR=\frac{2000}{360^{o}}*x  有  \Delta CCR=\frac{2000}{360^{o}}*10^{o}  得到 \Delta CCR\approx 55.556

则我们令 CCR2_A = \Delta CCR = 56, 由于占空比为50%,所以CCR2_B=CCR2_A+\Delta CCR=1056

2.2.2.4、总结

其实移相就分为以下3步

计算 \Delta CCR 的值赋值 CCR2_A根据占空比 赋值CCR2_B 三、占空比可变(固定相位差)

 在第二章中讲述了固定占空比情况下如何实现相位差可调,那么本章讲述的是固定相位差的情况下如何正确更改占空比。

3.1、固定相位差90°,更改占空比

在2.2.2.1、移相90° 中,我们令 CCR2_A = \Delta CCR=500,CCR2_B=CCR2_A+\Delta CCR,即得 CCR2_B = 1500。这样得到的是 占空比为50%,相位差为90°的两路PWM。

而现在我们需要更改占空比时,需要考虑的是 CCR2_A 与 CCR2_B 的差值,即\Delta CCRA-B

该值决定了我们占空比大小。

3.1.1、占空比为10%

由于我们相位差为90°,因此我们的 CCR2_A = \Delta CCR=500,不需要改变,而且也不能变化,否则将会改变移相角度,我们需要变化的是 CCR2_B的值。

我们要输出 10% 的占空比 ,则 PWM的高低电平比例为 1:9,由于我们在第二章假设了 CH1的 ARR1为 2000,因此,CH1高低电平时间比值为 200:1800;  CH2高低电平时间也为200:1800。

那在 CH2 中 我们CCR2_A 与 CCR2_B 的差为 200,即  \Delta CCRA-B = 200。又因为CCR2_A=500,所以计算可得 

CCR2_B= CCR2_A+ \Delta CCRA-B = 700

 3.1.2、占空比为20%

PWM的高低电平比例为 2:8,CCR2_A = \Delta CCR=500,CH2 中 我们CCR2_A 与 CCR2_B 的差为 400,即 \Delta CCRA-B = 400.通过计算可得 

CCR2_B= CCR2_A+ \Delta CCRA-B = 900

3.1.3、占空比为75%

PWM的高低电平比例为 3:1,CCR2_A = \Delta CCR=500,CH2 中 我们CCR2_A 与 CCR2_B 的差为 1500,即 \Delta CCRA-B = 1500,通过计算可得 

CCR2_B= CCR2_A+ \Delta CCRA-B = 2000

3.2、固定相位差45°

同 3.1、固定相位差90°,更改占空比 凡凡原理一样,保持 CCR2_A不变,改变CCR2_B的值。

3.3、固定相位差10°

同 3.1、固定相位差90°,更改占空比 凡凡原理一样,保持 CCR2_A不变,改变CCR2_B的值。

以上内容即为 相位差在0-180°范围内可调,占空比可变化的实现原理。如有内容补充,将会及时优化,希望该内容可以帮助有需要的朋友。

文中如有错误,请各位指出,我将及时更正。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3