換器:實(shí)現(xiàn)3.3V/5V安全隔離與信號(hào)轉(zhuǎn)換)
1. 項(xiàng)目緣起為什么需要光耦電平轉(zhuǎn)換器在玩轉(zhuǎn)ESP32、STM32這類微控制器時(shí)你肯定遇到過(guò)電平不匹配的煩惱。比如你的ESP32的GPIO引腳輸出是3.3V但你想驅(qū)動(dòng)一個(gè)老舊的5V Arduino Uno或者控制一個(gè)需要5V邏輯信號(hào)的模塊。直接連接輕則信號(hào)無(wú)法識(shí)別重則可能損壞你寶貴的MCU引腳。反過(guò)來(lái)一個(gè)5V系統(tǒng)想給3.3V的ESP32發(fā)送信號(hào)也存在過(guò)壓風(fēng)險(xiǎn)。這就是電平轉(zhuǎn)換Level-Shifting要解決的問(wèn)題。市面上有現(xiàn)成的雙向邏輯電平轉(zhuǎn)換模塊通常基于MOSFET如經(jīng)典的BSS138方案便宜又好用。但今天我想聊一個(gè)更“硬核”、在某些場(chǎng)景下更可靠的選擇用光耦自己搭建一個(gè)超低成本的電平轉(zhuǎn)換器單路成本可以控制在1美元以內(nèi)。它不只是一個(gè)電平轉(zhuǎn)換器更是一個(gè)完美的電氣隔離器。當(dāng)你需要將MCU的脆弱數(shù)字世界與馬達(dá)、繼電器、工業(yè)傳感器等可能存在噪聲、浪涌甚至地電位差的“野蠻”外部世界隔離開(kāi)時(shí)光耦幾乎是必選項(xiàng)。它能切斷地線環(huán)路防止噪聲耦合保護(hù)核心控制電路。這個(gè)“1美元光耦邏輯電平轉(zhuǎn)換器”項(xiàng)目核心就是利用光耦的光電隔離特性配合少量外圍元件實(shí)現(xiàn)3.3V與5V或其他電壓系統(tǒng)間安全、可靠的單向信號(hào)傳輸。它特別適合那些對(duì)成本敏感但又對(duì)可靠性有要求的DIY項(xiàng)目或小批量產(chǎn)品原型。2. 核心器件解析光耦與MOSFET的協(xié)同作戰(zhàn)要理解這個(gè)轉(zhuǎn)換器怎么工作得先拆解它的兩個(gè)核心光耦和MOSFET。2.1 光耦信號(hào)與電源的“絕緣橋梁”光耦全稱光電耦合器它的內(nèi)部結(jié)構(gòu)很簡(jiǎn)單一個(gè)發(fā)光二極管LED和一個(gè)光敏晶體管可能是光電三極管、光電達(dá)林頓管或光敏MOSFET封裝在一起。當(dāng)輸入側(cè)的電流流過(guò)LED使其發(fā)光光線照射到輸出側(cè)的光敏器件上從而控制其導(dǎo)通或關(guān)閉。輸入和輸出之間只有光的聯(lián)系沒(méi)有電氣連接這就實(shí)現(xiàn)了高達(dá)數(shù)千伏的電氣隔離。在這個(gè)電平轉(zhuǎn)換電路中我們通常選用最常見(jiàn)、最便宜的“晶體管輸出型”光耦比如PC817或4N35。它的輸出側(cè)是一個(gè)NPN型光電三極管。當(dāng)輸入側(cè)LED點(diǎn)亮光電三極管CE極間導(dǎo)通LED熄滅CE極間截止。但這里有個(gè)關(guān)鍵點(diǎn)光電三極管在導(dǎo)通時(shí)CE極間仍然存在一個(gè)飽和壓降通常0.1-0.4V它無(wú)法將輸出直接拉低到完美的0V也無(wú)法提供很強(qiáng)的拉電流。如果直接用它的輸出去驅(qū)動(dòng)GPIO在高電平識(shí)別上可能會(huì)出問(wèn)題特別是當(dāng)后級(jí)電路對(duì)高電平電壓有嚴(yán)格要求時(shí)。2.2 MOSFET擔(dān)任高效的“開(kāi)關(guān)助手”這就是MOSFET出場(chǎng)的原因。我們選用一個(gè)N溝道增強(qiáng)型MOSFET例如2N7000或BS170。MOSFET作為電壓控制型器件柵極G幾乎不消耗電流用光耦輸出的電壓去控制MOSFET的開(kāi)關(guān)是再合適不過(guò)了。電路的工作邏輯是這樣的輸入高電平例如3.3V光耦輸入側(cè)LED導(dǎo)通發(fā)光 - 輸出側(cè)光電三極管導(dǎo)通 - 光電三極管的C極電壓被拉低接近0V- 這個(gè)低電平連接到MOSFET的柵極G- MOSFET關(guān)閉Vgs 開(kāi)啟閾值Vth- MOSFET的漏極D被上拉電阻拉到輸出側(cè)電源電壓例如5V輸出高電平。輸入低電平0V光耦輸入側(cè)LED無(wú)電流不發(fā)光 - 輸出側(cè)光電三極管截止 - 光電三極管的C極電壓被其集電極電阻拉高例如到5V- 這個(gè)高電平約5V加到MOSFET的柵極G- MOSFET導(dǎo)通Vgs ≈ 5V Vth- MOSFET的漏極D被導(dǎo)通到源極S接地輸出低電平??吹搅藛峁怦钤谶@里主要起隔離和信號(hào)傳遞作用而MOSFET才是真正負(fù)責(zé)以低阻抗、快速的方式在輸出側(cè)電源軌如5V和地之間進(jìn)行切換產(chǎn)生干凈、標(biāo)準(zhǔn)的邏輯電平。這種組合既利用了光耦的隔離優(yōu)勢(shì)又規(guī)避了其輸出驅(qū)動(dòng)能力弱的缺點(diǎn)。3. 從原理圖到實(shí)物的完整實(shí)現(xiàn)步驟理論說(shuō)清楚了我們動(dòng)手把它做出來(lái)。下圖是這個(gè)1美元光耦電平轉(zhuǎn)換器的典型原理圖我們以此為基礎(chǔ)進(jìn)行詳解。注此處應(yīng)為原理圖描述如下左側(cè)為輸入側(cè)Vcc1如3.3V經(jīng)一個(gè)限流電阻R1連接光耦U1如PC817的陽(yáng)極陰極接輸入信號(hào)GPIO。光耦輸出側(cè)集電極通過(guò)一個(gè)上拉電阻R2接至輸出側(cè)電源Vcc2如5V發(fā)射極接地。光耦集電極同時(shí)連接至N-MOSFET Q1如2N7000的柵極。MOSFET的漏極通過(guò)一個(gè)上拉電阻R3接至Vcc25V源極接地。MOSFET的漏極即為最終的輸出信號(hào)。3.1 元器件選型與參數(shù)計(jì)算要實(shí)現(xiàn)“1美元”的成本目標(biāo)每個(gè)元件的選型都需精打細(xì)算。光耦 U1首選PC817這是行業(yè)標(biāo)桿單顆價(jià)格在幾美分。它的電流傳輸比CTR典型值在50%-600%之間我們按保守的50%計(jì)算。這意味著如果輸出側(cè)需要1mA的電流輸入側(cè)至少需要提供2mA的電流給LED。4N35也可以速度稍快價(jià)格略高一點(diǎn)。N-MOSFET Q12N7000或BS170都是經(jīng)典的邏輯電平MOSFET意味著它們能用3.3V或5V的柵極電壓完全導(dǎo)通。查看數(shù)據(jù)手冊(cè)2N7000的柵極閾值電壓Vgs(th)最大為3V在Vgs4.5V時(shí)導(dǎo)通電阻Rds(on)典型值只有5歐姆非常適合這個(gè)場(chǎng)景。單價(jià)也在10美分左右。輸入側(cè)限流電阻 R1這個(gè)電阻決定了流入光耦LED的電流If。If的大小直接影響光耦的響應(yīng)速度和輸出側(cè)晶體管的導(dǎo)通程度。通常為了保證可靠的導(dǎo)通和速度If取5-20mA。假設(shè)我們的輸入高電平Vih 3.3V來(lái)自ESP32光耦LED正向壓降Vf ≈ 1.2V。那么R1 (Vih - Vf) / If。如果我們?nèi)f 10mA則 R1 (3.3V - 1.2V) / 0.01A 210歐姆。選用標(biāo)準(zhǔn)的220歐姆電阻即可。光耦輸出側(cè)上拉電阻 R2這個(gè)電阻有兩個(gè)作用一是為光耦的光電三極管提供集電極偏置二是和光電三極管的內(nèi)阻分壓產(chǎn)生用于控制MOSFET柵極的電壓。R2不能太大否則光電三極管截止時(shí)其集電極電壓上升太慢RC時(shí)間常數(shù)大影響電路速度也不能太小否則光電三極管導(dǎo)通時(shí)電流太大。一般取1kΩ到10kΩ。這里我們?nèi)?.7kΩ這是一個(gè)兼顧速度和功耗的常用值。MOSFET輸出上拉電阻 R3這個(gè)電阻決定了輸出高電平時(shí)電路能提供的拉電流能力以及信號(hào)上升沿的速度。電阻越小驅(qū)動(dòng)能力越強(qiáng)上升沿越快但靜態(tài)功耗也越大。對(duì)于大多數(shù)數(shù)字邏輯輸入如另一個(gè)MCU的GPIO輸入阻抗很高需要的電流極小微安級(jí)。因此R3可以取一個(gè)較大的值以降低功耗例如10kΩ。如果后級(jí)負(fù)載較重或?qū)ι仙赜幸罂梢詼p小到1kΩ甚至更低。成本核算PC817$0.05 2N7000$0.10 3個(gè)電阻$0.03 少量PCB和焊接成本 ≈ $0.20。即使算上連接器和PCB制板費(fèi)單路成本遠(yuǎn)低于1美元。批量生產(chǎn)甚至可以做到更低。3.2 PCB布局與焊接要點(diǎn)雖然這是一個(gè)簡(jiǎn)單的電路但布局不當(dāng)也會(huì)引入問(wèn)題。電源去耦務(wù)必在Vcc1和Vcc2的入口處分別放置一個(gè)0.1uF的陶瓷電容到地并盡可能靠近光耦和MOSFET的電源引腳。這能濾除電源線上的高頻噪聲防止誤動(dòng)作。信號(hào)路徑最短輸入信號(hào)線、光耦輸出到MOSFET柵極的線、MOSFET輸出線都應(yīng)盡可能短而直。長(zhǎng)的走線會(huì)充當(dāng)天線引入噪聲或?qū)е滦盘?hào)振鈴。地平面如果使用雙面PCB最好在底層保留一個(gè)完整或大面積的接地銅層為高頻噪聲提供良好的回流路徑。焊接光耦和MOSFET都是靜電敏感器件ESD。焊接時(shí)最好使用接地良好的烙鐵或者先焊接PCB上的其他元件最后再焊接它們。注意光耦的引腳方向不要搞錯(cuò)。3.3 實(shí)測(cè)與波形觀察電路焊好后別急著用先上電測(cè)試。推薦使用一個(gè)帶波形發(fā)生器和示波器的簡(jiǎn)易測(cè)試架靜態(tài)測(cè)試不接輸入信號(hào)用萬(wàn)用表測(cè)量。輸入側(cè)懸空應(yīng)為低電平此時(shí)輸出應(yīng)為低電平接近0V。然后將輸入側(cè)通過(guò)一個(gè)220歐姆電阻接到3.3V模擬高電平輸出應(yīng)跳變?yōu)楦唠娖浇咏?V。動(dòng)態(tài)測(cè)試用信號(hào)發(fā)生器或另一個(gè)MCU如ESP32產(chǎn)生一個(gè)1kHz的方波0V-3.3V作為輸入。用示波器雙通道同時(shí)觀察輸入CH1和輸出CH2波形。重點(diǎn)關(guān)注輸出波形的上升沿和下降沿是否陡峭有無(wú)明顯的振鈴或過(guò)沖測(cè)量延遲光耦本身有傳輸延遲通常在幾微秒量級(jí)。測(cè)量輸入信號(hào)邊沿到輸出信號(hào)對(duì)應(yīng)邊沿的時(shí)間差這就是電路的傳播延遲。對(duì)于PC8172N7000的組合在10mA的If下總延遲上升下降通常在10-20微秒以內(nèi)。這對(duì)于大多數(shù)低速串口如9600bps UART、繼電器控制、傳感器讀取等應(yīng)用完全足夠。檢查電平確保輸出高電平穩(wěn)定在4.5V以上對(duì)于5V系統(tǒng)輸出低電平在0.5V以下。注意光耦的響應(yīng)速度與輸入電流If直接相關(guān)。If越大內(nèi)部LED越亮光電三極管導(dǎo)通越快延遲越小。但I(xiàn)f受限于輸入側(cè)驅(qū)動(dòng)能力和光耦的額定電流。PC817的連續(xù)正向電流典型值是50mA所以我們的10-20mA設(shè)計(jì)是安全的。如果你需要更快的速度例如用于更高頻率的PWM可以適當(dāng)增大If或選用高速光耦如6N137但成本會(huì)上升。4. 性能深潛速度、驅(qū)動(dòng)能力與隔離特性自己搭電路不能光看“能不能亮”還得弄清楚它“有多好”。我們來(lái)量化分析一下這個(gè)轉(zhuǎn)換器的幾個(gè)關(guān)鍵性能指標(biāo)。4.1 速度瓶頸分析與優(yōu)化這個(gè)電路的速度主要受限于兩個(gè)器件光耦和MOSFET。光耦延遲包括導(dǎo)通延遲輸入電流到輸出開(kāi)始響應(yīng)和上升/下降時(shí)間。PC817的數(shù)據(jù)手冊(cè)顯示在If5mA負(fù)載電阻100Ω時(shí)開(kāi)關(guān)時(shí)間上升下降典型值在18微秒左右。提升速度最有效的方法是增加If。將If從10mA提高到20mA開(kāi)關(guān)時(shí)間可以顯著縮短。你可以通過(guò)減小R1來(lái)實(shí)現(xiàn)比如從220Ω換成100Ω需確保輸入GPIO能提供約20mA的電流ESP32的單引腳驅(qū)動(dòng)能力是40mA所以沒(méi)問(wèn)題。MOSFET開(kāi)關(guān)速度2N7000的開(kāi)關(guān)速度極快在納秒級(jí)不是瓶頸。但MOSFET的柵極有寄生電容Ciss約幾十皮法。R2和電路走線阻抗與這個(gè)電容構(gòu)成了一個(gè)RC充電回路會(huì)影響柵極電壓的上升速度。R2越小柵極充電越快MOSFET開(kāi)啟也越快。但R2受限于光耦導(dǎo)通時(shí)的功耗。一個(gè)折中的辦法是在光耦輸出和MOSFET柵極之間串聯(lián)一個(gè)小的電阻如22-100Ω可以抑制可能因走線電感引起的柵極振鈴。實(shí)測(cè)對(duì)比在我的實(shí)驗(yàn)中使用PC817If10mAR24.7kΩ電路對(duì)1kHz方波的響應(yīng)良好。當(dāng)頻率提高到10kHz時(shí)方波開(kāi)始有些變形但依然可辨。將If增加到20mA后10kHz的波形質(zhì)量明顯改善。結(jié)論對(duì)于低于幾十kHz的數(shù)字信號(hào)這個(gè)電路完全勝任如需更高頻率需選用高速光耦并優(yōu)化參數(shù)。4.2 驅(qū)動(dòng)能力實(shí)測(cè)與擴(kuò)展MOSFET的輸出驅(qū)動(dòng)能力很強(qiáng)。2N7000在完全導(dǎo)通時(shí)Rds(on)很低約5歐姆這意味著它可以將輸出強(qiáng)有力地拉低到地。在輸出高電平時(shí)驅(qū)動(dòng)能力由上拉電阻R3決定。拉電流Sink Current當(dāng)MOSFET導(dǎo)通輸出低電平時(shí)后級(jí)負(fù)載的電流會(huì)灌入MOSFET的漏極。2N7000的連續(xù)漏極電流Id額定值為200mA遠(yuǎn)超一般數(shù)字IO的需求。你可以用它直接驅(qū)動(dòng)小型繼電器線圈需加續(xù)流二極管或LED指示燈。源電流Source Current當(dāng)MOSFET關(guān)閉輸出高電平時(shí)電流通過(guò)R3流出。如果R310kΩ輸出5V高電平時(shí)最大能提供的源電流僅為5V/10kΩ0.5mA。這對(duì)于驅(qū)動(dòng)一個(gè)MCU的輸入引腳通常只需幾微安足夠了。但如果需要驅(qū)動(dòng)一個(gè)需要較大輸入電流的器件就必須減小R3。例如R31kΩ則可提供5mA的源電流但靜態(tài)功耗也增加到5V^2/1kΩ25mW。驅(qū)動(dòng)能力擴(kuò)展技巧如果需要同時(shí)驅(qū)動(dòng)多個(gè)負(fù)載或需要很強(qiáng)的源電流一個(gè)簡(jiǎn)單的辦法是在輸出端增加一個(gè)緩沖器比如74HC系列的反相器或緩沖器芯片。用本電路的輸出作為緩沖器的輸入由緩沖器來(lái)提供強(qiáng)大的驅(qū)動(dòng)能力。這樣既保留了隔離特性又獲得了標(biāo)準(zhǔn)的數(shù)字輸出驅(qū)動(dòng)能力。4.3 隔離電壓與實(shí)戰(zhàn)應(yīng)用場(chǎng)景這是光耦方案相比純MOSFET電平轉(zhuǎn)換芯片最大的優(yōu)勢(shì)。PC817的隔離電壓輸入輸出之間高達(dá)5000Vrms。這意味著地電位差在工業(yè)環(huán)境中控制柜PLC端和設(shè)備端可能因?yàn)殚L(zhǎng)距離布線存在幾伏甚至幾十伏的地電位差。直接連接會(huì)導(dǎo)致巨大電流流過(guò)地線損壞設(shè)備。光耦徹底切斷了這個(gè)地環(huán)路。噪聲抑制電機(jī)、變頻器、繼電器通斷會(huì)產(chǎn)生強(qiáng)烈的電磁干擾EMI。這些噪聲很容易通過(guò)共地線耦合進(jìn)敏感的MCU電路。光耦提供了出色的共模噪聲抑制能力。高壓側(cè)控制你可以用MCU的3.3V GPIO通過(guò)這個(gè)光耦轉(zhuǎn)換器去安全地控制一個(gè)由24V、48V甚至更高電壓供電的電路開(kāi)關(guān)。只要為光耦輸出側(cè)提供相應(yīng)的電壓Vcc2MOSFET就能在那個(gè)電壓域下進(jìn)行開(kāi)關(guān)。經(jīng)典應(yīng)用場(chǎng)景工業(yè)傳感器讀取將24V PLC數(shù)字輸出信號(hào)隔離并轉(zhuǎn)換為3.3V給ESP32讀取。繼電器/接觸器驅(qū)動(dòng)用ESP32控制交流220V繼電器模塊光耦隔離是安全標(biāo)配。電機(jī)控制反饋從帶有高壓驅(qū)動(dòng)的編碼器或霍爾傳感器中讀取位置信號(hào)。多電源系統(tǒng)通信在一個(gè)項(xiàng)目中部分電路由電池供電部分由市電適配器供電它們之間的UART或I2C通信最好通過(guò)光耦隔離防止相互干擾。5. 常見(jiàn)問(wèn)題排查與設(shè)計(jì)陷阱規(guī)避即使電路簡(jiǎn)單調(diào)試中也難免會(huì)遇到問(wèn)題。下面是我在多次實(shí)踐中總結(jié)的“坑點(diǎn)”和解決方案。5.1 輸出電平不達(dá)標(biāo)或邏輯反了這是最常見(jiàn)的問(wèn)題。癥狀輸入高電平輸出卻不是滿幅的5V高電平可能只有3V或4V或者邏輯反了輸入高輸出低輸入低輸出高。排查步驟檢查電源首先用萬(wàn)用表確認(rèn)Vcc1和Vcc2的電壓是否準(zhǔn)確穩(wěn)定。特別是Vcc2如果它是從另一個(gè)模塊引來(lái)的帶載后電壓可能會(huì)跌落。檢查光耦輸入回路測(cè)量輸入高電平時(shí)R1兩端的電壓降。計(jì)算一下實(shí)際流過(guò)LED的電流If是否達(dá)到設(shè)計(jì)值如10mA。如果電流太小光耦可能沒(méi)有充分導(dǎo)通。檢查光耦輸出側(cè)電壓在輸入高電平時(shí)測(cè)量光耦集電極連接MOSFET柵極的點(diǎn)對(duì)地的電壓。它應(yīng)該是一個(gè)很低的電壓0.5V表明光電三極管充分導(dǎo)通將MOSFET柵極拉低。如果這個(gè)電壓還有好幾伏說(shuō)明光耦導(dǎo)通不徹底可能是If太小或者光耦本身CTR太低劣質(zhì)或損壞。檢查MOSFET柵極電壓直接測(cè)量MOSFET的G極對(duì)S極地的電壓。在輸入高電平時(shí)Vgs應(yīng)接近0VMOSFET關(guān)閉輸入低電平時(shí)Vgs應(yīng)接近Vcc25VMOSFET導(dǎo)通。如果電壓異?;厮輽z查光耦輸出和R2。邏輯反了檢查電路連接是否錯(cuò)誤。最常見(jiàn)的是把光耦輸出側(cè)的集電極和發(fā)射極接反了或者M(jìn)OSFET的漏極和源極接反了。對(duì)照原理圖仔細(xì)核對(duì)。實(shí)操心得我曾遇到一批便宜的PC817CTR參數(shù)離散性很大。在同樣的電路參數(shù)下有些輸出正常有些則高電平只能到3.8V。解決方法一是增大輸入電流If減小R1二是更換質(zhì)量更可靠的光耦品牌。對(duì)于關(guān)鍵應(yīng)用建議在批量使用前對(duì)光耦進(jìn)行抽樣測(cè)試。5.2 響應(yīng)速度慢波形失真癥狀輸入方波輸出波形上升沿或下降沿變得緩慢有斜坡在高頻下尤其明顯。原因與解決輸入電流If不足這是主因。立即嘗試減小R1將If增加到15-20mA。效果立竿見(jiàn)影。負(fù)載電容過(guò)大如果輸出端連接了很長(zhǎng)的導(dǎo)線或者容性很大的負(fù)載MOSFET的開(kāi)關(guān)速度會(huì)被拖慢。可以在輸出端串聯(lián)一個(gè)幾十歐姆的小電阻與負(fù)載電容形成阻尼改善振鈴但會(huì)略微增加上升時(shí)間。上拉電阻R3過(guò)大R3越大對(duì)負(fù)載電容的充電時(shí)間常數(shù)R3*C就越大上升沿越慢。在驅(qū)動(dòng)能力允許的前提下適當(dāng)減小R3。光耦本身速度慢如果優(yōu)化了以上所有點(diǎn)速度仍不滿足要求比如需要傳輸上百kHz的信號(hào)就需要換用高速光耦如6N137速度可達(dá)10Mbps并設(shè)計(jì)相應(yīng)的快速驅(qū)動(dòng)電路。5.3 電路不穩(wěn)定偶爾誤動(dòng)作癥狀在干擾環(huán)境如附近有電機(jī)啟停下輸出會(huì)有毛刺甚至誤觸發(fā)。加固措施加強(qiáng)電源濾波除了0.1uF的陶瓷去耦電容在Vcc1和Vcc2入口處再并聯(lián)一個(gè)10uF-100uF的電解電容或鉭電容以應(yīng)對(duì)低頻干擾。信號(hào)線處理輸入和輸出信號(hào)線盡量使用雙絞線或屏蔽線。如果走PCB讓信號(hào)線遠(yuǎn)離電源線和可能產(chǎn)生噪聲的元件。柵極防護(hù)在MOSFET的柵極和源極之間并聯(lián)一個(gè)10kΩ到100kΩ的電阻。這個(gè)電阻為柵極提供確定的放電通路防止因靜電或噪聲積累導(dǎo)致柵極電壓漂移使MOSFET意外導(dǎo)通。這個(gè)電阻非常重要強(qiáng)烈建議加上。輸出端濾波如果后級(jí)電路對(duì)噪聲敏感可以在輸出端MOSFET漏極到地之間并聯(lián)一個(gè)幾十皮法的小電容如100pF構(gòu)成一個(gè)低通濾波器濾除高頻毛刺。但注意這會(huì)進(jìn)一步降低信號(hào)速度。6. 進(jìn)階玩法雙向轉(zhuǎn)換、高速優(yōu)化與集成方案掌握了基本型我們可以看看它的變體和升級(jí)方向。6.1 實(shí)現(xiàn)雙向隔離通信上述電路是單向的。如果需要雙向通信如隔離的I2C或UART需要兩個(gè)這樣的電路一個(gè)用于A到B一個(gè)用于B到A。對(duì)于I2C這樣的雙向總線需要特別小心因?yàn)樗腟DA線是雙向的。通常的隔離方案是使用專用的隔離I2C芯片如ADI的ADuM1250或者用兩個(gè)光耦加一些邏輯門電路來(lái)構(gòu)建方向控制邏輯復(fù)雜度會(huì)顯著增加。對(duì)于UARTTX/RX分明則簡(jiǎn)單很多直接用兩路單向光耦電路分別處理TX和RX即可。6.2 追求極致速度的優(yōu)化設(shè)計(jì)如果項(xiàng)目需要更高的數(shù)據(jù)速率100kbps需要對(duì)電路進(jìn)行優(yōu)化選用高速光耦如6N137邏輯門輸出、HCPL-0600等。它們的內(nèi)部結(jié)構(gòu)不同通常是LED光電二極管高速邏輯門傳播延遲可低至幾十納秒。優(yōu)化驅(qū)動(dòng)電路高速光耦的LED需要快速、大電流的驅(qū)動(dòng)。通常需要一個(gè)專門的驅(qū)動(dòng)電路比如用74HC14施密特反相器或晶體管電路來(lái)提供快速、邊沿陡峭的驅(qū)動(dòng)電流。降低所有寄生參數(shù)使用貼片元件、縮短所有走線、在光耦輸出和MOSFET柵極之間串聯(lián)小電阻阻尼振鈴、選擇低輸入電容的MOSFET??紤]集成方案對(duì)于MHz級(jí)別的信號(hào)分立元件方案已力不從心。此時(shí)應(yīng)考慮使用數(shù)字隔離器芯片如Silicon Labs的Si86xx系列或TI的ISO77xx系列。它們采用芯片級(jí)變壓器或電容耦合技術(shù)速度可達(dá)100Mbps以上功耗更低通道集成度更高雖然成本高于光耦但性能是數(shù)量級(jí)的提升。6.3 從分立到集成專用隔離電平轉(zhuǎn)換芯片當(dāng)你的項(xiàng)目需要多通道、高性能或空間受限時(shí)使用分立元件搭建就顯得繁瑣了。市場(chǎng)上有許多集成了隔離和電平轉(zhuǎn)換功能的芯片例如TI ISO7741 電平轉(zhuǎn)換器ISO7741是四通道數(shù)字隔離器其后級(jí)可以連接任何標(biāo)準(zhǔn)的雙向電平轉(zhuǎn)換器如TXS0108E構(gòu)成一個(gè)完整的隔離電平轉(zhuǎn)換方案。ADI ADuM1201 外部電路ADuM1201是雙通道隔離器輸出可以是3.3V或5V靈活性強(qiáng)。集成電源的隔離器如Si862x系列有些型號(hào)甚至集成了隔離的DC-DC電源無(wú)需為輸出側(cè)單獨(dú)供電極大簡(jiǎn)化了設(shè)計(jì)。這些方案省去了計(jì)算、選型和布局的麻煩提供了更佳的性能和可靠性適合產(chǎn)品化設(shè)計(jì)。但對(duì)于學(xué)習(xí)、原型驗(yàn)證或極致成本控制的項(xiàng)目親手搭建一個(gè)“1美元光耦電平轉(zhuǎn)換器”仍然是理解隔離與電平轉(zhuǎn)換原理的絕佳途徑。它讓你對(duì)電流、電壓、速度、驅(qū)動(dòng)這些概念有了實(shí)實(shí)在在的觸感這是閱讀芯片數(shù)據(jù)手冊(cè)無(wú)法完全替代的體驗(yàn)。下次當(dāng)你的ESP32需要與一個(gè)嘈雜的工業(yè)環(huán)境對(duì)話時(shí)你會(huì)知道在GPIO和外部世界之間除了代碼還需要這樣一道可靠的光電屏障。