使用 NPN Darlington 電晶體透過 3.3VDC 微控制器驅動高功率繼電器

將微控制器連接到高功率負載是一項設計挑戰。對於本文介紹的 Arduino Nano 33 IoT(如圖 1 所示)等 3.3VDC 微控制器而言,尤其如此。通常,這些新型高性能 32bit 微控制器的性能不如其 5VDC 的同類產品。例如,Nano 33 IoT 的每個引腳電流限制為 7mA,而 Arduino Nano Every 的每個引腳可提供 15mA 的電流。電流降低,再加上電壓降低,需要特別注意。許多教程中介紹的簡單 NPN 電晶體繼電器驅動器已不再適用。

本篇工程師簡報是介紹如何將繼電器線圈與微控制器連接的系列文章之一。本文重點介紹達林頓(Darlington)電晶體解決方案。Darlington 電晶體具有高增益,能夠很好地匹配 3.3VDC 的微控制器和 24VDC、250mA 的繼電器線圈。在本應用中,標稱基極驅動電壓為 1.4VDC。選擇基極電阻時,需確保基極電流為 Darlington 電晶體集電極電流的 1/100。最終結果完全在 Arduino 微控制器的安全容限範圍內。

如果您還沒有這樣做,我們鼓勵您閱讀這些文章。

MOSFET 文章重點討論了 3.3VDC 微控制器的電壓限制以及使用 MOSFET 驅動大型接觸器的困難點。第二篇文章探討了瞬態電壓抑制器 (TVS) 二極管,例如圖 1 所示的 Schneider Electric LCD09BD 三相接觸器中使用的整合式 LAD4TBDL。

圖 1:Arduino Nano 33 IoT 微控制器的原型,透過 BDX33C Darlington 電晶體驅動 Schneider LC1D09BD 接觸器。

技術提示:基於瞬態電壓抑制器 (TVS) 的反激二極體是縮短繼電器斷電時間的有效方法。這對於驅動三相馬達的大型接觸器(例如圖 1 所示的 Schneider 設備)尤其重要。這款簡單的 TVS 二極體可以增強接點斷開的迅捷性和力度,確保接點電弧快速熄滅,從而延長接點壽命。此外,它還能提供更高的保護級別,尤其是當觸點在故障情況下斷開時。如本文所述,使用 TVS 會帶來一定的成本,因為驅動半導體必須承受更高的箝位電壓。

如何確保 Darlington 電晶體對完全飽和?

在本應用中,Darlington 電晶體用作開關,控制繼電器線圈的通斷。必須確保電晶體完全導通,以防止其在線性範圍內工作。如果沒有飽和狀態,電晶體會消耗大量功率。更糟的是,繼電器/接觸器可能無法激活或間歇性激活,導致整個設備故障。確保飽和狀態的一種方法是使電晶體工作在強制 beta 狀態下。

什麼是強制 beta?

強制 beta 是一種工作模式,它強制電晶體進入深度飽和狀態。在這種模式下,電路參數的選擇並非使用電晶體的自然(線性)增益,而是透過降低直流電流增益來實現。保守的設計者會選擇適當的元件,使基極電流為集極電流的 1/10。對於 Darlington 對,基極電流則設定為集電極電流的1/100。這裡,我們假設驅動電路和 Darlington 輸出電路的增益係數均為 10。

我們開始進行電路計算,知道 Schneider 接觸器在由 24VDC 電源驅動時具有大約 250mA 的電流。假設 Darlington 對的強制 beta 條件,我們注意到基極電流約為 2.5mA。知道 Arduino 具有 3.3VDC 輸出,我們計算 Darlington 基極電阻為:

R = \dfrac{3.3 – (2 * 0.7)}{0.0025} \approx 750\Omega

假設每個電晶體的 V_{BE} 壓降為 0.7VDC。我們選擇 E24 系列中最接近的 750ohm 型號。

技術提示:I_B = I_C/10 是強制 beta 條件的保守定義。這裡的「強制」指的是所有工作條件和溫度下,電晶體都被驅動到飽和狀態。實際上,我們透過選擇與給定負載電流相符的基極電阻來設定強制 beta 條件。

對於某些設計,10 的值可能過於進取。 20 甚至 50 的值可能更合適。為了獲得最佳能效,請務必測試您的設計並選擇可用但保守的強制值。但是,請記住,電晶體的直流電流增益並非可控參數。務必考慮其自然波動。這可以避免您因一批電晶體的效能超出預期而不得不重工PCB 的麻煩。

產生的原理圖如圖 2 所示。觀察 Arduino 和 24VDC 迴路共享一個公共接地。Darlington 電晶體處於流入(sinking)配置(共射極)。另請注意,TVS 二極體用於箝位繼電器的返馳電壓。

