距離上次寫筆記,已經(jīng)過去好長時間了
中間也折騰過不少東西,但是都沒咋整理,主要是這中間都是在干活兒,不是自己想要研究的,也沒想著要寫。
從去年10月份開始想要學習FOC,10月份研究了一個月,到11月初,實現(xiàn)了SVPWM驅(qū)動BLDC電機,使用串口實現(xiàn)開環(huán)下轉(zhuǎn)速和力矩調(diào)節(jié)?;旧纤闶莿倓側腴T, 但是后來一直去忙別的各種事情了,擱置了一年,最近想重新?lián)炱饋?,發(fā)現(xiàn)去年的代碼折騰的已經(jīng)跑不起來了,于是重新開始看去年收藏夾里的教程——從最基礎的高級定時器開始。高級定時器這塊兒的知識,比較基礎的就不贅述了,我會在文章末尾附上幾個我個人認為比較好的文章,供有需要的同學學習。
之前關于死區(qū)時間的設定,一直沒搞清楚,CubeMX中DeadTime就一個孤零零的文本框,也沒有注釋,似乎很不起眼,這次花了點兒時間,研究整理了一下,有理論計算,有上機試驗,希望能幫助到有需要的同學吧。
DTG配置死區(qū)發(fā)生器詳解
回歸正題!下圖截自《STM32F4xx中文編程手冊》RM0090,DTG寄存器為TIM1 和 TIM8 斷路和死區(qū)寄存器 (TIMx_BDTR)的低8位,高八位咱們暫時不用關心哈,咱們只關心低8位。DTG寄存器中的值不同,決定了死區(qū)時間的計算方法也不同。DTG寄存器的設置方法非常簡單,直接通過CubeMX中DeadTime處寫入即可。
?根據(jù)上圖可以知道,設置死區(qū)時間的時候,根據(jù)輸入到DTG的值不同,會被分為4種情況,分別是:
?1.當最高位為0 低7位為任意值,即CubeMX中DeadTime值輸入為0-127時,死區(qū)時間為
[0~127]×,=
例如CubeMX中 DeadTime輸入100時,理論得到死區(qū)時間DT=100×1/72MHz=1.38889us
CubeMX設置截圖如下,使用TIM8高級定時器,使用通道CH1和CH1N輸出互補PWM波,預分頻值PSC為72-1,自動重裝載值ARR為1000-1(圖中DeadTime輸入的為十六進制0x64,轉(zhuǎn)為為十進制后即為100)
?將程序下載到正點F103ZET6核心板上,使用示波器檢測PC5(CH1)與PA7(CH1N)互補方波的死區(qū)時間,得到如下截圖
?圖中兩方波的時間差即為死區(qū)時間,測量值為1.38us,與計算值1.38889us幾乎一致。
2.當DTG[7:6]為10? 而DTG[5:0]為任意值時(10xx xxxx),此時死區(qū)時間DT計算公式為
DT=(64+DTG[5:0])x,=2
DT=?(64+[0~63])x??,=2
?例如CubeMX中 DeadTime輸入0xb9(1011 1001)時,理論得到死區(qū)時間?
DT=?(64+(0011 1001))x?=?(64+57)x?2?=?(64+57)x2x1/72MHz=3.61111us
設置CubeMX中DeadTime值為0xb9
?下載燒錄,示波器檢測死區(qū)時間
?實際檢測出死區(qū)時間為3.36us,與理論時間3.36111us基本吻合。
3.和4. 兩種情況與2計算方式基本相同,不過就是需要注意,DTG[7:5]三位值已經(jīng)固定,DTG[4:0]取值范圍縮小至【0~31】,在確定DTG[4:0]取值數(shù)值之后,將DTG[7:5]與DTG[4:0]進行按位與操作,組成一個字節(jié),最后將該值填入Cube MX中DeadTime處即可;另外取值分別變?yōu)?倍與16倍。
實際3 4兩種情況試驗我都做過了,3不放了,只把第4種情形,DTG[4:0]取值最大的情況貼圖在下面吧。
設置CubeMX中DeadTime值為0xff?(1111 1111)
??DT=?(32+(1111 1111))x?=?(32+31)x?16?=?(32+31)x16x1/72MHz=14.0us
?經(jīng)過實測,死區(qū)時間同樣為14us,與計算結果一致。
?非常關鍵的的計算方法
有的同學可能會好奇,??=N倍,那這個又是怎么來的呢,其實關于的取值方法,官方的編程手冊中同樣提到了,我貼上來供大家參考。
?不做特別設置的時候,=tCK_INT,即與內(nèi)部時鐘相同。即內(nèi)部時鐘頻率,72MHz。
參考文章推薦
STM32F407配置STM32CubeMX通過高級定時器TIM8產(chǎn)生PWM互補輸出(帶死區(qū)和剎車)實驗_xuechanba的博客-CSDN博客
STM32CUBEMX配置教程(五)高級定時器輸出兩路PWM波_怡步曉心l的博客-CSDN博客
STM32CubeMX的TIM1互補PWM輸出,HAL庫(2路,帶死區(qū))_小李(李宏松)的博客-CSDN博客
STM32 HAL庫PWM回調(diào)函數(shù)的特性_Wake_Dream_2333的博客-CSDN博客_callback stm32文章來源:http://www.zghlxwxcb.cn/news/detail-421969.html
STM32CubeIDE 統(tǒng)計及控制PWM產(chǎn)生個數(shù)_sudaroot的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-421969.html
到了這里,關于STM32F407高級定時器-死區(qū)時間研究-STM32CubeMX的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!