LDC馬達驅動上下臂保護時間 - 以Renesas RX MCU為例

foaf:image

BLDC馬達驅動的基本知識

 

在BLDC馬達驅動控制的過程中,很常見的問題就是在deadtime範圍內沒有限制訊號輸出,造成變頻驅動器的上下臂同時導通,使得上下臂的 MOSFET 因短路而燒毀。

 

在介紹之前我們先了解一下BLDC馬達驅動的變頻器簡易架構,如圖一所示:

foaf:image 圖一

由上圖可得知,BLDC馬達驅動的變頻器是透過六組PWM頻繁的開關MOSFET來控制BLDC馬達的運轉,控制這六組PWM的訊號即決定了如何控制BLDC馬達運轉,因此在開關MOSFET元件時需要避開它的導通、關閉的動作反應時間,又稱「deadtime」,避開在deadtime這個時間範圍內同時操作MOSFET是保護需要注意的重點:

 

在Renesas RX系列的MCU中,有特別設計一組MTU硬體,是專門用來控制此類的應用,因此MTU將deadtime的保護直接設計一組硬體暫存器來避免「deadtime」的PWM訊號操作,名稱是TDDRA暫存器。

 

由上圖的Complementary PWM訊號範例 (綠色方框內的訊號)可得知藉由設定TDDRA暫存器 (紅色虛線方框),可造成MTU的Channal3計數器MTU3.TCNT與MTU的Channal4計數器MTU4.TCNT的時間偏移,而偏移的時間數值就是「deadtime」的保護時間,即紅色方框內的時間差。

foaf:image 圖二

Deadtime保護時間計算說明

這裡說明要如何計算「deadtime」對應的 TDDRA時間數值。首先我們要先知道MTU硬體的運作時脈來源是源自於MCU內部的周邊Peripheral Clock Channel C,即PCLKC這個時脈,由下面兩個圖示可得知。

foaf:image 圖三
renesas-04 圖四

而在實際的控制應用中,由於我們會希望Complementary PWM在實際單位時間內的控制解析度能夠越高越好;舉例來說,100us單位時間內能操作的Duty數值範圍越大解析度越高,因此我們一般實際應用裡都會將PCLKC的時脈設定為最高時脈,而依據不同的MCU系列,最高的時脈上限會有所不同。若以RX66T MCU當作範例,因此在這裡的PCLKC時脈為160Mhz。

 

而deadtime時間長度則需視你所使用的MOSFET的反應時間來決定。因此不同的MOSFET元件,會需要不同的deadtime時間長度,但deadtime時間長度在實際應用中一般最長都不會超過2us,這裡我們以1us的時間長度當作範例,則TDDRA的計算數值如下所示:

 

將1us 的時間長度轉換為頻率:

 

1 ÷ 0.000001 = 1,000,000 (Hz)

 

則TDDRA要偏移 1us 的時間長度對應數值為160,000,000 Hz ÷ 1,000,000 Hz = 160

MTU TDDRA 暫存器的保護原理說明

foaf:image 圖五

由上圖可得知,TDDRA 暫存器的保護原理是透過該暫存器的數值在Complementary PWM啟動的同時,將TDDRA數值載入到MTU3.TCNT 暫存器,使MTU3.TCNT 暫存器從該數值開始計數,而此時的MTU4.TCNT是從0開始計數,若以上述為例,兩者有160 count 的時間差,所以上、下臂PWM開關的的時間差就會被強制偏移160 count 的時間差;同時,MTU硬體內部有硬體設計數值低於TDDRA數值時,Complementary PWM訊號不動作,達成MTU硬體強制保護deadtime範圍內的訊號切換。

參考文獻

1. RENESAS, RX66T Group User’s Manual:Hardware, https://reurl.cc/Rj2X9z