圖 2:Arduino 和 Schneider 接觸器之間的 BDX33CDarlington 電晶體介面示意圖。

如何確保 Darlington 電晶體能夠承受返馳電壓?

本工程簡報重點在於 Schneider LC1D09BD 接觸器。此接觸器配備一個 48VDC 的 TVS 二極體來「捕獲」返馳電壓。圖 2 所示電路的波形如圖 3 所示。其中,通道 1(橘色)顯示來自 Arduino 的 3.3VDC 驅動電壓。通道 2(藍色)顯示 Darlington 兩端的電壓。我們可以透過觀察 72VDC 的電平來推導出 TVS 二極體的箝位電壓。需要注意的是,TVS 二極體的箝位電壓是相對於 24VDC 電源軌的:24 + 48 = 72VDC。

技術提示:選擇 Schneider LC1D09BD 作為一項具有挑戰性的設計。它具有中等高的線圈電流,並且整合的 TVS 二極體對 Darlington 電晶體施加了更高的電壓應力。我們當然可以透過使用傳統二極體來代替 TVS 二極體來減少這種壓力。由此產生的箝位電壓將比 24VDC 軌高出一個二極體壓降。然而,繼電器/接觸器的關斷時間會顯著增加。由此導致的運作緩慢會降低系統可靠性。


圖 3:繼電器線圈停用波形,其中通道 1(橘色)顯示來自 Arduino 的 3.3VDC 驅動,通道 2(藍色)顯示測量到 Darlington 兩端的 V_{CE} 電壓。

結語

Schneider 接觸器及其 TVS 二極體對微控制器來說是一個具有挑戰性的負載。它的線圈電流適中,但經 TVS 二極體箝位後產生的感應回流電壓(返馳電壓)較高。BDX33C Darlington 與 3.3V直流 Arduino 提供了良好的介面。

您是否同意選擇 TO-220 封裝的裝置?這種設計是否過於保守?如果是,您會選擇哪種裝置?請在下方留言。此外,請務必回答本文末尾的問題和挑戰題,以擴展您的知識。

問題:

  1. 描述強制 beta 條件在單一電晶體和 Darlington 對的應用。

  2. 考慮到 Arduino Nano 33 IoT 每個引腳 7mA 的電流限制,在強制 beta 條件下,Darlington 能夠驅動的最大連續電流是多少?

  3. 本文介紹的 Darlington 電路能否驅動直流馬達?如果可以,請說明其工作參數。提示:不要忘記提及馬達的動態特性,包括湧入電流(失速電流)。

  4. 什麼是返馳電壓?

  5. 描述飽和電晶體的 V_{BE} 和 V_{CE} 電壓。

  6. 為什麼 48VDC 的 TVS 會產生 72VDC 的接地參考尖波?

  7. 如果 TVS 二極體被意外地替換成普通二極體會發生什麼?為了獲得滿分,請指出系統層面的複雜情況。

  8. 研究「灌電流」一詞在工業可編程邏輯控制器 (PLC) 輸出中的應用。定義該術語,並繪製包含 PLC、電源、繼電器線圈和返馳式二極體的電路圖。為便於理解,假設使用傳統的(單向)二極體,而非雙向 TVS 二極體。

  9. 假設我們將 TVS 二極體的箝位電壓改為 75VDC。BDX33C 是否仍然適用?提示:可接受的安全裕度是多少?

  10. 使用 DigiKey 搜尋工具尋找 BDX33C Darlington 對的表面黏著等效元件。

  11. 對比電晶體的線性工作點和強制 beta 工作點。提示:考慮電晶體線性放大器和電晶體數位開關。

  12. Arduino Nano Every 具有 5VDC I/O 和每腳 15mA 的電流能力,能否透過單一電晶體(例如 TIP31CG)驅動 Schneider LC1D09BD 接觸器?提示:說明您的設計參數和安全裕量。

批判性思考題

  1. 電晶體的直流增益並非一個易於控制的參數,尤其是在考慮批次間甚至單一電晶體時。這事實與強制 beta 工作點有何關係?它如何影響您選擇 10、20 或 50 倍的系數?提示:可接受的安全裕度是多少?

  2. 我們有時會遇到輸入/輸出電壓為 1.8VDC 甚至 1.2VDC 的微控制器和現場可程式閘陣列 (FPGA) 邏輯電路。基於 Darlington 的解決方案是否適用於低電壓邏輯電路?如果不行,請提供驅動 Schneider LC1D09BD 接觸器的 1.2VDC 邏輯電路原理圖。

  3. Arduino、驅動電晶體和 24V 直流電源共用一個接地線。為什麼這樣做不好?請設計一個光隔離的電路圖來驅動 Schneider LC1D09BD 接觸器。作為設計挑戰,請使用 IF-E10 光纖套件代替光耦合器。


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