header
×
单片机 > 单片机程序设计 > 详情

STM32 不同主频下的定时器死区设置

发布时间:2020-05-28 发布时间:
|

根据datasheet里的以下说明,算出各种主频下,DTG赋值和具体死区时间的对应关系,可供查询参考。


 


在168M的定时器时钟下 :

DTS=1/168M=5.95238ns。 
所以第一个公式,死区时间能从5.95ns的步进从0调整到 127*5.95=755.95ns 
第二个公式,(64 +0 )*2*5.95 ~(64 + 63)*2*5.95 = 761.9 ~ 1511.9ns 
第三个公式, (256 ~ 504)*5.95= 1.5238us ~ 3us 
第四个公式, (512 ~ 1008)*5.95 = 3.0476us ~ 6us

我设置为224(E0),就是11100000,DT=(32 + 0)*(16*f) = 3us

我要把死区设为2us,在第三个公式,倒推出DTG【7:0】=202;

我要把死区设为1.5us,在第二个公式,倒推出DTG【7:0】=190; 
我要把死区设为1us,在第二个公式,倒推出DTG【7:0】=148; 
我要把死区设为900ns,在第二个公式,倒推出DTG【7:0】=139;//892ns 
倒推出DTG【7:0】=140;//904.4ns 
我要把死区设为800ns,在第二个公式,倒推出DTG【7:0】=131;//797.3ns

我要把死区设为700ns,在第一个公式,倒推出DTG【7:0】=118;//702.1ns 
我要把死区设为600ns,在第一个公式,倒推出DTG【7:0】=101;//600.95ns 
我要把死区设为500ns,在第一个公式,倒推出DTG【7:0】=84;//499.8ns 
我要把死区设为400ns,在第一个公式,倒推出DTG【7:0】=67;//398.65ns 
我要把死区设为300ns,在第一个公式,倒推出DTG【7:0】=50;//297.5ns


在144M的定时器时钟下 :

TDTS=1/144M=6.94444。 
所以第一个公式,死区时间能从5.95ns的步进从0调整到 127*6.94444=881.94ns 
第二个公式,(64 +0 )*2*6.94444~(64 + 63)*2*6.94444= 888.88ns~ 1763.88ns 
第三个公式, (256 ~ 504)*6.94444= 1.7777us~ 3.5us 
第四个公式, (512 ~ 1008)*6.94444=

我要把死区设为1.5us,在第二个公式,倒推出DTG【7:0】=173; 
我要把死区设为1.2us,在第二个公式,倒推出DTG【7:0】=150; 
我要把死区设为1.1us,在第二个公式,倒推出DTG【7:0】=143; 
我要把死区设为1us,在第二个公式,倒推出DTG【7:0】=136; 
我要把死区设为900ns,在第二个公式,倒推出DTG【7:0】=139;//902.77ns

我要把死区设为800ns,在第一个公式,倒推出DTG【7:0】=115;//798.6ns

我要把死区设为700ns,在第一个公式,倒推出DTG【7:0】=101; 
我要把死区设为600ns,在第一个公式,倒推出DTG【7:0】=86; 
我要把死区设为500ns,在第一个公式,倒推出DTG【7:0】=72;


在72M的定时器时钟下:

TDTS=1/72M=13.888。 
所以第一个公式,死区时间能从5.95ns的步进从0调整到 127*13.888=1763.88ns


关键字:STM32  不同主频  定时器  死区设置 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
KEIL for ARM 自带的例子程序虚拟串口调试
footer