計與散熱實戰(zhàn))
1. 從一次燒板事故說起為什么ESP32供電不能隨便接前陣子幫一個做物聯(lián)網(wǎng)的朋友排查故障他一臉郁悶地拿著三塊剛焊好的ESP32開發(fā)板來找我說上電之后芯片燙得能煎雞蛋串口死活連不上。我拿萬用表一量5V直接灌進了3.3V的供電腳三塊板子全軍覆沒。這種場景我見過太多次了尤其是剛從Arduino Uno轉(zhuǎn)過來的朋友腦子里還留著5V隨便接的慣性思維結(jié)果在ESP32上栽了跟頭。ESP32這顆芯片本質(zhì)上是一顆3.3V邏輯電平的SoC它的供電引腳絕對耐受電壓上限在3.6V左右超過這個值內(nèi)部LDO和IO緩沖器就會進入雪崩擊穿狀態(tài)。而市面上大多數(shù)USB轉(zhuǎn)串口模塊、傳感器模塊、繼電器模塊默認輸出都是5V。你直接把5V懟到ESP32的3V3腳上等于讓一個只能喝二兩的人干了半斤白酒當(dāng)場就趴下了。所以這篇內(nèi)容要解決的核心問題就一個怎么用AMS1117-3.3這顆經(jīng)典LDO給ESP32搭一套穩(wěn)定、安全、不燒芯片的供電電路。我會把電路圖、元件選型、PCB布局、散熱計算、常見故障排查全部講透適合剛?cè)腴TESP32的硬件新手也適合想復(fù)習(xí)LDO設(shè)計細節(jié)的老手??赐昴阒辽倌苊靼兹聻槭裁催xAMS1117而不是別的方案、電路里每個電容電阻到底干嘛用的、以及為什么你的板子會發(fā)熱甚至燒毀。提示本文所有電路均基于AMS1117-3.3的固定輸出版本輸入電壓范圍建議控制在4.5V到10V之間超過12V請務(wù)必先做一級降壓。2. 供電方案選型為什么是AMS1117-3.3而不是DC-DC2.1 LDO和DC-DC的本質(zhì)區(qū)別很多教程一上來就讓你用AMS1117但很少有人講清楚為什么。線性穩(wěn)壓器LDO和開關(guān)電源DC-DC的核心差異用一句話概括LDO靠燒掉多余電壓來穩(wěn)壓DC-DC靠搬運能量來穩(wěn)壓。假設(shè)你輸入5V輸出3.3V負載電流500mA。LDO的工作方式是內(nèi)部調(diào)整管相當(dāng)于一個可變電阻把多余的1.7V壓差以熱量的形式耗散掉。功耗計算公式是P (Vin - Vout) × Iout (5 - 3.3) × 0.5 0.85W這0.85W全部變成熱量AMS1117的SOT-223封裝熱阻大約在60°C/W到80°C/W之間取決于焊盤銅箔面積溫升就是0.85 × 65 ≈ 55°C。室溫25°C的話芯片表面溫度會到80°C左右摸上去燙手但還能工作。如果你輸入是12V同樣的500mA負載功耗變成(12-3.3)×0.54.35W這時候AMS1117會直接觸發(fā)過熱保護輸出掉壓ESP32反復(fù)重啟。DC-DC方案比如MP1584、MP2315的效率通常在85%到95%之間同樣5V轉(zhuǎn)3.3V、500mA輸出輸入功率大約是1.65W/0.9≈1.83W自身發(fā)熱只有0.18W左右?guī)缀醪粻C。但DC-DC的缺點是輸出紋波大開關(guān)頻率帶來的高頻噪聲可能干擾ESP32的射頻部分導(dǎo)致WiFi連接不穩(wěn)定或者藍牙斷流。2.2 AMS1117-3.3的適用邊界AMS1117-3.3是一顆低壓差線性穩(wěn)壓器最大輸出電流1A壓差在1A時約1.3V。它的優(yōu)勢非常明確電路極簡只需要兩個電容就能工作不需要電感、二極管、反饋電阻紋波極低PSRR在低頻段有60dB以上輸出噪聲通常在50μVrms級別成本極低單顆芯片幾毛錢比DC-DC方案便宜一半以上無開關(guān)噪聲不會對ESP32的2.4GHz射頻造成干擾它的劣勢同樣明確效率低壓差越大、電流越大發(fā)熱越嚴重輸入輸出壓差不能太小低于1V時穩(wěn)壓效果變差大電流下熱問題突出持續(xù)1A輸出時基本需要加散熱片所以我的選型建議是輸入5V、負載電流300mA以內(nèi)、對射頻性能要求高的場景優(yōu)先用AMS1117-3.3。如果你輸入是12V或者負載電流超過500mA老老實實先用DC-DC降到5V再用AMS1117做二級穩(wěn)壓這叫兩級供電架構(gòu)兼顧效率和低噪聲。2.3 一張表看懂三種供電方案方案效率5V轉(zhuǎn)3.3V輸出紋波外圍元件成本適用場景AMS1117-3.3約66%極低2個電容極低小電流、射頻敏感DC-DC降壓約90%較高電感電容二極管中等大電流、寬壓輸入兩級架構(gòu)約85%低兩者結(jié)合較高12V輸入、大電流注意ESP32在WiFi發(fā)射瞬間的峰值電流可以達到500mA以上雖然平均電流只有100mA左右但瞬態(tài)響應(yīng)不好的LDO會導(dǎo)致電壓跌落引發(fā)復(fù)位。AMS1117的瞬態(tài)響應(yīng)屬于中等水平所以輸出電容不能省。3. 完整電路圖拆解每個元件都有存在的理由3.1 核心電路原理圖說明先給出完整的AMS1117-3.3給ESP32供電的電路連接關(guān)系。由于無法直接畫圖我用文字描述加連接表的方式呈現(xiàn)你照著連絕對不會錯。主供電鏈路USB 5V或外部5V輸入 → 輸入濾波電容C1 → AMS1117-3.3的VIN腳 AMS1117-3.3的VOUT腳 → 輸出濾波電容C2 → ESP32的3V3腳 AMS1117-3.3的GND腳 → 公共地 → ESP32的GND腳元件清單位號元件參數(shù)封裝數(shù)量作用U1AMS1117-3.3固定3.3V輸出SOT-2231穩(wěn)壓核心C1輸入電容10μF~22μF0805或鉭電容1輸入濾波、抑制振蕩C2輸出電容22μF~47μF0805或鉭電容1輸出濾波、改善瞬態(tài)C3高頻旁路0.1μF06031濾除高頻噪聲R1假負載1kΩ06031保證空載穩(wěn)定可選LED1電源指示3.3V LED06031電源狀態(tài)指示可選R2LED限流1kΩ06031限制LED電流3.2 輸入輸出電容到底怎么選AMS1117的數(shù)據(jù)手冊上寫的是輸入輸出各接一個10μF電容但實際用的時候你會發(fā)現(xiàn)只接10μF有時候會振蕩。原因在于鉭電容和陶瓷電容的ESR特性不同。AMS1117內(nèi)部誤差放大器的相位裕度對輸出電容的ESR有一定要求。老版本的AMS1117要求輸出電容ESR在0.1Ω到10Ω之間才能穩(wěn)定而現(xiàn)代MLCC陶瓷電容的ESR只有幾毫歐反而可能導(dǎo)致環(huán)路不穩(wěn)定。所以我的實際做法是輸入端用22μF的0805陶瓷電容并聯(lián)一個0.1μF的0603電容。大電容儲能小電容濾高頻。輸出端用47μF的鉭電容ESR約0.5Ω到2Ω或者用22μF陶瓷電容串聯(lián)一個0.5Ω的電阻來模擬ESR。如果你手頭只有陶瓷電容建議用兩個22μF并聯(lián)總?cè)萘?4μF同時觀察輸出是否有自激振蕩。判斷是否振蕩的方法很簡單用示波器看輸出波形如果看到幾百kHz到幾MHz的正弦波疊加在3.3V直流上那就是振蕩了。沒有示波器的話用手摸AMS1117如果空載時也明顯發(fā)熱大概率是振蕩了。3.3 假負載電阻的作用很多新手會忽略R1這個1kΩ的假負載。它的作用是保證AMS1117在空載時也能穩(wěn)定工作。有些批次的AMS1117在完全空載時輸出電壓會飄高到3.5V甚至更高因為內(nèi)部調(diào)整管的最小導(dǎo)通電流得不到保證。加上1kΩ假負載后空載時也有3.3V/1kΩ3.3mA的電流流過這個電流足以讓AMS1117進入穩(wěn)定的調(diào)節(jié)狀態(tài)。代價是空載時多消耗3.3mA×3.3V≈11mW的功率完全可以接受。如果你用的是ESP32模組它本身在深睡眠時也有幾十微安的電流加上模組上的電源LED實際上不算完全空載。但如果你做的是電池供電的低功耗項目這個假負載可以去掉前提是你實測空載電壓穩(wěn)定。3.4 完整連接表照著連不會錯AMS1117引腳連接到備注VIN第3腳5V輸入正極、C1正極、C3一端輸入電壓4.5V~10VVOUT第2腳ESP32的3V3腳、C2正極、R1一端輸出3.3VGND第1腳公共地、C1負極、C2負極、C3另一端、R1另一端所有地必須共地TAB散熱片與VOUT內(nèi)部相連可焊接到銅箔輔助散熱提示AMS1117的SOT-223封裝中間的寬引腳是VOUT也是散熱片它和輸出腳是內(nèi)部連通的。PCB布局時把這個引腳連接到一塊至少1cm2的銅箔上能顯著降低熱阻。4. 實操過程從焊接 to 上電測試的完整記錄4.1 元件準備與焊接要點我這次用的是現(xiàn)成的AMS1117-3.3模塊做驗證但為了講清楚細節(jié)還是從裸芯片焊接說起。你需要準備恒溫烙鐵溫度設(shè)定在320°C到350°C之間0.8mm含鉛焊錫絲有鉛的熔點低對新手友好助焊劑或松香鑷子、吸錫帶、無水酒精焊接順序很重要先焊矮的元件再焊高的元件。具體是先焊AMS1117和電容電阻最后焊排針。AMS1117的SOT-223封裝中間那個大焊盤很難用烙鐵直接加熱我的技巧是先在PCB的散熱焊盤上涂一層薄薄的錫用鑷子夾住芯片對準位置放上去用烙鐵頭同時加熱芯片中間引腳和PCB焊盤讓錫融化再焊兩側(cè)的引腳如果你用的是模塊這一步可以跳過。但模塊也有坑市面上很多AMS1117模塊用的是電解電容體積大、壽命短、ESR高。我建議把模塊上的電解電容換成鉭電容或陶瓷電容輸出紋波會明顯改善。4.2 上電前的靜態(tài)檢查焊接完成后千萬不要直接插USB。先做三件事第一目視檢查用放大鏡看有沒有連錫、虛焊、元件方向裝反。AMS1117的引腳定義是面對芯片正面從左到右依次是GND、VOUT、VIN。不同廠家的絲印可能不同以數(shù)據(jù)手冊為準。第二萬用表測短路把萬用表打到蜂鳴檔測VIN對GND、VOUT對GND的電阻。正常情況VOUT對GND應(yīng)該有幾百歐姆到幾kΩ的電阻因為假負載和ESP32的輸入阻抗如果測到0Ω或者幾歐姆說明有短路必須排查。第三限流上電如果你有可調(diào)電源把電壓設(shè)到5V電流限制設(shè)到100mA然后接上電路。如果電流立刻沖到限流值說明有短路如果電流在幾十mA以內(nèi)電壓穩(wěn)定在3.3V說明基本正常。沒有可調(diào)電源的話可以用一個USB電流表串在USB線和開發(fā)板之間。正??蛰d電流應(yīng)該在10mA到30mA之間取決于ESP32模組和LED。4.3 關(guān)鍵參數(shù)計算散熱和壓差假設(shè)你的輸入是5VESP32在WiFi發(fā)射時的峰值電流是500mA平均電流150mA。我們按最壞情況500mA來算AMS1117的功耗P (5 - 3.3) × 0.5 0.85WSOT-223封裝的熱阻結(jié)到環(huán)境在沒有額外散熱銅箔時約80°C/W有1cm2銅箔時約60°C/W有4cm2銅箔時約45°C/W。按60°C/W算溫升 0.85 × 60 51°C室溫25°C時芯片結(jié)溫約76°C低于AMS1117的過熱保護閾值約165°C安全。但如果你把輸入換成12VP (12 - 3.3) × 0.5 4.35W溫升 4.35 × 60 261°C這已經(jīng)遠超保護閾值了芯片會反復(fù)進入熱關(guān)斷狀態(tài)ESP32會看到電壓周期性跌落表現(xiàn)為不斷重啟。所以12V輸入必須先用DC-DC降到5V。4.4 實測波形與數(shù)據(jù)記錄我用示波器帶寬100MHz探頭1X測了輸出端的紋波。測試條件輸入5V負載用電子負載設(shè)到200mA。測試點紋波峰峰值備注AMS1117輸出腳約2mV加了47μF鉭電容0.1μF陶瓷ESP32的3V3腳約5mV走線電感導(dǎo)致略微增大WiFi發(fā)射瞬間約30mV持續(xù)約200μs的跌落30mV的瞬態(tài)跌落對于ESP32來說是安全的它的欠壓復(fù)位閾值通常在2.7V左右3.3V減去30mV還有3.27V余量充足。但如果你用的是劣質(zhì)USB線線阻大輸入5V到AMS1117的VIN可能只有4.5V這時候壓差只剩1.2V接近AMS1117的最小壓差要求輸出可能會不穩(wěn)。注意USB線的線阻是隱形殺手。劣質(zhì)線在500mA時壓降可能達到0.5V以上。建議用短而粗的USB線或者在VIN端再并一個100μF的電解電容做儲能。5. 常見問題與排查技巧實錄5.1 上電后ESP32反復(fù)重啟這是最常見的故障。排查順序如下第一步測電壓用萬用表測ESP32的3V3腳對GND的電壓。如果低于3.0V說明供電不足。拔掉ESP32單獨測AMS1117輸出如果還是低問題在穩(wěn)壓電路如果恢復(fù)正常問題在ESP32或負載過重。第二步測輸入測AMS1117的VIN腳電壓。如果低于4.5V換USB線或換供電口。有些電腦的USB口帶載能力差500mA時電壓會跌到4.2V。第三步摸溫度如果AMS1117燙得不能摸超過70°C說明功耗過大。要么降低輸入電壓要么減小負載要么加散熱片。第四步看紋波如果有示波器看輸出是否有振蕩。振蕩的話換輸出電容或增加ESR。5.2 WiFi連接不穩(wěn)定或頻繁斷線這個問題往往不是軟件問題而是電源瞬態(tài)響應(yīng)不足。ESP32在WiFi發(fā)射時電流從10mA瞬間跳到500mA如果LDO的瞬態(tài)響應(yīng)慢電壓會跌落幾百毫伏導(dǎo)致射頻部分工作異常。解決方法有三個增加輸出電容在ESP32的3V3腳附近再并一個100μF的鉭電容或低ESR電解電容越靠近引腳越好。縮短走線AMS1117到ESP32的走線盡量短而粗減少寄生電感。改用兩級供電前級DC-DC到5V后級AMS1117到3.3V前級的大電容可以緩沖瞬態(tài)。5.3 AMS1117發(fā)熱嚴重但輸出正常如果輸出穩(wěn)定但芯片很燙說明功耗在可接受范圍內(nèi)但散熱不夠。計算一下功耗如果小于1W可以通過以下方式改善把AMS1117的散熱片焊接到大面積銅箔上銅箔面積至少2cm2在芯片背面涂導(dǎo)熱硅脂貼一個小鋁片降低輸入電壓比如從5V降到4.5V但要注意壓差如果負載電流確實大換用DC-DC方案5.4 常見問題速查表現(xiàn)象可能原因排查方法解決方案輸出0V輸入斷路、芯片損壞測VIN電壓、測芯片阻值更換芯片、檢查焊接輸出高于3.3V假負載缺失、芯片假貨加1kΩ假負載、換正品從正規(guī)渠道采購輸出振蕩輸出電容ESR不合適示波器看波形換鉭電容或串0.5Ω電阻發(fā)熱嚴重壓差大、電流大計算功耗降低輸入、加散熱、換DC-DC帶載掉壓輸入線阻大、USB口弱測VIN帶載電壓換短線、換供電口WiFi斷流瞬態(tài)響應(yīng)差看發(fā)射瞬間電壓加輸出電容、兩級供電5.5 幾個我踩過的坑坑一買了假AMS1117。市面上有很多打磨芯片標(biāo)著AMS1117但實際是其他型號輸出不是3.3V或者帶載能力差。識別方法是看絲印是否清晰、引腳是否平整最好從立創(chuàng)商城或正規(guī)代理商拿貨。坑二輸出電容用了電解電容。電解電容的ESR隨溫度變化大低溫時ESR升高可能導(dǎo)致振蕩。我冬天在室外測試時遇到過換了鉭電容就好了。坑三忽略了ESP32模組本身的LDO。很多ESP32開發(fā)板上已經(jīng)有一顆3.3V LDO比如AMS1117或者SPX3819你再外接一個AMS1117兩個LDO輸出并聯(lián)可能會互相打架。正確做法是要么只用板載LDO要么把板載LDO的輸入斷開直接外接3.3V到模組的3V3腳??铀牡鼐€走得太細。大電流回流路徑如果太細地線上會有壓降導(dǎo)致ESP32的GND和AMS1117的GND之間有電位差影響ADC采樣精度。建議地線寬度至少1mm或者用鋪銅。6. PCB布局與散熱設(shè)計的實戰(zhàn)經(jīng)驗6.1 布局優(yōu)先級如果你要自己畫PCB布局順序應(yīng)該是先放AMS1117和ESP32模組兩者盡量靠近縮短3.3V走線輸入電容緊貼VIN腳距離不超過5mm輸出電容緊貼VOUT腳距離不超過5mm假負載電阻放在AMS1117附近不要求緊貼電源指示LED放在板邊方便觀察6.2 散熱銅箔的設(shè)計AMS1117的散熱主要靠PCB銅箔。我的經(jīng)驗是散熱片引腳連接的銅箔面積至少1cm2最好2cm2以上銅箔上可以開窗加錫增加散熱面積如果空間允許在銅箔背面也鋪一塊地銅用過孔連接實測數(shù)據(jù)1cm2銅箔時熱阻約60°C/W2cm2時約50°C/W4cm2時約45°C/W。面積翻倍熱阻下降不明顯所以2cm2是性價比最高的選擇。6.3 走線寬度計算3.3V走線要承載500mA峰值電流按1oz銅厚35μm、溫升10°C計算走線寬度至少需要0.5mm。如果走線長度超過2cm建議加寬到1mm。輸入5V走線同樣按500mA計算寬度0.5mm以上。地線建議用鋪銅不要用細線。如果必須走線寬度至少1mm。7. 進階玩法兩級供電與電池供電方案7.1 12V輸入的兩級供電如果你手頭只有12V電源比如監(jiān)控電源或鉛酸電池直接接AMS1117會燒。正確做法是第一級用MP1584或LM2596 DC-DC降到5V效率約90%第二級用AMS1117從5V降到3.3V效率約66%總效率0.9 × 0.66 ≈ 59%雖然總效率不高但第一級把大部分熱量分擔(dān)了AMS1117只承擔(dān)(5-3.3)×0.50.85W散熱壓力小很多。7.2 18650電池供電單節(jié)18650電池電壓范圍是3.0V到4.2V低于3.3V時AMS1117無法穩(wěn)壓。所以電池供電需要升降壓方案比如TPS63020或IP5306。如果你非要用AMS1117至少需要兩節(jié)18650串聯(lián)6V到8.4V但效率只有40%左右不推薦。7.3 低功耗場景的取舍如果你的ESP32項目大部分時間在深睡眠平均電流只有幾十微安AMS1117的靜態(tài)電流約5mA就成了主要消耗。這時候應(yīng)該換用低靜態(tài)電流LDO比如HT7333靜態(tài)電流4μA或XC6206靜態(tài)電流1μA。AMS1117適合持續(xù)工作的場景不適合電池長期待機。提示AMS1117的靜態(tài)電流在數(shù)據(jù)手冊上標(biāo)的是5mA到11mA實際測量約3mA到8mA。對于電池供電項目這個電流足以在幾天內(nèi)耗光電池。8. 我的個人經(jīng)驗總結(jié)折騰ESP32供電這幾年我最大的體會是不要迷信經(jīng)典電路要根據(jù)實際場景算功耗、算溫升、算瞬態(tài)。AMS1117-3.3是一顆好芯片但它有明確的適用邊界。5V輸入、300mA以內(nèi)、對噪聲敏感的場景它是最優(yōu)解12V輸入、大電流、電池供電的場景它就是個發(fā)熱源。另外買元件一定要從正規(guī)渠道。我見過太多因為假芯片導(dǎo)致的詭異故障排查半天最后發(fā)現(xiàn)是芯片本身的問題。正品AMS1117-3.3單價不到一塊錢沒必要為了省幾毛錢給自己挖坑。最后分享一個小技巧如果你不確定電路是否穩(wěn)定可以先用洞洞板搭一個最小系統(tǒng)只焊AMS1117、兩個電容和一個假負載用電子負載拉載測試。確認輸出穩(wěn)定后再接ESP32。這樣即使出問題也不會燒掉昂貴的模組。