《 STC15 單片機實戰指南( C 語言版)》 一書以一堅科技研發的飛天三號( FSST15-V1.0)實驗板為硬件平臺, 以《 深入淺出玩轉 STC15 單片機》為配套視頻, 由清華大學出版社權威出版, 并且分別是 STC 官方大學計劃和高校高性能聯合實驗室推薦教程和視頻, 版權歸作者和清華大學出版社所有。
本資料以個人學習、 工作經驗以及宏晶科技單片機技術為素材, 以單片機初學者、單片機項目開發者為對象, 教大家如何走進單片機,繼而達到開發工程項目(如:四軸飛行器設計,多功能收音機等)為目的。 限于時間和水平關系,資料中難免有過失之處,望各位高手批評指教,多多拍磚,拍累了,你們休息,我繼續上路。
現已連載的方式免費共享于電子發燒友網,供單片機新手們參考學習,可以自由下載傳閱 ,但未經作者許可,不得用于任何商業目的, 轉載請注明出處。
作者 | 殘弈悟恩
編輯 | Garen
三極管的應用。無論在數字電路、還是模擬電路中,三極管的應用很普遍。概括的說, 在模擬電路中主要用于信號的放大,在數字電路中主要利用開關特性來控制、驅動別的器件。 這里主要講述在數字電路中的應用,三極管實物圖如圖 3-14 所示。
圖 3-14 三極管實物圖
3.4.1 三極管的基本開關電路
先來簡述一下三極管,三極管符號如圖 3-15 所示,三極管有三個級,分別是:基極(base)、 集電極(collector)、發射極(emitter),三極管又分為 NPN、PNP 兩種型號。
圖 3-15 三極管示意圖
三極管的應用主要借助三種狀態:放大、截止、飽和。關于放大的計算是很有學問,也是很復雜的,這里就不做說明了。便于讀者理解,可以分別將飽和、截止狀態看作是“開”、 “關”兩種狀態。那怎么是“開”,又怎么是“關”呢。這由 b 極和 e 極電壓決定。對于 NPN 型的,只要 b 極電壓比 e 極電壓大 0.7V,則三極管就“開”,否則就“關”;對于 PNP 型的,只要 e 極電壓比 b 極電壓大 0.7V,則三極管就“開”,否則就“關”;最后總結一句話:看 箭頭,箭尾比箭頭大 0.7V 則“開”,否則就“關”。低電平三極管導通(5V 比 0V 大 0.7V 吧),高電平三極管截止(5V 比 5V 沒有大 0.7 是吧?)。相反,若用 NPN 的三極管,b 極為高電平,則三極管導通;b 極為低電平則三極管截止。三極管的開關特性就說這么多,下面開始筆者 要講解的重頭戲,那就是與三極管捆綁在一起的這些電阻,看看這些電阻是隨便拉一個出來, 還是要靠計算的。
首先說明一點,圖 3-16 是殘弈悟恩為了講解專門畫了這樣一個圖,沒有什么實際意義, 因為不可能驅動一個 LED 就需要這么復雜的電路。
進入主題。圖 3-16 中為什么要用上(下)拉電阻? 答:上、下拉電阻的作用本身就是為電路提供一個穩定、可知的運行環境。如圖 3-16,
如“電平”端懸空,此時三極管的導通、截止狀態也就不確定了,如果加了上、下拉電阻,則該端的電平就是一個已知邏輯值,這是緣由一。
再看緣由二,假如沒有電阻 R02,且“電平”端用的不是 5V 單片機,而是用 3.3V 的單 片機來控制這個三極管,那么當“電平”端為高電平(3.3V)時,LED 小燈是亮還是滅呢? 設計者的目的是“滅”,那么達到預期目的了嗎?分析可知,此時管子還是導通的,因為 e 極(5V)比 b 極(3.3V)大 0.7V 啊,所以 LED 小燈毫無疑問還是亮。那如果此時別的什么 條件都不變,而在電路中加入電阻 R02,這樣,當“電平”端為高電平(3.3V)時,被上拉 電阻一拉,則 b 極的電壓就被拉到 5V 了,從而三極管就截止,LED 小燈也就滅了。若三極 管換成是 NPN 的,那 R01 這個下拉電路就同理了。若出于這個原因,當用 5V 的單片機,那就 沒必要加上、下拉電阻了。
如圖 3-16 所示的電阻 R03 用多大阻值的?
情況一,沒有上、下電阻,所用單片機為 5V。三極管截止的狀態(電平端口處為高電 平)這里就不看了,這里以導通(電平端口處為低電平)的情況為例來計算 R03 的阻值。“電 平”端為 OV,而 e 極為 5V,則滿足導通的壓降,三極管導通,且 eb 間壓降大概為 0.7V, 那還有(5-0.7)V 的電壓就會在電阻 R03 上。這個時候,e、c 之間也會導通,同時 LED 本身 壓降又是 2V 左右,三極管 e、c 之間大概有 0.2V 的壓降,這個可以忽略不計,這樣在 R00 上就會有大概 3V 的壓降,可以計算出來,這條支路的電流大概是 3mA,足足可以點亮 LED 小燈。
不是說算電阻 R03 嗎,怎么算到電流上來了,這時有根據的。前面講過,三極管有截止、 放大、飽和三個狀態,截止不用說了,只要 e、b 之間不導通即可。要讓三極管處于飽和狀 態,就是所謂的開關特性,必須滿足一個條件。大伙都知道,三極管有一個放大倍數β ,要 想處于飽和狀態,b 極電流就必須大于 e、c 之間電流值除以β 。這個β ,常用三極管的大 概是 100 左右,那么 R03 的電壓、電流已知了,歐姆定律讀者還不會啊。
上面算得 Iec 為 3mA,那么 b 極電流最小值就是 3mA÷100,即為 30μA,那么 R03MAX = 4.3V
÷ 30μA = 143 kΩ。只要 R03 比 143 kΩ 小就可以,那 1Ω行嗎?假如是 1Ω,則 b 極電流就 為 4.3A。可 STC15 系列單片機的 I/O 口承受電流的最大值是 25mA 啊,其實殘弈悟恩推薦最 好不要超過 10mA,因此 1Ω 果斷不行,所以殘弈悟恩一般用 1kΩ。
第二種情況,“電平”端口處高電平為 3.3V,且加了上拉電阻 R02,讀者能不能算出 R03
阻值的最大值呢?那就留給讀者算吧。
圖 3-16 三極管的驅動應用原理圖 圖 3-17 三極管的控制應用原理圖
最后一個問題,三極管的控制應用,那什么是控制呢?就是不同電壓之間的轉換,上面
已經提到過 3.3V 到 5V 的轉換,現在再來看看 5V 如何控制 12V 呢。其原理圖如圖 3-17 所示, 由三極管的開關特性可知,若 CON 端為低電平(0V),則三極管截止,OUT 端子就為 12V; CON 若為高電平則三極管導通,OUT 端子就為 0V。當然可以在此基礎之上變換出更多的控 制電路來。
3.4.2 開關三極管的使用誤區
在數字電路設計的中,往往需要把數字信號經過開關擴流器件來驅動一些蜂鳴器、LED、繼電器等需要較大電流的器件,用的最多的開關擴流器件要數三極管。然而在使用的過程中, 如果電路設計不當,三極管無法工作在正常的開關狀態,就達不到預期的目的,有時就是因 為這些小小的錯誤而導致重新打板,導致浪費。本人在這個方面就吃過虧,所以把自己使用 三極管的一些經驗以及一些常見的誤區給大家分享一下,在電路設計的過程中可以減少一些不必要的麻煩。
下面來看幾個三極管做開關的常用電路畫法。幾個例子都是蜂鳴器作為被驅動器件。圖 3-18(a)電路用的是 NPN 管,蜂鳴器接在三極管的集電極,驅動信號可以是常見的 3.3V 或者 5V TTL 電平,高電平開通,電阻按照經驗法可以取 4.7K。例如 a 電路,開通時假設為 高電平 5V,基極電流 Ib=(5V-0.7V) ÷4.7kΩ=0.9mA,可以使三極管完全飽和。b 電路用的是 PNP 管,同樣把蜂鳴器接在三極管的集電極,不同的是驅動信號是 5V 的 TTL 電平。以上這 兩個都可以正常工作,只要 PWM 驅動信號工作在合適的頻率,蜂鳴器(有源)都會發出最大 的聲音。
圖 3-18 所驅動器件接在三極管的集電極
圖 3-19 的這兩個電路相比圖3-18 來說,最 大的區別在于被驅動器件接在三極管的發射極。同樣看 c 電路,開通時假設為高電平 5V, 基極電流 Ib=(5V-0.7V-UL) ÷4.7kΩ,其中 UL 為被驅動器件上的壓降。可以看到,同樣取基 極電阻為 4.7K,流過的基極電流會比圖 3-18a 電路的要小,小多少要看 UL 是多少。如果 UL 比較大,那么相應的 Ib 就小,很有可能導致三極管無法工作在飽和狀態,使得被驅動器件 無法動作。有人會說把基極電阻減小就可以了呀,可是被驅動器件的壓降是很難獲知的,有些被驅動器件的壓降是變動的,這樣一來基極電阻就較難選擇合適的值,阻值選擇太大就會 驅動失敗,選擇太小,損耗又變大。所以,在非不得已的情況下,不建議選用 3-19 的這兩 種電路。
圖 3-19 所驅動器件接在三極管的發射極
我們再來看圖 3-20 這兩個電路。驅動信號為 3.3VTTL 電平,而被驅動器件開通電壓需 要 5V。在 3.3V 的 MCU 電路中,不小心的話很容易就設計出這兩種電路,而這兩種電路都是 錯誤的。先分析 e 電路,這是典型的“發射極正偏,集電極反偏”的放大電路,或者叫射極 輸出器。當 PWM 信號為 3.3V 時,三極管發射極電壓為 3.3V-0.7V = 2.6V,無法達到期望的 5V。圖 3-20f 電路也是一個很失敗的電路,首先這個電路開通是沒有問題的,當驅動信號為 低電平時,被驅動器件可以正常動作。然而這個電路是無法關斷的,當驅動信號 PWM 為 3.3V 高電平的時候,Ube = 5V - 3.3V = 1.7V 仍然可以使三極管開通,于是無法關斷。在這里, 有人會說用過這個電路,沒有問題啊,而且 MCU 的電壓也是 3.3V。我說你用的肯定是 OD(開 漏)驅動方式,而且是真正的 OD 或者是 5V 容忍的 OD,比如 STM32 的很多 IO 口都可以設置 為 5V 容忍的 OD 驅動方式(但是有些是不行的)。當驅動信號為 OD 門驅動方式時,輸出高電 平,信號就變成了高阻態,流過基極的電流為零,三極管可以有效關斷,這個時候 f 電路依然有效。
圖 3-20 驅動電壓和導通電壓不一樣
綜合以上幾種電路的情況分析,得到圖 3-21 這兩種個人認為是最優的驅動電路,與圖3-18 不同的是,圖 3-21 在基極與發射極之間多加了一個 100kΩ 的電阻,這個電阻也是有一 定作用的,可以讓三極管有一個已知的默認狀態。當輸入信號去除的時候,三極管還處于關 斷狀態。在安全和穩定的方面考慮,多加的這個電阻還是很有必要的,或者說可以讓三極管 工作在更好的開關狀態。
圖 3-21 三極管推薦型驅動電路
三極管作為開關器件,雖然驅動電路很簡單,要使電路工作更加穩定可靠,還是不能掉以輕心。為了不容易出錯,個人建議是優先采用圖 3-21 的電路,盡量不采用圖 3-19 的電路,避免使用圖 3-20 的工作狀況。
上期回顧:【連載11】二極管的應用概述 | 學單片機做四軸飛行器項目故事
下期預告:【連載13】MOS 管的應用概述 | 學單片機做四軸飛行器項目故事
華強聚豐擁有電子發燒友(百萬電子工程師社區平臺:www.elecfans.com)、華強PCB(多層線路板制造專家:www.hqpcb.com)、華強芯城(電子元器件及SMT在線商城:www.hqchip.com)三大主營業務,以互聯網信息技術改善傳統制造業,打通電子產業鏈上下游,形成服務于整個電子產業鏈的一站式服務平臺,為客戶降低成本,提升品質,加速進程。