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