【Nations】N32G030 PWM 死區時間

搞電機應用或者電源應用的小夥伴基本都脫離不了半橋、全橋,

常見的半橋電路如下,由兩個 MOS 組成,Q1 的 D極連接了 VBUS ,S 極連接了Q2的 D 極,Q2 S 極連接到 GND ,中間 SW 引腳則接去電機或者電感。

 

MOS 是一個開關,由 GS 電壓控制開關和導通,由於 MOS 開關的電壓比較高,大部分的 MCU 引腳耐受電壓是 3.3V ,高一點的也只能 5V ,所以不能直接連接,這時候就需要一個 Gate Driver 來控制控制這種半橋電路,如下圖,納芯微 NSI6602 控制電路圖:

 

 

MCU 使用 PWM 來給到 Gate Driver 的輸入 INA INB,其輸出 OUTA OUTB 的電壓就會滿足 MOS 導通的電壓,但是需要注意的是,PWM 也不是隨意給的,可以看到半橋電路的兩個 MOS ,如果兩個同時打開, VBUS 直接連通到 GND ,這樣造成電源短路是很危險的,所以需要避免這種情況,INA 高電平 INB 就需要低電平,反之亦然,這種 PWM 稱為互補 PWM ,如下圖:

 

 

這時候問題又來了,MOS 管並不是理想的開關,它開關是需要時間的,參考華潤微電子的 MOS 參數:

 

開啟關閉的延時時間,以及高低電平的 rise time 和 fall time,這些都是要考慮的,那麼這就要求互補 PWM 中需要插入一些時間來保證開關,比如 Q1 需要關閉,Q2 打開,Q1 關閉至少需要 110+126us的時間,通常都會預留多一點時間,這裡使用500us ,那麼 Q2 至少需要 500us 後才能打開,如果提前打開則會短路損壞電路,這種延時時間成為死區時間,如果手動去控制這些時間則會變得很麻煩,所以需要看 MCU 有沒有帶死區控制的 PWM 功能,我們這裡使用的是 Nation N32G455REL7 ,它的高級定時器 TIM1 & TIM8 是可以輸出帶死區時間的 PWM 的,接下來就以 7PWM_OUTPUT 例程來介紹如何進行配置。

(1)打開例程,這裡配置了多路的互補 PWM ,我們只需要用到其中一路,這裡選擇TIM1 Channel1

 

(2)在初始化函數 TIM_InitOc1 之後,加入以下代碼,即配置死區時間部分,



死區時間計算公式在 TIMx_BKDT 寄存器中有描述,這裡簡單介紹一下:

 

 

這裡的 TDTS 是 TIMx_CTRL1 中來的:

我們這裡 CLKD = 0x00, TIM1 的時鐘頻率為主頻 144MHz,所以 TDTS = 1/144MHz,

如我們代碼中配置的 DTGN[7:0] = 0x4A ,那麼死區時間

Tdt = 0x4A * (1/144MHz ) = 74 * 6.944ns = 513.856ns

將代碼下載抓取波形,可以看到死區時間為 514ns ,說明配置成功:

 

互補 PWM

 


死區時間

 

 

參考資料:

《UM_N32G45x Series User Manual V3.0》

https://www.nationstech.com/

《C2891997_柵極驅動IC_NSI6602B-DSWR_規格書_NOVOSENSE(納芯微)柵極驅動IC規格書.PDF》

https://www.novosns.com/

《CRM_CRST113N20NZ-AB_Rev1.0(20220831)》

https://www.crmicro.com/

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論

胡康

胡康

8 個月前
如果讲的再详细点就好了