STM32F407HAL库输出互补PWM波以及死区时间计算

互补PWM波配置

STM32F407VET6的高级定时器TIM1、TIM8可以生成互补的PWM波,用HAL库配置非常方便。

我们使用高级定时器TIM1,选择一个通道(我这里选择通道二),然后选择PWM Generation CH2 CH2N。这里N的意思是互补,CH2N是与CH2的PWM互补的。

此时我们可以看到CH2输出以及其互补通道输出PWM波的IO口。

我的时钟主频配置的是100Mhz,当你配置的时候要注意自己的始终主频,涉及后面的PWM波的频率计算、死区时间计算。

时钟源选择Internal Clock。选择不分频(Prescaler=1),由于我需要配置100Khz频率的PWM波,所以我的Counter Period值填写的是999(ARR=999)。

pwm波的周期:

T1=\frac{1}{f}=\frac{1}{1000000}=0.00001s=10us

而主频为100Mhz,其周期为:

T0=\frac{1}{f}=\frac{1}{100000000}=10ns

所以Counter Period值应该为:

Counter Period=\frac{T1}{T0}-1=\frac{10us}{10ns}-1=1000-1 

同理:如果要配置10Khz频率的PWM波,则ARR的值应该为9999.

死区时间计算

我们可以看到有一个Dead Time的值需要我们填写。

其计算规则如下图所示。

乍一看很复杂,我来解释一下计算步骤。

首先,我们需要确定时钟的主频,上图为8Mhz,所以其时钟周期T0为:

T0=\frac{1}{8Mhz}=125ns

第二步,又要分为4种情况:

1)步长为T0(125ns),乘数范围是0-127,此时得出的范围是:步长 x 乘数

0-127*T0 即 0-15.875us.

2)步长为2T0(125ns),乘数范围是64-127,此时得出的范围是:步长 x 乘数

128-254*T0 即16us-31.75us.

3)步长为8T0(125ns),乘数范围是32-63,此时得出的范围是:步长 x 乘数

256-504*T0 即 32us-63us.

4)步长为16T0(125ns),乘数范围是0-127,此时得出的范围是:步长 x 乘数

512-1008*T0 即 64us-126us.

需要配置的死区时间在哪种情况的范围内,则是哪一种情况。

第三步,

1)如果是情况1,可以直接用需要配置的死区时间除以步长T0,就是需要填入DeadTime那一栏的DTG寄存器的值.

因为情况1的步长值为0,乘数位置为DGT[6:0],那么其合在一起还是看DGT[6:0]的大小,所以可以直接使用需要配置的死区时间除以步长T0。

DTG = \frac{Dead Time}{T0}

2)如果是情况二,其步长值为二进制10

公式为:(64+DTG[5:0])\otimes 2T0=DeadTime(此处的DeadTime和配置处需要填入的不一样,配置处填入的是寄存器数值,这里的是期望的死区时间)

解出DTG[5:0]的值,将其转化为二进制,与 前面的步长值10拼在一起。

例如DTG[5:0]为31,其二进制就是011111,合在一起后就是10011111即159.

所以需要填入DeadTime的值就是159,就是这一栏Dead Time所需要填入的数值。

3)如果是情况三,其步长值为二进制110

同理,解出DTG[4:0]的值,将其转化为二进制,与 前面的步长值110拼在一起。

公式为:(32+DTG[4:0])\otimes 8T0=DeadTime

4)如果是情况四,其步长值为二进制111

同理,解出DTG[4:0]的值,将其转化为二进制,与 前面的步长值111拼在一起。

公式为:(32+DTG[4:0])\otimes 16T0=DeadTime

主要思想就是把DTG寄存器拆成两部分,前面的部分决定步长(取0、10、110、111),后面的部分为DTG的值,两者拼在一起就是DeadTime处需要填入的数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电磁风暴召唤师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值