換與電源轉(zhuǎn)換選型實戰(zhàn))
1. 從一次串口通信失敗說起電平不匹配到底壞了什么事很多人在調(diào)試串口、SPI、I2C 的時候都遇到過這種情況代碼邏輯明明沒問題、線序也反復(fù)核對過示波器一掛上去波形卻糊成一團(tuán)接收端要么收到一堆亂碼要么干脆一個字節(jié)都收不到。折騰半天最后發(fā)現(xiàn)問題根本不在協(xié)議層而是兩邊的通信電平不一致——一邊是 1.8V 的 MCU另一邊是 5V 的外設(shè)直連之后高電平識別不出來整個鏈路自然就廢了。通信電平轉(zhuǎn)換說的就是這么一件事讓工作在 1.8V、2.8V、3.3V、5V 這些不同電壓域里的芯片或模塊能夠相互聽懂對方的信號。這事看著簡單實際做起來卻處處是坑——方向是單向還是雙向速率是幾十 kbps 還是幾十 Mbps是推挽輸出還是開漏輸出要不要隔離供電怎么處理每換一個條件方案就得跟著變。我見過太多項目栽在這上面板子做回來了才發(fā)現(xiàn)兩個芯片不能直連只能飛線加個轉(zhuǎn)換小板可靠性直接打?qū)φ?。這篇內(nèi)容我打算把 1.8V/2.8V/3.3V/5V 這幾檔常見電壓域之間的信號轉(zhuǎn)換從頭到尾捋一遍。會講清楚每種方案的適用邊界給出可以直接抄的電路和參數(shù)也會把 24V 轉(zhuǎn) 3.3V、12V 轉(zhuǎn) 5V 這類電源側(cè)的轉(zhuǎn)換順帶說清楚因為很多人會把“信號電平轉(zhuǎn)換”和“電源電壓轉(zhuǎn)換”混為一談這本身就是第一個大坑。不管你是剛畫第一塊板子的新手還是已經(jīng)做過幾輪產(chǎn)品、想找個靠譜方案對照的老手下面的內(nèi)容應(yīng)該都能直接用上。2. 先把概念掰清楚信號電平轉(zhuǎn)換和電源轉(zhuǎn)換根本不是一回事2.1 一個高頻混淆點24V 轉(zhuǎn) 3.3V 電路設(shè)計不是電平轉(zhuǎn)換搜索“24v轉(zhuǎn)3.3v電路設(shè)計”的人里我估計有一半其實是在找電源方案另一半才真的需要信號轉(zhuǎn)換。這兩件事的差別用一句話說就是電源轉(zhuǎn)換管的是能量信號轉(zhuǎn)換管的是信息。電源轉(zhuǎn)換要把 24V 的供電降壓到 3.3V給芯片供電輸出的是能持續(xù)提供幾百毫安甚至幾安培電流的“電”信號轉(zhuǎn)換是把一個邏輯高電平從 24V 域搬到 3.3V 域輸出的是幾十微安到幾毫安、代表 0 和 1 的“狀態(tài)”。前者的核心指標(biāo)是效率、紋波、負(fù)載調(diào)整率、散熱后者的核心指標(biāo)是邏輯閾值、傳播延遲、上升下降時間、方向控制。為什么一定要分清因為選型邏輯完全不同。你要是拿一個降壓模塊去轉(zhuǎn)信號輸出端掛個電阻就等著燒吧反過來拿電平轉(zhuǎn)換芯片去給主控供電更是直接冒煙。我整理了一張對照表放在這里方便你快速對號入座對比維度信號電平轉(zhuǎn)換電源電壓轉(zhuǎn)換轉(zhuǎn)換對象邏輯高低電平供電電壓典型電流μA 到 mA 級mA 到 A 級核心器件MOS 管、電平轉(zhuǎn)換芯片、光耦LDO、DC-DC 降壓/升壓芯片、模塊關(guān)鍵指標(biāo)閾值兼容、速率、延遲效率、紋波、負(fù)載調(diào)整率典型應(yīng)用I2C/SPI/UART 跨壓域通信主控供電、模塊供電常見誤區(qū)直連導(dǎo)致識別失敗用地線走大電流、散熱不足提示如果兩個設(shè)備之間既需要供電又需要通信那往往要“電源轉(zhuǎn)換 信號轉(zhuǎn)換”兩套方案同時上千萬別指望一個器件全包了。2.2 1.8V、2.8V、3.3V、5V 各自是什么來頭先說 5V。這是最老資格的一檔早期的 51 單片機(jī)、大量的工業(yè)傳感器、繼電器模塊、USB 供電設(shè)備都跑在 5V 上。它的好處是抗干擾能力強(qiáng)、閾值寬、和很多現(xiàn)成的外設(shè)天然兼容缺點是功耗偏高在電池供電的設(shè)備里基本被淘汰了。3.3V 是現(xiàn)在的絕對主力。STM32、ESP32、大量國產(chǎn) MCU、Wi-Fi 和藍(lán)牙模塊、絕大多數(shù)傳感器都工作在 3.3V。它算是功耗和抗干擾之間的一個平衡點也是我平時做項目遇到最多的一檔。2.8V 相對小眾一些主要出現(xiàn)在早期的通信模塊、部分射頻芯片、某些特定接口的傳感器上。它存在的意義往往是某個芯片的工藝決定的而不是行業(yè)統(tǒng)一標(biāo)準(zhǔn)所以你在做方案的時候要特別留意——2.8V 的器件通常不能直接和 3.3V 器件通信雖然只差 0.5V但很多芯片的高電平輸入門限就是卡在這個位置。1.8V 則是低功耗和高集成度路線下的產(chǎn)物?,F(xiàn)在的先進(jìn)制程芯片IO 電壓越做越低1.8V 甚至 1.2V 是常態(tài)。好處是功耗低、速度快壞處是和外部器件連的時候幾乎都得轉(zhuǎn)換直連的機(jī)會很少。把這幾檔放在一起看實際項目里最常見的是三種組合3.3V 對 5V、1.8V 對 3.3V、2.8V 對 3.3V。下面就圍繞這三種組合展開其他的電壓組合基本可以類推。2.3 判斷能不能直連只需看三個數(shù)很多人問“這兩個芯片能不能直接連”其實答案就在數(shù)據(jù)手冊里翻到 DC Characteristics 那一節(jié)找三個參數(shù)VOH輸出高電平的最小值也就是這個腳輸出 1 的時候電壓最低能到多少。VIH輸入高電平的最小值也就是接收端要認(rèn)出這是 1電壓至少要到多少。VOL 和 VIL對應(yīng)的低電平參數(shù)邏輯類似。判斷規(guī)則很直白發(fā)送端的 VOH 必須大于接收端的 VIH發(fā)送端的 VOL 必須小于接收端的 VIL而且最好留出 0.2V 以上的余量。比如一個 3.3V 的 MCU 輸出高電平 VOH 大約 3.0V5V 器件的 VIH 通常是 0.7×VCC 3.5V3.0V 小于 3.5V直連就不穩(wěn)反過來 5V 器件輸出 4.5V 去接 3.3V 器件的輸入雖然 3.3V 器件的 VIH 只有 2.0V 左右能識別但 4.5V 很可能超過它的絕對最大額定值長期下來會損傷輸入級。注意低電平方向的判斷同樣重要。有些芯片的輸出低電平能到 0.4V而接收端的 VIL 只允許 0.3V這種也會出問題尤其是長線纜、大電流場合。3. 四類主流電平轉(zhuǎn)換方案什么場景用哪個3.1 電阻分壓成本最低但限制也最多電阻分壓是新手最容易想到的方案5V 信號經(jīng)過兩個電阻分壓到 3.3V接到 3.3V 的輸入腳。這個方案在特定條件下確實能用但限制非常多用之前一定要想清楚。先說計算。如果是從 5V 轉(zhuǎn)到 3.3V用 R1 串在上面、R2 并在下面分壓比是 R2/(R1R2) 3.3/5 0.66。取 R1 1kΩ那 R2 ≈ 1.94kΩ實際用 2kΩ 得到 3.33V基本合適。這里有個關(guān)鍵點分壓電阻的取值不能只考慮分壓比還要考慮信號速率和接收端的輸入阻抗。信號速率越高RC 時間常數(shù)的影響越大。接收腳通常有 5~10pF 的輸入電容加上走線電容假設(shè)總電容 15pF那么 R1 和 R2 的并聯(lián)值乘上這個電容就是時間常數(shù)。上面 1kΩ 和 2kΩ 并聯(lián)約 667Ω乘 15pF 約 10ns對應(yīng)帶寬大概 16MHz看著夠用。但如果你把電阻放大到 10kΩ 級別去降功耗時間常數(shù)立馬變成 100ns 量級幾 MHz 的信號邊沿就被拉圓了通信很容易出錯。更要命的是電阻分壓只能單向而且只能從高壓往低壓轉(zhuǎn)。反過來 3.3V 轉(zhuǎn) 5V 用分壓是做不到的因為電壓不夠。而且分壓會持續(xù)消耗電流5V 端一直有電流流過對低功耗設(shè)計不友好。我現(xiàn)在基本只在“低速、單向、接收端輸入阻抗很高”的場合才用它比如檢測一個 5V 的開關(guān)量信號速率不超過幾十 kHz這種場景下加個 100nF 的濾波電容穩(wěn)定又便宜。3.2 MOS 管雙向電路I2C 場景的經(jīng)典解法如果你搞過 I2C一定見過那個只有兩個 MOS 管加兩個上拉電阻的電路。這是電平轉(zhuǎn)換里最經(jīng)典、也最值得吃透的一個方案因為 I2C 是開漏總線天生支持這種雙向轉(zhuǎn)換而且?guī)缀醪换ㄊ裁村X。電路的核心是源極接低壓側(cè)比如 3.3V柵極接低壓側(cè)電源3.3V漏極接高壓側(cè)5V兩側(cè)各自有上拉電阻拉到自己的電源。選一個 Vgs(th) 比較低、在 3.3V 下能充分導(dǎo)通的 N 溝道 MOS 管比如常見的 2N7002、BSS138 這類小信號管子。它的工作邏輯分三種情況第一種兩側(cè)都是高電平。低壓側(cè) 3.3V 上拉柵極也是 3.3VVgs 0管子關(guān)斷。高壓側(cè) 5V 上拉漏極被拉到 5V而源極被低壓側(cè)上拉到 3.3V。此時漏極 5V 高于柵極 3.3V體二極管方向是從源到漏也就是從 3.3V 到 5V 是反向的不導(dǎo)通所以兩側(cè)各自保持 3.3V 和 5V。第二種低壓側(cè)拉低到 0。源極變 0柵極還是 3.3VVgs 3.3V管子導(dǎo)通漏極通過溝道被拉到 0于是 5V 側(cè)也變成低電平。這就完成了“低電平從低壓側(cè)傳向高壓側(cè)”。第三種高壓側(cè)拉低到 0。漏極變 0此時柵極 3.3V、源極 3.3VVgs 一開始是 0但漏極降低后體二極管會先導(dǎo)通把源極電壓往下帶源極一降Vgs 就超過了閾值管子徹底導(dǎo)通。于是低壓側(cè)也被拉到 0。這就是“低電平從高壓側(cè)傳向低壓側(cè)”。提示這個電路的本質(zhì)是“誰拉低誰說話”高電平永遠(yuǎn)是各自電源上拉出來的所以它只適合 I2C、SMBus 這類開漏總線不適合推挽輸出的 SPI、UART。你拿它去轉(zhuǎn) SPI兩個方向同時有驅(qū)動的時候會打架。實測下來這個電路在 400kHz 的標(biāo)準(zhǔn) I2C 速率下非常穩(wěn)快速模式 1MHz 也基本能用但上拉電阻要相應(yīng)減小。我的經(jīng)驗是3.3V 側(cè)用 4.7kΩ5V 側(cè)用 10kΩ這個組合在 400kHz 下邊沿很干凈。如果速率往上走可以降到 2.2kΩ但要留意功耗低功耗場景得權(quán)衡。3.3 專用電平轉(zhuǎn)換芯片速率高、方向多但選型有講究當(dāng)你的信號是推挽輸出、速率又比較高的時候MOS 管電路就不行了這時候得用專用芯片。市面上的電平轉(zhuǎn)換芯片大致分兩類自動方向識別的和帶方向引腳的。自動方向識別芯片的典型代表是 TXS 系列和 TXB 系列。TXS 是“自感應(yīng)邊沿加速”內(nèi)部檢測哪一側(cè)先動就自動決定方向用起來最省事但它有輸出阻抗驅(qū)動能力弱適合驅(qū)動純 CMOS 輸入。TXB 系列是“雙電源、推挽”速度快、驅(qū)動強(qiáng)但要求兩側(cè)都有明確的推挽驅(qū)動不能用在開漏總線上。這兩個系列的選型規(guī)則我在下面這張表里做個對比方便你對號入座。對比項自動方向TXS 類帶方向引腳TXB/SN74LVC 類方向控制自動識別需要 OE 或 DIR 引腳適用總線開漏、推挽都能用主要是推挽驅(qū)動能力較弱適合高阻輸入較強(qiáng)可驅(qū)動一定負(fù)載典型速率幾十 Mbps上百 Mbps雙向支持支持視型號常見坑驅(qū)動不足、邊沿變慢方向引腳接錯導(dǎo)致全反帶方向引腳的芯片比如 74LVC1T45 系列用法上要特別注意兩點一是方向引腳必須在通信前就設(shè)置好不能等到數(shù)據(jù)來了再切二是未使用的一端不能懸空否則會漏電甚至震蕩。我一般會把 OE 腳通過一個 100kΩ 電阻拉到使能電平同時留一個測試點方便后面調(diào)試。選芯片的時候我最看重的是三件事速率夠不夠、有沒有片上使能、封裝和供電范圍。速率上要留至少 30% 的余量比如你跑 10MHz 的 SPI就選 20MHz 以上的芯片供電范圍要覆蓋你的電壓域比如 1.8V 到 3.3V 的芯片要確認(rèn)它在 1.8V 端也能正常工作有些芯片低壓端的最低供電是 2.3V那就用不了。封裝上小項目用 SOT-23-6 這類就夠了批量大的話可以考慮多路的一顆芯片搞定整條總線省錢又省板面積。3.4 光耦和數(shù)字隔離器有隔離要求時的正解前面三種方案本質(zhì)上都是電氣直連兩側(cè)共地。如果你的兩個系統(tǒng)地電位不同、或者一端有高壓風(fēng)險、又或者需要幾百伏的隔離等級那就得上光耦或數(shù)字隔離器。光耦的原理很簡單輸入側(cè)驅(qū)動一個發(fā)光二極管輸出側(cè)用光敏器件接收光信號跨過絕緣層實現(xiàn)電氣隔離。它的優(yōu)點是便宜、可靠、扛干擾缺點是慢普通光耦的速率也就幾十 kHz 到幾百 kHz而且電流傳輸比會隨著時間和溫度漂移。更關(guān)鍵的是光耦是單向的雙向通信你得用兩個。典型的高速光耦比如 6N137能跑到 10Mbps但價格和功耗都上去了。數(shù)字隔離器是這幾年的主流方案用變壓器或者電容耦合代替光耦速率能到上百 Mbps功耗低壽命長而且很多型號是雙向的。缺點就是貴而且是貴不少。所以我的選型原則是普通板內(nèi)通信能用 MOS 管或?qū)S眯酒鉀Q的就別上隔離只有當(dāng)兩側(cè)真的不共地、或者有安全隔離要求時才用光耦或數(shù)字隔離器并且優(yōu)先考慮數(shù)字隔離器除非成本壓得特別狠。4. 實操搭一條 3.3V 與 5V 之間的 I2C 轉(zhuǎn)換鏈路4.1 器件清單與參數(shù)計算這一節(jié)我拿一個最典型的場景來演示主控是 3.3V 的 MCU掛一個 5V 的 OLED 屏走 I2C。這個組合我在好幾個項目里都用過穩(wěn)定性沒問題而且成本極低。需要的器件很精簡一顆 N 溝道 MOS 管我用的是 2N7002SOT-23 封裝隨手就能摸到、四個電阻兩個上拉、一個柵極限流可選、一個可選的濾波電阻、幾個 0.1μF 的退耦電容。先算上拉電阻。I2C 的上拉電阻不能隨便取它直接影響上升時間和功耗??偩€電容 Cb 包括器件引腳電容、走線電容、連接器電容我做小板子一般按 50pF 估線長的時候可以到 100pF 甚至更多。上升時間常數(shù) τ Rp × Cb標(biāo)準(zhǔn)模式要求上升時間不超過 1000ns快速模式不超過 300ns。取 Cb 50pF快速模式下 τ 要小于 100nsRp 就得小于 2kΩ。所以我一般 3.3V 側(cè)用 2.2kΩ5V 側(cè)用 4.7kΩ實測邊沿在 100ns 左右留有余量。注意上拉電阻越小上升越快但靜態(tài)功耗越大。I2C 空閑時高電平電流會一直從上拉電阻流到地。2.2kΩ 在 3.3V 下靜態(tài)電流約 1.5mA如果設(shè)備是電池供電這個數(shù)字要算進(jìn)功耗預(yù)算里。再算 MOS 管的選型。關(guān)鍵是 Vgs(th) 要低最好在 1V 以下這樣 3.3V 柵壓能保證充分導(dǎo)通。2N7002 的 Vgs(th) 最大 2.5V典型 1.6V3.3V 柵壓下 Rds(on) 通常在幾歐姆到十幾歐姆對于 I2C 這種小電流信號完全夠用。如果你手頭有 Vgs(th) 更低的管子比如 BSS138 的 Vgs(th) 典型 1.3V也完全可以用。4.2 電路搭建與上電測試步驟接線順序很簡單MOS 管源極接 3.3V 側(cè)的 SDA或 SCL漏極接 5V 側(cè)的 SDA或 SCL柵極接 3.3V 電源。3.3V 側(cè)的上拉電阻從 SDA 拉到 3.3V5V 側(cè)的上拉電阻從 SDA 拉到 5V。SDA 和 SCL 各來一套總共兩個管子、四個上拉電阻。提示柵極接的一定是低壓側(cè)電源3.3V千萬不能接 5V否則高電平時會一直導(dǎo)通邏輯全亂。這個坑我在第一次做的時候踩過折騰了一下午才反應(yīng)過來。上電測試我一般按這個順序來避免一上來就把問題攪在一起先不上電用萬用表量通斷。確認(rèn)源極只連到 3.3V 側(cè)、漏極只連到 5V 側(cè)沒有短路到相鄰管腳上拉電阻阻值正確。只上 3.3V不接 5V 器件。量 3.3V 側(cè) SDA 和 SCL 是不是被上拉到 3.3V確認(rèn)上拉有效。再接 5V量 5V 側(cè) SDA/SCL 是否被拉到 5V。此時 MOS 管應(yīng)該是關(guān)斷的兩側(cè)互不影響。用示波器同時看兩側(cè)波形。讓 MCU 發(fā)幾個字節(jié)觀察 3.3V 側(cè)拉低時5V 側(cè)是不是跟著拉低5V 側(cè)拉低時3.3V 側(cè)是不是也跟著拉低。兩邊高電平應(yīng)該分別是 3.3V 和 5V。最后掛上真實器件跑通信測試。讀 OLED 的 ID 或者寫幾個字節(jié)確認(rèn)數(shù)據(jù)正確。整個過程大概半小時能搞定。實測下來只要管子和電阻選對這個電路一次點亮的概率非常高。4.3 速率和邊沿實測記錄為了讓你心里有個數(shù)我把幾次實測的數(shù)據(jù)整理了一下測試條件都是 3.3V 側(cè) 2.2kΩ 上拉、5V 側(cè) 4.7kΩ 上拉、Cb 約 50pF速率上升時間3.3V 側(cè)上升時間5V 側(cè)通信結(jié)果100kHz約 90ns約 180ns穩(wěn)定400kHz約 95ns約 190ns穩(wěn)定1MHz約 130ns約 260ns基本穩(wěn)定偶有誤碼1.7MHz約 200ns約 400ns邊沿偏慢不適合從數(shù)據(jù)能看出來5V 側(cè)因為上拉電阻大上升時間明顯比 3.3V 側(cè)慢。如果非要跑 1MHz 以上那就把 5V 側(cè)上拉降到 2.2kΩ上升時間能壓到 130ns 左右但功耗會上去。我個人建議 I2C 就老老實實跑 400kHz速度快不了多少穩(wěn)定性卻好一大截尤其是線纜長的時候。5. 電源側(cè)轉(zhuǎn)換24V、12V 到 5V、3.3V 的工程做法5.1 穩(wěn)壓芯片怎么選看這四個指標(biāo)既然很多人會順帶搜 12V 轉(zhuǎn) 5V 穩(wěn)壓電路圖和 5V 轉(zhuǎn) 3.3V 穩(wěn)壓芯片這里就一并說清楚。選穩(wěn)壓芯片我主要看四點輸入范圍、輸出電流、壓差和效率。輸入范圍要覆蓋你的電源波動。比如 24V 電瓶滿電可能到 28V那你選的芯片輸入耐壓至少要到 30V 以上。輸出電流要按峰值算不能只看平均電流電機(jī)、繼電器啟動瞬間的電流可能是穩(wěn)態(tài)的好幾倍。壓差決定了輸入和輸出至少要差多少LDO 適合壓差小、電流小的場合壓差大、電流大就得上 DC-DC。從 24V 或 12V 直接降到 5V 或 3.3V如果電流超過 200mA我基本都推薦用 DC-DC 降壓效率能到 85% 以上發(fā)熱也小。LDO 在這個場景下發(fā)熱非常可觀比如 12V 降到 5V、電流 300mALDO 上耗散的功率是 (12-5)×0.3 2.1W沒有好的散熱片根本扛不住。而 DC-DC 的效率高損耗可能只有零點幾瓦。提示搜索“28v轉(zhuǎn)5v電源模塊”的時候要特別注意模塊標(biāo)稱的輸入范圍只是工作范圍瞬態(tài)耐壓往往更高做電瓶供電的項目一定要留出浪涌余量輸入端加 TVS 和足夠的輸入電容。5.2 5V 輸出端要不要加 TVS 管這是個被問爛了的問題我的答案很明確看你的 5V 后面接什么、以及 5V 從哪來。如果 5V 是給敏感芯片供電尤其是從長線、外部接口、或者電瓶這類容易有浪涌的源頭來的那必須加。TVS 的作用是把瞬態(tài)高壓鉗位到一個安全值防止它打穿后面的芯片。選 TVS 要看三個參數(shù)反向截止電壓 VRWM 要高于你正常工作電壓對于 5V 系統(tǒng)選 5.5V 或 6V 的鉗位電壓 VC 要低于后面芯片的絕對最大耐壓最好留 20% 余量峰值脈沖功率要夠大能吸收你預(yù)期的浪涌能量。如果 5V 是從板載 DC-DC 出來、線很短、后面又是普通邏輯芯片那加不加都行加了更保險不加也問題不大。我自己的習(xí)慣是只要是外部接口引入的電源一律加 TVS板內(nèi)生成的看成本和空間決定。5.3 語音芯片 3.3V 輸出接 5V 主控的實例語音芯片的 IO 大多是 3.3V 或者 2.8V 的推挽輸出用它去驅(qū)動 5V MCU 的輸入時很多人直接接上去發(fā)現(xiàn)識別不到高電平。原因是 3.3V 輸出的高電平只有 3.3V 左右而 5V MCU 的 VIH 可能要到 3.5V差了一點點。這種情況下的處理要看方向。從 3.3V 輸出到 5V 輸入可以用專用的升壓型電平轉(zhuǎn)換芯片比如帶 5V 側(cè)供電的雙電源芯片低壓側(cè)接 3.3V高壓側(cè)接 5V數(shù)據(jù)方向設(shè)置為 3.3V 到 5V。也可以用 MOS 管加上拉的方式讓 5V 側(cè)自己上拉到 5V實現(xiàn)電平抬升。而從 5V 輸出到 3.3V 輸入則要考慮分壓或者專用降壓方向芯片。我做過一個項目語音芯片是 2.8V 輸出MCU 是 3.3V 輸入。這兩個電壓太接近很多人以為可以直接連實際測試發(fā)現(xiàn)高溫或者批次差異時會偶發(fā)誤碼。最后我用了自動方向識別的雙電源芯片兩側(cè)分別供 2.8V 和 3.3V問題徹底解決。所以我的建議是電壓差小于 0.5V 的跨壓域通信最好也老老實實加轉(zhuǎn)換不要圖省事。6. 常見問題與排查技巧實錄6.1 通信丟包、誤碼的排查路徑電平轉(zhuǎn)換出問題表現(xiàn)基本都是通信不穩(wěn)。排查的時候我按這個順序走從簡單到復(fù)雜避免一上來就懷疑電路先量靜態(tài)電平。不通數(shù)據(jù)的時候兩側(cè)的高電平是不是分別等于各自電源低電平是不是接近 0。如果靜態(tài)就不對問題在硬件。再看動態(tài)波形。用示波器同時抓兩側(cè)信號看拉低的時候另一側(cè)有沒有跟著拉低邊沿是不是太慢有沒有過沖或者振鈴。查上拉電阻和總線電容。邊沿太慢大概率是上拉太大或者線太長振鈴明顯多半是走線阻抗不匹配可以串一個小電阻。核對電壓閾值。把發(fā)送端 VOH 和接收端 VIH 拿來對比留的余量夠不夠。最后查協(xié)議層。如果波形沒問題還丟包那就是時序、地址、時鐘的問題跟電平轉(zhuǎn)換無關(guān)了。6.2 常見故障速查表現(xiàn)象可能原因排查/解決方法高電平識別不到發(fā)送端 VOH 低于接收端 VIH加電平轉(zhuǎn)換或確認(rèn)能否調(diào)高供電低電平識別不到VOL 偏高超過接收端 VIL換低導(dǎo)通電阻器件縮短走線邊沿太慢上拉電阻過大、總線電容過大減小上拉縮短走線減少節(jié)點波形振鈴走線阻抗不匹配、無終端匹配串小電阻優(yōu)化布線偶發(fā)誤碼溫度相關(guān)閾值余量不足、器件批次差異加大余量換方案單向正常、反向不通MOS 管方向接反、方向引腳錯核對源漏、核對方向控制發(fā)熱嚴(yán)重電源轉(zhuǎn)換用了 LDO壓差大換 DC-DC加散熱上電瞬間異常浪涌、上電時序問題加 TVS、軟啟動、電源時序控制6.3 幾個踩過的坑寫出來讓你少走彎路第一個坑把 MOS 管雙向電路用在 SPI 上。SPI 是推挽輸出主從兩邊可能同時驅(qū)動同一根線用 MOS 管電路會導(dǎo)致電平打架通信時好時壞。后來老老實實換成帶方向引腳的專用芯片問題消失。記住那個電路只適合開漏總線。第二個坑上拉電阻兩個都取 10kΩ??此茖ΨQ美觀實際 5V 側(cè)邊沿慢得像爬坡400kHz 就誤碼。后來把 5V 側(cè)降到 4.7kΩ、3.3V 側(cè)降到 2.2kΩ波形立刻干凈。上拉電阻要按各自的電壓和需要的上升時間來算不能想當(dāng)然對稱。第三個坑忽視未使用通道的懸空。多路電平轉(zhuǎn)換芯片沒用的通道我一開始就讓它懸著結(jié)果漏電流偏大還偶爾震蕩。后來每個未用通道的輸入都拉到一個確定電平輸入接電源或地輸出留空問題解決。第四個坑以為電壓接近就能直連。前面說的 2.8V 和 3.3V 那個例子就是活生生的教訓(xùn)。后來我給自己定了個規(guī)矩只要兩邊供電不同哪怕只差 0.3V也先查閾值拿不準(zhǔn)就上轉(zhuǎn)換不賭運氣。7. 關(guān)于選型和成本的一點個人體會做了這么多板子我最大的體會是電平轉(zhuǎn)換這件事方案本身不復(fù)雜復(fù)雜的是判斷什么時候用哪個方案。新手容易過度設(shè)計一個幾十 kHz 的開關(guān)量信號也上個數(shù)字隔離器老手容易偷懶覺得電壓差不多就直接連結(jié)果批產(chǎn)的時候出問題。我的經(jīng)驗是選型之前先把三個問題問清楚方向是單向還是雙向速率是低速還是高速兩側(cè)是否共地、有沒有隔離要求這三個問題的答案組合起來方案基本就定了。低速單向共地電阻分壓或 MOS 管就夠高速雙向共地上專用芯片需要隔離上數(shù)字隔離器。成本上MOS 管方案幾分錢專用芯片幾毛到幾塊錢隔離方案幾塊到幾十塊按需選擇別浪費也別省過頭。還有就是電源轉(zhuǎn)換和信號轉(zhuǎn)換一定要分開考慮。我見過有人拿一個電平轉(zhuǎn)換芯片既想供電壓又想轉(zhuǎn)信號最后兩頭不討好。24V 轉(zhuǎn) 3.3V 的電源用一個靠譜的 DC-DC 模塊解決信號層面的跨壓域通信另算一套方案。分開想思路就清楚多了。最后說個我自己的檢查習(xí)慣每次畫完原理圖我都會單獨拉一張表把板上所有不同電壓域的器件列出來標(biāo)清楚哪些引腳要跨域通信然后逐個核對是否加了轉(zhuǎn)換、方向?qū)Σ粚?、上拉夠不夠、閾值余量夠不夠。這張表幫我攔下過不少問題尤其是板子復(fù)雜、器件多的時候比事后拿示波器一處處量要省事得多。你也試試養(yǎng)成這個習(xí)慣跨電壓域的設(shè)計會順很多。