事實上我使用 MOSFET 在馬達驅動的經驗比較多,BJT 倒是比較不熟悉一些,畢竟 MOSFET 的開關應用可以想得很無腦,搭配 GateDriver 後純粹當做一個理想開關來應用也無傷大雅,但 BJT 還要考慮在哪個工作區,就麻煩多了。(可參考 《進階※電子電路篇》寫程式Arduino教學 - 01:BJT電晶體 飽合區 截止區 到底該怎用? )
在使用 MOSFET 進行三相馬達控制的實作時,需要很注意的點就是絕對不能造成上下橋臂同時導通,否則會造成 電源/地 直通的短路狀況發生,實務上對付這個問題常常會提到 死區( dead-time) 這個專有名詞,但在此章並不是要探討這件事。
在使用 MOSFET 來當作三相橋臂使用時,也有考慮過電流限制的問題。但當時都是想著只要在電流環加上限制器,別讓電流命令超出 MOSFET 的額定電流就好,這樣的想法隱含了一件事,那就是「(假設電源端可以供應無窮大的電流)事實上這個 MOSFET 可以被我操作在超過額定電流的地方,只是可能會燒壞罷了」
由於上下橋臂導通會造成 電源/地 直通,瞬間通上數百安培的超大電流,故 MOSFET 這個原件在物理特性上,本來就沒有限制電流大小的功能存在。
而最近我在使用 L298N 這簡單的直流馬達驅動器時看了它的 datasheet ,知道它內部是兩組由 BJT 構成的 H 橋電路,並且 datasheet 中也有講到限制電流 2A 。我很直覺的就認為他說的是「假若我操作在超過 2A 的地方,頂多燒壞罷了」
後來因為某些因素,我看到了有人提到
「你這馬達額定電流要 4A ,所以不轉是因為 L298N 的供應電流不足啦,就算你電源端可以供應足夠的電流也沒用」
我當下覺得納悶,哪有這種事? 開關導通視同短路阿,就等於電源端直接接在直流馬達上,怎麼還會有電源可以供應足夠電流,但是 L298N 不行這種事發生
後來我仔細想了一下,原來我以前一直沒注意到的是 MOSFET 跟 BJT 用在 H 橋,對於供應電流的差異。
我將兩個元件以相同的架構組成,之所以這樣模擬是因為當 MOSFET 電源/地 直通時會流過很大的短路電流,意謂著只要我想要, MOSFET 要流過多大的電流都行。
那如果 BJT 也有很大的短路電流發生,不就間接證明了只要我想要, BJT 要流過多大的電流都行? 試圖破除
「你這馬達額定電流要 4A ,所以不轉是因為 L298N 的供應電流不足啦,就算你電源端可以供應足夠的電流也沒用」 這樣的敘述
結果如上圖,MOSFET 的確出現短路電流,但 BJT 的電流卻卡在 15.15 A 左右。
此時我突然想到 .... BJT 本身除了是一個流控元件外,其輸出還可以等效成一個電流源,也就是說 Ic 受限於 Ib 以及 beta 的大小,其 VCE 會自動進行變動(也就是 Q工作點 的變動),我上述這樣的模擬就只是讓 BJT 從我設想的飽和區跳回工作放大區而已。而 MOSFET 是壓控元件,其 VDS 近似為零
PS : 雖然 BJT 不會這樣子通過超大的短路電流,但仍然需要考慮到功率的問題,以上述的例子來說,VCC = 100V 的情況配上 Ic = 15.15A ,我想這 BJT 也是直接燒壞的。