使用 Arduino PWM 控制的試驗電路板自舉式 MOSFET 馬達驅動器

什麼是馬達驅動器?

馬達驅動器是一種基於半導體的電路,用於為馬達供電和控制馬達。許多此類設備使用智慧微控制器來產生數位控制訊號,以控制稱為橋臂的半導體對。有些控制器包含 2 個橋臂(4 個半導體開關),而有些則可能控制 3 個橋臂(6 個半導體開關)。微控制器協調的脈衝寬度調變 (PWM) 訊號用於控制小功率馬達中的金屬氧化物場效電晶體 (MOSFET),而絕緣閘雙極型電晶體 (IGBT) 通常用於功率高達約 1000 馬力的馬達驅動。常見的馬達驅動器是電子調速器 (ESC),它廣泛應用於遙控 (RC) 汽車、飛機和四軸飛行器。

本工程簡報是探討馬達驅動技術系列文章的第二篇。本文介紹了一種極簡但功能齊全的橋臂,可在試驗電路板(麵包板)上建造。如圖 1 所示,它可用於控制有刷直流馬達的轉速,但不能控制其方向。下一篇文章將展示如何使用兩個橋臂來建立一個完整的 H 橋,從而實現對直流馬達的轉速和方向控制。圖 2 顯示了圖 1 所示電路的原理圖。

我們鼓勵您搭建一個電路副本,以累積電子原型製作經驗。之後,您可以修改電路以更好地理解其工作原理。

圖 1:基於 MOSFET 的橋臂可用來控制直流馬達。Arduino Nano Every 用於產生 PWM 訊號。馬達轉速由電位器設定決定。

安全提示:為保護您的電腦,請在啟用 15V 直流電源時斷開電腦的 USB 連接埠。這可以防止 15V 直流電源與 Arduino 的任何引腳意外連接。

忽視此警告可能會損壞您電腦的 USB 連接埠、處理器或主機板。

建議使用獨立電源為 Arduino 供電,例如低成本的手機充電器。此外,您可能還需要購買 USB 連接埠隔離器來保護您的電腦。

如果您尚未閱讀本系列的前一篇文章,建議您先閱讀。前一篇文章探討了自舉電容的概念及其如何為高側 MOSFET 提供能量。


圖 2:橋臂示意圖,內含 IR2110 驅動器和 Arduino Nano Every。電容 C2 執行關鍵的引導操作。 Arduino 透過其 USB 連接埠(圖中未顯示)供電。

什麼是橋臂?

橋臂是 H 橋或完整三相橋電路的一部分。每個橋臂由兩個半導體裝置組成:通常是 MOSFET 或 IGBT。高側半導體裝置用於將負載拉高,而低側半導體裝置用於將負載拉低。

圖 2 所示為一個典型的橋臂和驅動器的示意圖。它包含一對 N 通道 MOSFET。請注意,負載連接到 MOSFET 的中間位置。相對於這個中心點,MOSFET Q1 被指定為高側元件,Q2 被指定為低側元件。

MOSFET 驅動器的特性

圖 2 所示電路採用了 Infineon IR2110PBF MOSFET 驅動器。該元件最初由 International Rectifier 於1990年代設計。它至今仍然適用,而 14 引腳 DIP 封裝版本尤其適合學習,因為它可用於如圖 1 所示的試驗電路板電路。

IR2110 驅動器適用於頻率高達約 100kHz 的脈衝寬度調變 (PWM) 操作。其功能框圖如圖 3 所示( 規格書中)。請注意,IC 封裝內包含兩個半獨立的電路,分別是低側驅動器和高側驅動器,輸出分別為低輸出 (LO) 和高輸出 (HO)。輸入端低輸入 (LIN)、高輸入 (HIN) 和關閉 (SD) 均為低電平邏輯,相容於 3.3VDC 電源。

圖 3:IR2110 的功能框圖,圖中顯示了低側和高側驅動器。請注意,高側驅動器包含電平轉換電路,以支援自舉功能。

IR2110 具有多項特性,使其成為驅動橋式唱臂的理想選擇,其中包括低阻抗輸出驅動器和高側驅動器的自舉功能。

低阻抗

