一、STM32F051为例

讲解死区时间(DTR)如何计算,TIM1的时钟频率配置的是48M

二、时钟分频因子

我的环境时钟分频因子的值是 00,所以

tDTS = tCK_INT=1000 000 000ns/48 000 000=20.8333ns

三、用户手册中的样例理解

Tdtg=步长时间=n x TDTS

如果定时器时钟为8M,并且CKD=00,TDTS=1000 000 000ns/8 000 000=125ns

DTG[7:0]  =   [0~127]       => DTG[7:5]=0xx => 死区 = [0~127]*125ns = [0~15875]ns

DTG[7:0]  =   [128~191]   => DTG[7:5]=10x => 死区 =(64+[0~63])*(125ns*2)=[16000~31750]ns

DTG[7:0]  =   [192~223]   => DTG[7:5]=11x => 死区 =(32+[0~31])*(125ns*8)=[32~63]us

DTG[7:0]  =   [224~255]   => DTG[7:5]=111 => 死区 =(32+[0~31])*(125ns*16)=[64~126]us

四、STM32F051寄存器和波形对比

我的环境时钟分频因子的值是 00,所以

tDTS = tCK_INT=1000 000 000ns/48 000 000=20.8333ns

例子1

DTG=0x2D=45   [0~127]

死区=45*20.8333ns=937.49ns

例子2

DTG=0x96=150   [128~191]

死区=[64+22]*20.8333ns*2=3583.32ns=3.583us

五、死区计算器

手工计算比较麻烦,整了小工具,只需要选填3个参数,自动计算

【免费】STM32定时器的死区计算器资源-CSDN下载

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