)
很多剛接觸模擬電路的朋友一聽到比較器三個字第一反應就是去翻LM393或者LM358的datasheet覺得專用芯片才是正道。但我在實際做小功率電源管理、電池低壓告警、光控開關這類項目時手邊經常沒有合適的比較器芯片反倒是IRF540N、2N7002這類MOS管一抓一大把。用MOS管搭一個簡易電壓比較器成本不到兩毛錢響應速度還夠用理解起來也比運放更直觀——你能親眼看到柵極電壓越過閾值的那一刻漏極電平啪地翻轉。這篇文章就是把我自己反復搭過、燒過、調過的MOS管比較器方案完整拆開講。從最基礎的共源極反相器怎么變成比較器到實際電路中必須處理的閾值離散性、輸入電壓范圍、輸出驅動能力再到讓輸出不抖的遲滯電路設計最后給出可以直接照著焊的電路圖和元件參數。不管你是電子專業(yè)的學生想做課程設計還是DIY愛好者想給自己的小裝置加一個電壓監(jiān)測功能這套方案都能直接落地。1. 為什么用MOS管做比較器而不是直接上LM3931.1 專用比較器芯片和MOS管方案的適用邊界先說清楚一件事LM393這類專用比較器芯片確實是正規(guī)軍。它有明確的失調電壓指標典型2mV、推挽或開集輸出、寬電源范圍而且內部做了溫度補償。如果你要做精密測量、高速比較微秒級以下、或者輸入信號只有幾毫伏的差異那老老實實用LM393別折騰MOS管。但很多實際場景根本不需要那么高的精度。比如12V電池降到10.5V時點亮一個LED告警光敏電阻分壓超過某個值時繼電器吸合超級電容充電到5V時切斷充電回路這些場景的共同特點是判斷閾值是伏特級別的對比較精度要求不高但要求電路簡單、成本低、手邊元件就能搭。這時候用MOS管做比較器就非常合適。我做過一個粗略的對比方便你判斷該選哪條路對比維度LM393專用比較器MOS管簡易比較器單路成本約0.5~1元約0.1~0.3元失調電壓典型2mV幾十mV到幾百mV響應時間約1.3微秒約幾十納秒到微秒級輸出驅動開集可灌20mA取決于MOS管IRF540N可到數安培閾值可調性外接分壓即可外接分壓即可輸入阻抗極高極高柵極幾乎不吃電流電路復雜度需要上拉電阻、可能需遲滯同樣需要但更直觀從表里能看出來MOS管方案輸在精度贏在成本和驅動能力。特別是IRF540N這種功率MOS管輸出端直接帶繼電器、帶LED、甚至帶小電機都沒問題不需要額外的驅動級。這是LM393做不到的——LM393輸出只有20mA灌電流能力帶個繼電器還得再加三極管。1.2 MOS管做比較器的本質把共源極放大器推到極端要理解MOS管怎么當比較器用得先回到最基礎的共源極放大電路。一個N溝道增強型MOS管比如IRF540N源極接地漏極通過一個電阻Rd接到電源Vcc柵極接輸入信號。當柵極電壓Vgs低于閾值電壓Vth時MOS管截止漏極沒有電流輸出電壓等于Vcc。當Vgs高于Vth時MOS管導通漏極電流增大漏極電壓下降。在放大器應用里我們給柵極加一個直流偏置讓MOS管工作在飽和區(qū)這樣輸入的小信號變化會引起漏極電流的線性變化從而實現(xiàn)放大。但比較器要的不是線性放大而是**要么全開要么全關的開關行為**。所以做比較器的關鍵操作是不給偏置或者把偏置設在閾值附近讓輸入信號一越過閾值MOS管就從截止區(qū)直接沖到深線性區(qū)或飽和區(qū)邊緣漏極電壓發(fā)生大幅度跳變。這個跳變就是比較器的輸出。用生活化的類比放大器像是把一個小聲音用麥克風慢慢放大比較器像是門衛(wèi)——你身高超過1米2就放行沒超過就攔住中間沒有放大的過程只有過和不過兩個狀態(tài)。IRF540N的Vth典型值是2~4Vdatasheet標稱范圍這意味著當柵極電壓從0V慢慢升高大約到3V左右時漏極電壓會開始明顯下降。這個開始明顯下降的點就是我們的比較閾值。但注意這個閾值是不精確的因為Vth本身有離散性而且隨溫度變化。這就是為什么MOS管比較器只適合粗判斷場景。2. 從零搭一個共源極MOS管比較器2.1 元件清單和選型理由先把手邊要用的東西列清楚。我以IRF540N為例因為這是最容易買到的N溝道功率MOS管之一TO-220封裝便宜耐壓100V電流33A拿來當比較器屬于大炮打蚊子但勝在手邊就有。需要的元件IRF540N× 1N溝道MOS管Vth約2~4V電阻 10kΩ× 2一個做漏極負載Rd一個做柵極分壓的上臂電阻 10kΩ電位器× 1做閾值調節(jié)或者用兩個固定電阻分壓電阻 1kΩ× 1柵極串聯(lián)保護電阻可選但建議加LED× 1做輸出指示電阻 330Ω× 1LED限流電源 12V× 1Vcc選IRF540N的理由很簡單Vth在2~4V之間用12V供電時柵極分壓很容易做到讓閾值落在中間。而且它的輸入電容Ciss大約1800pF不算太大響應速度夠用。如果你手邊只有2N7002這種小信號MOS管Vth在1~2.5V也完全可以只是輸出驅動能力弱一些帶LED沒問題帶繼電器就要看電流了。漏極負載電阻Rd選10kΩ這個值決定了輸出高電平的上升沿速度。Rd越大輸出高電平越接近Vcc但上升沿越慢因為要跟MOS管的輸出電容和負載電容充電。10kΩ在12V下輸出高電平電流只有1.2mA帶LED需要另外從輸出端取電流或者把Rd減小到1kΩ。我這里先用10kΩ講原理后面再講驅動能力的問題。2.2 電路連接一步一步來電路結構其實非常簡單就是共源極反相器加一個輸入分壓網絡。第一步接MOS管的基本回路。IRF540N的引腳排列正面朝自己、引腳朝下時從左到右是柵極G、漏極D、源極S。把源極直接接地。漏極通過10kΩ電阻Rd接到12V電源正極。這個10kΩ就是漏極負載。第二步接輸入分壓網絡。用一個10kΩ電位器兩端分別接12V和地中間抽頭通過一個1kΩ電阻接到MOS管柵極。這個1kΩ是柵極串聯(lián)電阻作用是限制柵極充電電流、抑制可能的振蕩。雖然比較器應用里振蕩不常見但加上沒壞處。第三步接輸出指示。從漏極引出一根線通過330Ω限流電阻接LED正極LED負極接地。注意當MOS管導通時漏極電壓被拉低到接近0VLED不亮當MOS管截止時漏極電壓接近12VLED亮。所以這個電路的邏輯是輸入電壓越高輸出越低LED滅是反相邏輯。第四步上電測試。先把電位器調到最低柵極電壓0V此時MOS管截止漏極應該是12VLED亮。然后慢慢調高電位器觀察LED在某個位置突然熄滅。那個位置對應的柵極電壓就是IRF540N的實際閾值電壓。我實測過幾顆IRF540N這個翻轉點大概在2.8V到3.5V之間個體差異明顯。注意第一次上電時建議用可調電源限流在100mA以內防止接錯線導致MOS管直接導通燒毀。IRF540N雖然耐流大但柵極如果被靜電擊穿或者漏極負載接錯也可能損壞。2.3 實測波形和翻轉特性用示波器看這個電路的翻轉過程很有意思。我在柵極加一個1kHz、幅度0~5V的三角波漏極接示波器探頭能看到這樣的波形當柵極電壓從0V上升在到達約3V之前漏極電壓一直保持在12V附近。到達3V左右時漏極電壓開始快速下降在柵極電壓約3.2V時漏極已經降到1V以下。繼續(xù)升高柵極電壓漏極電壓基本維持在0.1~0.3V這是MOS管導通電阻Rds(on)乘以漏極電流的結果IRF540N的Rds(on)約44mΩ10kΩ負載下電流1.2mA壓降只有0.05mV可以忽略。下降沿的過渡區(qū)大約只有0.2~0.3V寬也就是說輸入電壓變化0.3V輸出就從高電平翻到低電平。這個過渡區(qū)越窄比較器越干脆。過渡區(qū)寬度主要由MOS管的跨導gm決定gm越大過渡區(qū)越窄。IRF540N的gm在3A時約20S在小電流下會小一些但依然足夠讓過渡區(qū)很窄。但這里有個問題過渡區(qū)窄是好事但閾值不精確是壞事。因為Vth的離散性你焊兩塊板子一塊可能在2.8V翻轉另一塊在3.5V翻轉。如果應用要求閾值一致就必須加調節(jié)手段或者換用帶遲滯的電路。3. 讓輸出不抖遲滯電路的設計與計算3.1 為什么沒有遲滯會比較器輸出會抖這是MOS管比較器最容易踩的坑。假設你的輸入信號是一個緩慢變化的電壓比如電池放電曲線從12V慢慢降到10V。當輸入電壓正好在閾值附近時任何微小的噪聲——電源紋波、空間干擾、甚至熱噪聲——都會讓輸入電壓在閾值上下反復穿越。結果就是輸出端LED瘋狂閃爍繼電器噠噠噠響個不停。這個現(xiàn)象叫抖動chattering根源在于比較器只有一個閾值。輸入電壓在閾值附近時輸出在高低之間反復跳變而輸出的跳變又可能通過電源耦合回輸入端形成正反饋式的振蕩。解決方法是引入遲滯hysteresis也就是讓比較器有兩個閾值一個上閾值VTH和一個下閾值VTH-。輸入電壓從低往高升必須超過VTH輸出才翻轉輸入電壓從高往低降必須低于VTH-輸出才翻回去。兩個閾值之間的差值叫遲滯寬度Vhys。用生活類比普通比較器像一扇沒有彈簧的門你在門縫位置來回晃門就來回開合。遲滯比較器像裝了彈簧的門推開需要一定力氣關上也需要一定力氣中間有個死區(qū)小晃動不會讓門動。3.2 用正反饋電阻實現(xiàn)遲滯在MOS管比較器里加遲滯最常用的方法是從輸出端引一個電阻回到輸入端形成正反饋。具體接法在柵極和漏極之間接一個電阻Rf同時在柵極和輸入分壓點之間保留原來的連接。這樣當漏極電壓變化時會通過Rf影響柵極電壓從而改變閾值。計算遲滯寬度需要用到疊加原理。設輸入分壓網絡在柵極產生的電壓為Vin即沒有Rf時的柵極電壓漏極電壓為VoutRf連接在柵極和漏極之間柵極到地的等效電阻為Rg由輸入分壓網絡決定。當Vout為高電平接近Vcc時Rf會把柵極電壓往上拉等效于上閾值VTH升高。當Vout為低電平接近0V時Rf會把柵極電壓往下拉等效于下閾值VTH-降低。遲滯寬度近似為Vhys ≈ (Vcc × Rg) / (Rf Rg)這個公式是近似值因為MOS管翻轉過程中Vout不是瞬間跳變的。但對于設計來說足夠用了。舉個例子Vcc12V輸入分壓網絡用兩個10kΩ電阻分壓所以Rg≈5kΩ兩個10kΩ并聯(lián)。想要遲滯寬度約0.5V代入公式0.5V ≈ (12V × 5kΩ) / (Rf 5kΩ)解得Rf 5kΩ ≈ 120kΩ所以Rf ≈ 115kΩ。取標準值120kΩ。實際搭出來遲滯寬度大概在0.4~0.6V之間跟計算值接近。這個遲滯寬度對于電池低壓告警來說剛好——電池電壓在閾值附近波動0.5V以內不會導致輸出抖動超過0.5V才翻轉。提示Rf不能太小否則遲滯寬度過大比較器會變得遲鈍輸入電壓變化很大才能翻轉。一般遲滯寬度取閾值電壓的5%~10%比較合適。比如閾值3V遲滯寬度取0.15~0.3V。3.3 遲滯電路的實測效果對比我專門做了一組對比實驗。輸入信號是一個疊加了100mV峰峰值噪聲的緩慢三角波頻率1Hz幅度0~5V。沒有遲滯時輸出端LED在輸入電壓接近3V時開始閃爍閃爍持續(xù)了大約0.3秒對應輸入電壓變化0.3V的范圍示波器上能看到輸出在高低之間跳變了十幾次。加了120kΩ正反饋電阻后輸出只在輸入電壓超過3.2V時翻轉一次然后在輸入電壓降到2.7V時翻回去中間0.5V范圍內輸出穩(wěn)定沒有抖動。LED要么亮要么滅沒有閃爍。這個對比說明遲滯電路是必須的。沒有遲滯的比較器在實際應用中基本不可用除非你的輸入信號非常干凈、變化非??毂热鐢底中盘枴?. 提升驅動能力從帶LED到帶繼電器4.1 漏極負載電阻的選擇邏輯前面用的10kΩ漏極負載輸出高電平時只能提供1.2mA電流帶LED都勉強LED需要5~10mA。要提升驅動能力最直接的方法是減小Rd。但減小Rd會帶來兩個問題問題一輸出低電平抬高。當MOS管導通時漏極電壓等于Rds(on) × Id。Id Vcc / Rd忽略Rds(on)。如果Rd1kΩId12mA漏極電壓44mΩ × 12mA ≈ 0.5mV依然很低沒問題。但如果Rd100ΩId120mA漏極電壓44mΩ × 120mA ≈ 5.3mV還是低。IRF540N的Rds(on)很小所以這個問題不嚴重。問題二功耗增加。當MOS管導通時Rd上的功耗是Vcc2/Rd。Rd10kΩ時功耗14.4mWRd1kΩ時功耗144mWRd100Ω時功耗1.44W。所以Rd不能無限減小要選功率足夠的電阻。1kΩ用1/4W電阻沒問題100Ω就要用2W以上的電阻了。對于帶繼電器一般繼電器線圈需要50~100mA電流。如果直接用漏極驅動Rd取100Ω導通時功耗1.44W截止時繼電器線圈兩端電壓接近12V可以吸合。但更穩(wěn)妥的做法是用MOS管直接驅動繼電器繼電器接在漏極和Vcc之間而不是用Rd做負載。4.2 繼電器接在漏極回路的具體接法把繼電器線圈一端接Vcc另一端接MOS管漏極。MOS管源極接地。這樣當MOS管導通時繼電器線圈通電吸合MOS管截止時繼電器釋放。但繼電器線圈是感性負載斷開瞬間會產生反向電動勢可能擊穿MOS管。所以必須在繼電器線圈兩端反向并聯(lián)一個續(xù)流二極管比如1N4007二極管負極接Vcc正極接漏極。這樣斷開瞬間線圈電流通過二極管續(xù)流不會產生高壓。這個接法下MOS管漏極不需要額外的負載電阻。但要注意繼電器線圈的直流電阻決定了導通電流。比如一個12V繼電器線圈電阻400Ω導通電流30mAIRF540N的Rds(on)壓降只有1.3mV完全可以忽略。注意如果繼電器線圈電流較大超過1AIRF540N需要加散熱片。雖然Rds(on)只有44mΩ但1A電流下功耗也有44mWTO-220封裝不加散熱片也能承受但留有余量更穩(wěn)妥。4.3 輸出邏輯取反的兩種方法前面說過共源極電路的輸出是反相的輸入高輸出低。但有些應用需要同相邏輯輸入高輸出也高。有兩種方法實現(xiàn)同相輸出。方法一用P溝道MOS管。把P溝道MOS管比如IRF9540N的源極接Vcc漏極通過負載電阻接地柵極接輸入。當輸入低時P溝道MOS管導通漏極輸出高輸入高時P溝道MOS管截止漏極輸出低。這樣就是同相邏輯。但P溝道MOS管的Vth是負值輸入分壓網絡要重新設計。方法二加一級反相器。在N溝道MOS管輸出后面再加一個N溝道MOS管反相級或者用一個三極管反相。這樣兩級反相就是同相。但電路復雜一些延遲也增加。我一般用方法一因為P溝道MOS管也不貴而且一級搞定延遲小。但要注意P溝道MOS管的導通電阻通常比N溝道大選型時要看Rds(on)是否滿足負載要求。5. 實際搭建中的坑與排查思路5.1 柵極電壓上不去分壓電阻取值過大我第一次搭這個電路時用了一個1MΩ電位器做分壓結果發(fā)現(xiàn)無論怎么調MOS管都不翻轉。用萬用表量柵極電壓發(fā)現(xiàn)只有0.5V左右遠低于預期。排查過程先量電位器兩端電壓12V正常。再量中間抽頭對地電壓發(fā)現(xiàn)只有0.5V。斷開柵極連接再量抽頭電壓恢復正??梢哉{到0~12V。說明問題出在柵極上。原因MOS管柵極雖然直流輸入阻抗極高約10^15Ω但柵極有輸入電容IRF540N約1800pF。當電位器阻值很大時柵極充電時間常數R×C很大。如果電位器調到中間等效源阻抗約250kΩ充電時間常數250kΩ×1800pF450微秒。如果輸入電壓變化較快柵極電壓跟不上就會表現(xiàn)為上不去。解決方法把分壓電阻減小到10kΩ級別。10kΩ×1800pF18納秒完全跟得上。所以分壓網絡用10kΩ電位器或兩個10kΩ固定電阻不要用1MΩ。5.2 輸出翻轉但LED不亮漏極負載和LED接法沖突有一次我為了省一個電阻把LED直接接在漏極和地之間沒有限流電阻。結果MOS管截止時漏極12V直接加在LED上LED瞬間燒毀。后來改成漏極通過330Ω接LEDLED另一端接地。但發(fā)現(xiàn)LED亮度很低因為10kΩ漏極負載只能提供1.2mA而LED需要5mA以上才夠亮。解決方法要么減小漏極負載電阻到1kΩ此時漏極電流12mALED可以亮要么把LED接在Vcc和漏極之間這樣MOS管導通時LED亮邏輯反過來。我一般用1kΩ漏極負載兼顧輸出電平和LED驅動。5.3 遲滯電阻接上后閾值偏移過大加遲滯電阻Rf后發(fā)現(xiàn)翻轉閾值比不加時偏移了很多。比如原來3V翻轉加了120kΩ后變成3.8V翻轉。原因Rf不僅提供正反饋還改變了柵極的直流偏置。因為Rf連接在漏極和柵極之間當漏極是高電平時Rf相當于一個上拉電阻把柵極電壓往上拉。這個上拉作用在輸入分壓網絡的基礎上疊加導致閾值升高。解決方法重新計算分壓網絡把閾值調回來?;蛘甙裄f接到源極而不是漏極但那樣就是負反饋沒有遲滯效果。正確的做法是接受這個偏移在設計分壓網絡時就把Rf的影響考慮進去。具體計算可以用節(jié)點電壓法把Rf和分壓網絡一起解方程。我一般先用近似公式算出Rf然后實際搭出來測閾值再微調分壓電阻。這個過程需要一點耐心但比反復計算快。5.4 電源噪聲導致誤翻轉有一次用開關電源給電路供電發(fā)現(xiàn)輸出在輸入電壓遠離閾值時也會偶爾翻轉。用示波器看電源紋波發(fā)現(xiàn)有200mV峰峰值的開關噪聲。原因開關噪聲通過電源耦合到柵極分壓網絡導致柵極電壓波動。如果波動幅度超過遲滯寬度就會誤翻轉。解決方法在電源端加一個100μF電解電容和一個100nF陶瓷電容并聯(lián)濾波。如果噪聲還是大在柵極分壓點對地加一個100nF電容濾掉高頻噪聲。但注意這個電容不能太大否則會減慢輸入響應速度。6. 完整電路圖與元件參數匯總6.1 最終電路連接說明經過上面幾輪的調整最終可用的MOS管電壓比較器電路如下電源部分12V直流電源正極接Vcc負極接地。在Vcc和地之間并聯(lián)100μF電解電容和100nF陶瓷電容各一個。輸入分壓部分10kΩ電位器兩端分別接Vcc和地中間抽頭通過1kΩ電阻接MOS管柵極。柵極對地接100nF電容可選用于濾高頻噪聲。MOS管部分IRF540N源極接地漏極通過1kΩ電阻Rd接Vcc。柵極和漏極之間接120kΩ電阻Rf遲滯反饋。輸出指示部分漏極通過330Ω電阻接LED正極LED負極接地。當MOS管截止時漏極接近12VLED亮MOS管導通時漏極接近0VLED滅。邏輯關系輸入電壓電位器抽頭電壓升高到超過上閾值時MOS管導通LED滅輸入電壓降低到低于下閾值時MOS管截止LED亮。上閾值約3.2V下閾值約2.7V遲滯寬度約0.5V。6.2 關鍵參數計算表參數數值計算依據漏極負載Rd1kΩ兼顧輸出電平和LED驅動電流12mA柵極串聯(lián)電阻Rg1kΩ限制柵極充電電流抑制振蕩遲滯反饋電阻Rf120kΩVhys≈(12V×5kΩ)/(120kΩ5kΩ)≈0.48V輸入分壓電阻10kΩ電位器保證柵極充電時間常數20nsLED限流電阻330Ω(12V-2V)/330Ω≈30mA實際因Rd分壓約10mA濾波電容100μF100nF濾除電源低頻和高頻噪聲6.3 不同MOS管的替換方案如果你手邊沒有IRF540N可以用其他N溝道MOS管替換但要注意Vth和Rds(on)的差異MOS管型號Vth范圍Rds(on)適用場景IRF540N2~4V44mΩ通用驅動能力強2N70021~2.5V1.2Ω小信號帶LED足夠IRFZ44N2~4V17.5mΩ大電流帶繼電器AO34000.5~1.5V28mΩ低壓應用Vth低IRLZ44N1~2V22mΩ邏輯電平適合3.3V/5V系統(tǒng)替換時要注意Vth越低閾值電壓越低分壓網絡要相應調整。比如用AO3400Vth只有1V左右閾值可能設在1.5V分壓電阻要重新算。Rds(on)越大導通時漏極電壓越高輸出低電平不夠低但一般帶LED沒問題。7. 這個電路還能怎么擴展7.1 加一個三極管做輸出緩沖如果覺得MOS管漏極直接帶負載會影響比較器性能負載電流變化會通過Rds(on)影響漏極電壓可以在漏極后面加一個射極跟隨器NPN三極管比如2N3904基極接漏極集電極接Vcc發(fā)射極通過負載電阻接地。這樣負載電流由三極管提供MOS管漏極只驅動三極管基極負載對比較器的影響大大減小。這個緩沖級對于驅動繼電器特別有用因為繼電器線圈電流較大直接接漏極雖然也能工作但繼電器吸合瞬間的電流沖擊可能通過電源耦合回輸入端。加一級緩沖后隔離效果更好。7.2 用兩個MOS管做窗口比較器窗口比較器是判斷輸入電壓是否在兩個閾值之間。用兩個MOS管比較器可以搭出來一個比較器設上閾值一個設下閾值兩個輸出通過邏輯組合比如兩個LED指示輸入電壓是否在窗口內。具體接法第一個MOS管比較器的閾值設在上限第二個設在下限。當輸入電壓高于上限時第一個輸出翻轉低于下限時第二個輸出翻轉。兩個都不翻轉時說明輸入在窗口內。這個電路可以用于電池過壓和欠壓同時監(jiān)測。7.3 把輸出接到單片機做電壓監(jiān)測MOS管比較器的輸出是數字電平高或低可以直接接到單片機的GPIO引腳。但要注意電平匹配如果單片機是3.3V系統(tǒng)而比較器輸出是12V需要加一個分壓電阻或者電平轉換電路否則會燒單片機引腳。我一般用兩個電阻分壓漏極通過10kΩ接單片機引腳引腳再通過20kΩ接地。這樣12V輸出被分壓到4V左右3.3V單片機勉強能識別為高電平但不太保險。更穩(wěn)妥的做法是用一個3.3V穩(wěn)壓二極管鉗位或者用光耦隔離。如果單片機是5V系統(tǒng)直接接就行5V系統(tǒng)一般能耐受12V輸入但最好還是分壓。這個MOS管比較器我前后搭過七八個版本從最初的一上電就燒管子到后來能穩(wěn)定驅動繼電器中間踩的坑基本都寫在上面了。最深的體會是MOS管比較器的精度雖然不如專用芯片但它的驅動能力和直觀性是小芯片比不了的。特別是IRF540N這種管子輸出端直接帶個幾安培的負載都沒問題這在做電源管理時非常方便。另外提醒一句如果你要做的是精密比較比如鋰電池保護板的過充檢測精度要求±50mV那還是老老實實用專用保護IC或者LM393。MOS管比較器的閾值離散性太大不適合這種場景。但如果你只是做個光控開關、電池低壓指示燈、或者給DIY項目加個簡單的電壓判斷功能這套方案絕對夠用而且成本低到可以忽略不計。