MOSFET 是一種電壓控制器零件。理論上,我們只需對 IRF520PBF 等裝置施加 15V 直流電壓,它就會導通,並具有低通道電阻。但實際上,這並非易事,尤其是在開關頻率為 1kHz 至 100kHz 範圍內時。

請記住,MOSFET 中的 MO 指的是金屬氧化物閘極材料,它用於將閘極與通道隔離。此外,電容器由兩個導體組成,中間由介質隔開。因此,MOSFET 的閘極結構是一個電容相對較大的電容器,必須對其進行充放電才能使 MOSFET 導通和關斷。當裝置在高頻下工作時,這可能會出現問題。

因此,需要一個具有低阻抗輸出的強驅動器來對 MOSFET 的閘極電容進行充放電。這就是為什麼 IR2110 驅動器的額定脈衝電流高達 2.5A 的原因。

技術提示:當兩個橋臂開關同時導通時,會發生一種稱為直通(交叉導通)的情況。這實際上會使電源短路,例如圖 2 中的 Q1 和 Q2 同時導通時。在這種情況下,某些零件會損壞 —— 根據墨菲定律(Murphy’s Law),損壞的往往是最昂貴且最難更換的零件。如果驅動器的邏輯電路發生故障,則可能發生此故障。如果 MOSFET 沒有及時導通和關斷,尤其是在高頻工作時,也可能發生此故障。低導通電阻要求是使用低阻抗驅動器的主要原因之一。

自舉操作

請注意,圖 3 包含三個電源輸入端,包括:

  • VDD/VSS 輸入端(低電位邏輯,5VDC,如圖 2 所示)

  • VCC/COM 輸入端(15VDC,與 C3 相連,如圖 2 所示)

  • VB/VS 輸入端(15VDC,浮動自舉,與 C2 相連,如圖 2 所示)

如果您尚未閱讀,我們強烈建議您閱讀 DigiKey 的《自舉操作指南》。該指南詳細介紹了自舉操作,重點闡述了接地參考訊號和浮動訊號之間的差異。它還探討了自舉電路,著重分析了高側 MOSFET 閘極驅動要求以及自舉充電電路的必要性。

簡而言之:自舉電路為橋臂中的高側 MOSFET 提供浮動電壓源。自舉電路的運作需要一個充電電路和一個帶有電平轉換電路的 MOSFET 驅動器。當低側開關啟動時,自舉電容(飛跨電容)開始充電。此電容為高側驅動器提供穩定的 15VDC 電壓。從以地為參考的示波器觀察,自舉電容的正極電壓會在 15VDC 和 15VDC 加上初級輸入電壓之間跳變。例如,如果橋臂的電源電壓為 50VDC,則自舉電壓會在 15VDC 和 65VDC 之間跳變。

自舉充電

如圖 2 所示,C2 為自舉電容。其負極連接至橋臂的輸出端。然後,該電容連接至 IR2110 的浮動 VB/VS 對。當 Q2 導通時,自舉電容會透過 D1 充電。

技術提示:「Q2 導通」有兩種解釋。第一種情況是指 MOSFET Q2 透過低側驅動器物理導通。第二種情況是指 Q2 的體二極體導通。假設橋臂連接到感性負載,則每次高側 MOSFET 關斷時都會發生這種情況。此時,感性反激電壓迫使 Q2 導通。這使得自舉電容 C2 的負極相對於地產生一個二極體壓降。在這種情況下,電容會透過二極體 D1 充電至約 15VDC。

技術提示:請勿將高側驅動器的佔空比設定為 100%。MOSFET Q1 必須週期性地關斷,以便為自舉電容充電。如果沒有這種緩衝,電容會緩慢放電。IR2110 驅動器最終會將此情況偵測為欠壓狀態。然而,由此產生的輸出將不穩定且難以排除故障。此外,雖然 IR2110 應該能夠保護 MOSFET,但其欠壓設定可能對於您的應用而言過低。這會導致 MOSFET 工作在高通道電阻下,從而導致過熱和裝置損壞。

電平轉換

