返回主站|网站地图|手机浏览
普通会员

如皋市思晶源电子有限公司

新闻中心
产品分类
  • 暂无分类
STM32死区计算和配置 死算和再经过倍频器转换

STM32死区时间计算与配置分析

STM32死区计算和配置

(网络配图,请勿当真)

内容概览

在STM32微控制器的区计时钟系统中,AHB总线频率为72MHz,配置通过APB1分频器将其频率降至36MHz,死算和再经过倍频器转换,区计最终形成用于通用定时器的配置时钟频率CK_INT(CK_PSC),依然保持在72MHz。死算和

TIMx_BDTR寄存器概述

STM32的区计高级定时器TIM不仅能够产生互补的PWM波形,还允许配置插入的配置死区时间和刹车功能。为了实现这些功能,死算和用户需要关注TIMx_BDTR寄存器,区计它专门用于设置刹车信号和死区时间。配置

DTG寄存器用于存储死区时间的死算和值。设DTG[7:0] = k;

死区时间DT定义为系统时钟周期的区计总时长;而Tdtg则为系统周期时长乘以一个倍数,该倍数用于计算最终的配置死区时间,通常称为“步长”。在72MHz的定时器情况下,每个周期的时长为1/72MHz ≈ 13.89ns。

这个计算涉及较为复杂的逻辑,核心思路是将DTG的八位数分为两部分。一部分(DTG[7:5])决定了步长的倍数,另一部分是与步长相乘的乘数(根据不同的步长采用不同的对应公式),最终通过步长和乘数的运算得到死区时间。分配这两部分的依据可参考上表信息。

在计算周期为13.89ns的情况下,死区时间范围可划分为多个区间:0~1764ns、1778~3528ns、3556~7000ns、7112~14001ns。

由DTG[7:0]可以看出死区时间DT的确定。TIMx_CR1寄存器的CKD位进一步说明了DT确切的意义及其计算依据。

接下来,通过实例来说明如何利用上述表格进行计算。

假设定时器的时钟频率为72MHz,分频因子为1时,可以计算出该定时器的周期:

TDTS= 1/tDTS= 1/tCK_INT= 1/72MHz ≈ 13.89ns.

根据公式,可以计算出四种不同情况的死区时间范围:

1. DT=DTG[7:0]×Tdtg, Tdtg=TDTS

DT=(0~127)×13.89ns=0~1763.89ns

2. DT=(64+DTG[5:0])×Tdtg=(64+DTG[7:0]-128)×Tdtg, Tdtg=2×TDTS

DT=(64+(0~63))×2×13.89ns=1777.92ns~3528.06ns

3. DT=(32+DTG[4:0])×Tdtg=(32+DTG[7:0]-192)×Tdtg, Tdtg=8×TDTS

DT=(32+(0~31))×8×13.89ns=3555.84ns~7000.56ns=3.56us~7us

4. DT=(32+DTG[4:0])×Tdtg=(32+DTG[7:0]-224)×Tdtg, Tdtg=16×TDTS

DT=(32+(0~31))×16×13.89ns=7111.68ns~14001.12ns=7.11168us~14us

设定时器的工作频率为72MHz,分频因子为1,并将死区时间设定为2us,则需要计算DTG寄存器的值。根据死区时间属于情况2,DTG[7:6]=0b10,DTG[5:0]的值为2000ns÷(13.89ns2)-64=7.994,约为8,换算成二进制为0x001000。因此可得DTG[7:0] = 0b10001000 = 0x88=136。

若将死区时间改为3us,仍为情况2,则DTG[7:6]=0b10,步长为27.78ns,需要的乘数计算为3000÷27.78-64≈44,二进制为0b101100,最终得到DTG[7:0]=0b10101100=0xAC=172。DTG寄存器的作用是存储死区时间的值。

在实际应用中,死区时间通常由硬件的响应时间限制,最终配置结果应当综合考虑系统的实际传输延迟和响应能力。

有效的建议与应对措施

1、确保充分了解TIM寄存器的工作机制与时钟频率配置,以便进行合理的死区时间设置。

2、在设计电路时,合理选择硬件组件,优化响应时间,以符合所需的死区时间要求。

3、在实际测试阶段,建议使用示波器等工具确认死区时间是否符合预期,以便及时调整参数确保系统稳定运行。