STM32F4微控制器對於定時器1的死區時間計算

2021-10-10 08:09:25 字數 1040 閱讀 2732

根據部落格stm32高階控制定時器(tim1和tim8) 關於死區時間的計算方法提及的,如圖:

可以看出,死區時間的設定分為4種演算法,而不是想當然的計數乘以機器週期,類似階梯收費,每一梯隊的步長不同,因而可以得到四個區間(由於stm32f407ve微控制器的主頻是168m,這裡僅描述168m下的情況):

暫存器[7:5]

計算式區間 (us)

步長(us)

0xx(0~127) / 168

0~0.7559

0.0059

10x(64+ (0~63) ) / (168/2)

0.7619~1.511

0.0119

110(32+ (0~31) ) / (168/8)

1.5238~3

.0476

111(32+ (0~31) ) / (168/16)

3.0476~6

0.0952

然後,進一步可對公式進行反推

( 168 / 2 )*yms-64=x;

( 168 / 8 )*yms-32=x;

(168 / 16)*yms-32=x;

式中yms為某區間內需要的死區時間,x為最終填入暫存器dtg的數值。

例如:我需要5us的死區時間,則選擇區間3(111),然後經過計算得,x=20.5,取整數21。

則dtg的值:[7:5]=111,[4:0]=1 0101(21),dtr=1111 0101=0xf5=245。

填入程式

用示波器觀察可以發現,死區時間和計算的吻合。

綜上所述。我們在設定死區時間的時候應先選擇合適的區間,再根據公式反推需要填寫的值。

STM32F4定時器學習

高階定時器 time1 time8 通用定時器 time2time5,tim9tim14 基本定時器 time6 和 time7 等 tim2 tim5 的暫存器介紹 控制暫存器 1 timx cr1 只用到了 timx cr1 的最低位,也就是計數器使能位,該位必須置 1,才能讓定時器開始計數。d...

stm32F4 時基定時器(2)

找了很多的資料,終於把時基定時器的給弄懂了,沒有使用庫函式,直接操作暫存器。下面介紹stm32中的systick,systick 部分內容屬於nvic控制部分,一共有4個暫存器,名稱和位址分別是 stk csr,0xe000e010 控制暫存器 stk load,0xe000e014 過載暫存器 s...

stm32f4 定時捕獲

概述 1000hz 20 80 占空比現象 1000hz 51 58 占空比現象 關於本文的更多詳情請往下看。筆者針對於初學者提供的例程都是去掉了許多不必要的功能,精簡了官方的 對初學者一看就明白,以簡單明瞭的工程供大家學習。stm32f4 tim輸入波形捕獲 脈衝頻率 占空比 例項 訪問密碼 st...