圖 3 展示了高側驅動器的電平轉換電路。在前一篇文章中,我們介紹了使用光耦合器進行電平轉換的方法。這使得訊號能夠通過,同時高側 MOSFET 可以在地電壓和電源電壓之間自由切換。此外,自舉電容確保高側 MOSFET 接收乾淨的驅動訊號,該訊號在閘極到源極之間從 0VDC 過渡到 15VDC。

據我所知,IR2110 不使用光耦合器,但結果卻是一樣的。其內部電路允許高側驅動器和相關的自舉電容在電壓瞬變迅速(高 dv/dt)的系統中,從 0 到 500VDC 自由浮動。再次強調,高側驅動器必須與高側 MOSFET 的源極同步。即使只有一瞬間的偏差,也會超過設計最大值 V_{GS} ,從而損壞 MOSFET 的閘極絕緣層。

技術提示:差分探頭可用於測量高側閘極至源極電壓。回想一下,差分探頭有兩個輸入。探頭響應輸入訊號之間的差異。此測量可以使用兩個傳統探針和數學運算來執行。此技術用於測量升壓電壓,如圖 4 所示,其中以通道 2 減去通道 1 執行差分計算。

圖 4:與自舉電容器相關的電壓 通道 1(橘色)C2 的負極 通道 C2(藍色)C2 的正極,紅色表示通道 2 - 通道 1 的數學結果。紅線表示用於驅動上部 MOSFET 的 VB 到 VS 對之間的浮動電壓。

測試條件

如圖 2 和圖 5 所示,此電路採用單橋臂結構。這種結構可以改變馬達轉速,但不能改變其旋轉方向。對於有刷馬達的雙向調速,需要使用完整的 H 橋電路(將在後續文章中探討)。

關於圖 2,請注意直流馬達透過地線連接到橋臂的輸出端。這意味著高側驅動器 Q1 處於工作狀態,而低側驅動器 Q2 處於就緒狀態,但由於 LIN 指令線透過直接接地被停用,因此 Q2 處於停用狀態。同時,我們必須認識到 Q2 對於電路的正常工作至關重要,因為 MOSFET 的體二極體仍然需要用於捕獲馬達的感應反激電壓。

替代測試條件:

我們可以透過將 2 號直流馬達連接從地移至直流電源,來改變電路條件,從而使低側驅動器正常工作。同時,我們也需要交換 HIN 和 LIN 輸入端。

技術提示:MOSFET 的反向(本體)二極體通常設計為匹配相關 MOSFET 的特性。例如,假設 Q1 透過高電感直流馬達傳導 5A 電流。當 Q1 關閉時,此反激電流自然會經由 Q2 的二極體換向。了解了這一事實,我們就能更好地理解 MOSFET 和內部二極體匹配的必要性。

可以使用外部二極體來提高性能。然而,當我們考慮物料清單 (BOM) 時,零件數量的增加是不可取的。

Arduino 程式碼

以下是 Arduino Nano Every 的程式碼。請注意,微控制器讀取 10-bit 電位器值並將其轉換為 8-bit 值,以驅動 D3 引腳上的 PWM 訊號。另請注意,使用了飽和區將 PWM 限制在 98% 左右。

#define VREF_PIN A7
#define PWM_PIN 3
void setup() {
  pinMode(PWM_PIN, OUTPUT);
  TCB1_CTRLA = 0b00000011;  // pin D3
}
void loop() {
  uint16_t setpoint = analogRead(VREF_PIN);
  uint16_t drive = setpoint >> 2;
  if (drive > 250) {
    drive = 250;
  }
  analogWrite(PWM_PIN, drive);
  delay(50);
}

請參考另一文章有介紹採用直接操作特殊功能暫存器 (SFR) 的方法,將預設 PWM 頻率從 980Hz 提高到 32kHz。更高的頻率使馬達嗡嗡聲超出人耳可聽範圍,並將馬達從斷續(脈衝)模式切換到連續模式。此處,「連續」是指考慮到開關頻率和馬達電感,馬達電流幾乎是連續的。頻率較低時,由於感性能量在每個 PWM 週期內都會耗散至零,因此電流是不連續(脈衝)的。

圖 5:使用 B&K Precision DC 電源供應器和 Digilent Analog Discovery 的橋臂測試設定。

結論

至此,我們得到了一個功能尚可但略顯有限的馬達控制器。利用 Arduino 的 PWM 訊號和 IR2110 MOSFET 驅動器,我們能夠控制橋臂中的高側 MOSFET。該方案的核心是一個巧妙的電路,其核心是一個電平轉換器和一個自舉電容,用於在 MOSFET 源極在接地和電源電壓之間切換時提供穩定的開關訊號。

雖然可能看起來並不明顯,但我們在理解高級馬達驅動方面已經取得了顯著進展。下一步,我們將使用兩個橋臂來建造一個 H 橋。這將實現有刷直流馬達的雙向速度控制。在此基礎上,只需稍作調整,即可產生用於無刷直流馬達的梯形波形驅動,或產生工業變頻器(VFD)用於百馬力感應馬達的三相正弦波形驅動。

請在下方留言區留下您的評論和問題。務必完成文末的問答題和批判性思考題,檢驗您的學習成果。

如果您從本文中有所收穫,請按讚。

敬請期待更多內容。

實用連結

請點擊以下連結以取得相關實用資訊:

問題

以下問題將有助於鞏固文章內容。

  1. 以常開開關取代半導體元件,繪製橋臂電路、H 橋電路和三相橋電路的原理圖。

  2. 什麼是 MOSFET 體二極體(反向二極體)?它在橋臂電路中何時導通?

  3. 描述橋臂電路中的直通現象。

  4. 為什麼在高工作頻率下直通現象更容易出現問題?

  5. 描述自舉電容的充電步驟。

  6. MOSFET 是電壓控制器零件,請用三個字以內解釋為什麼需要大電流驅動器。

  7. 為簡化起見,圖 2 的自舉充電電壓和主 MOSFET 電壓均設定為 15VDC。在不修改電路的情況下,可施加的最大電壓為何?提示:MOSFET 是限制因素。

  8. IR2110 的電平轉換電路有什麼作用?

  9. 假設負載為感性負載,電源為 75VDC,高側 MOSFET 的開關頻率為 10kHz,請繪製橋臂的輸出電壓波形。在同一張圖中,顯示施加在 IR2110 VB 引腳的升壓電壓波形。

  10. 解釋為什麼 IR2110 可以或不可以用作兩個獨立低側 MOSFET 的驅動器?例如,能否以 10kHz 的頻率驅動一個接地參考的 MOSFET,同時以 15kHz 的頻率驅動另一個接地參考的 MOSFET?提示:IR2110 內部是否有防止直通的內部電路?

  11. 描述如果系統發生故障導致 IR2110 VS 與橋式驅動器脫耦,會出現哪些症狀和預期故障。提示:您是否在系統故障排除過程中進行了故障分析?

  12. 請查閱 IR2110PBF 和 IRF520PBF 的 規格書。
    A) 每個元件的最大供電電壓是多少?
    B) 為了適應更高的電壓,需要對圖 2 進行哪些修改?
    C) 為系統的最大工作電壓選擇適當的自舉充電二極體(D1)。

批判性思考問題

這些批判性思考問題拓展了文章內容,幫助你從整體上理解材料及其與相關主題的關係。這些問題通常是開放式的,需要進行研究,最好以論文形式回答。

  1. 修改圖 2 的電路圖,使其使用 50VDC 電源供電。為了獲得滿分,請從 50VDC 電源導出所需的電壓。提示:為簡化電路,可使用線性穩壓器。

  2. 修改電路,使其以 100% 佔空比運作。為了獲得滿分,請從 50VDC 電源導出閘極電壓源。

  3. 尋找能夠切換 75A 電流的 N 通道 50VDC MOSFET 的規格書。
    A) DigiKey 的零件編號是多少?
    B) 輸入電容是多少?
    C) 假設驅動器的輸出阻抗為 50ohm,計算所得 RC 電路的時間常數。
    D) 假設導通時間必須是開關時間的 10 倍,佔空比設定為 50%,建議一個最大工作頻率。
    E) 重新計算阻抗為 5ohm 的驅動器。
    F) 基於這些計算結果,為涉及大電流和高開關速度的 PCB 設計提供建議。


原文作者: Aaron Dahlen | MSEE | Senior Applications Engineer, DigiKey