跨電源域倒灌怎麼查?待機上拉接到主電源晶片
先講答案
待機電源域(例如 S5,關機也有電)的上拉電阻,接到只有開機(S0)才有電的晶片腳位上;關機時,電會從上拉電阻流進那顆晶片的內部保護二極體,再流到它已經斷電的電源軌上,把那條電源頂起來。晶片可能半開機、漏電或誤動作。
倒灌電流可以先手算:
I ≈ (有電那側的電壓 − 0.6 V) ÷ (上拉電阻 + 斷電軌對地等效負載)
例:3.3 V 經 10 kΩ 上拉,斷電軌等效負載 1 kΩ,約 0.245 mA,電源軌被頂到約 0.24 V。如果不是上拉、而是待機晶片的輸出腳直接接過去(輸出電阻 50 Ω),電流變成約 2.5 mA,斷電的 1.8 V 軌被頂到 2.48 V,比它正常的電壓還高。
檢查方法:每條電源 net 標上電源域,找出「一頭有電、另一頭斷電」的上拉和直連,逐條算。
原理:電從訊號腳鑽進斷電晶片的保護二極體
一塊板子通常有好幾組電源:有的只在開機時有電(S0),有的待機也有電(S3、S5、常時電源)。每顆晶片的 IO 腳,裡面都有保護二極體接到它自己的電源和地。
晶片有電時,這顆二極體是反偏的,沒事。晶片斷電時,它的電源軌是 0 V;這時如果訊號線被另一個還有電的電源域拉高,腳位電壓就比電源高,二極體順偏導通,電流沿著「上拉電阻 → 腳位 → 保護二極體 → 斷電的電源軌 → 軌上的負載 → 地」這條路流。
斷電軌被頂到多少,就是倒灌電流流過那條軌等效負載的壓降。等效負載越大(軌上掛的東西越少),被頂得越高。
另一種相關的問題:接收端讀不到有效電位。接收晶片還有電,但線上的上拉和驅動端都斷電了,線被拉到斷電的軌(通常是 0 V)。低電位有效的訊號(名字結尾 _N、#)讀成低,就等於「一直被按著」。這不是倒灌,是功能問題。
為什麼審圖容易漏:開機時一切正常,進 S3/S5 才出事,上拉電阻和晶片又常不在同一頁圖。
算例:一條上拉跨域、一條直連跨域
示範電路是自己寫的(不是任何產品的電路),三顆晶片:
- U1:接 +3V3_S5(待機也有電)
- U2:接 +3V3_S0(只在開機有電)
- U3:接 +1V8_S0(只在開機有電)
模擬條件用預設:斷電軌對地等效負載 1000 Ω、直連時驅動端輸出電阻 50 Ω。
第一條:/SMB_DAT,上拉跨域。 R1 10 kΩ 從 +3V3_S5 上拉,線上接著 U2(S0)。進 S3、S5 時:
| 項目 | 手算 | 模擬 |
|---|---|---|
| 倒灌電流 | (3.3 − 0.6) ÷ (10,000 + 1,000) = 0.245 mA | 0.244 mA |
| U2 腳位電壓 | — | 0.86 V |
| +3V3_S0 被頂到 | — | 0.24 V |
第二條:/WAKE_N,直連跨域。 U1(S5)的輸出腳直接接到 U3(1.8 V,S0)的輸入腳。進 S3、S5 時:
| 項目 | 手算 | 模擬 |
|---|---|---|
| 倒灌電流 | (3.3 − 0.6) ÷ (50 + 1,000) = 2.57 mA | 2.48 mA |
| U3 腳位電壓 | — | 3.18 V |
| +1V8_S0 被頂到 | — | 2.48 V |
手算和模擬差 0.7% 和 3.4%,差在二極體實際壓降不是剛好 0.6 V。
第二條嚴重得多:沒有電阻限流,1.8 V 晶片在「斷電」時電源被頂到 2.48 V。
同一份電路還有第三筆:/PWRBTN_N 的上拉 R3 100 kΩ 接 +1V8_S0、驅動端 U3 也在 S0,但讀它的 U1 在 S5。關機時這條線被拉到斷電的軌,U1 讀成低——低電位有效,等於電源鍵一直被按著。這筆是「讀不到電位」,不是倒灌。
常見誤區
一、開機驗證都過了,就當沒問題。 倒灌和讀錯電位只在部分電源域斷電時出現,要逐個電源狀態看。
二、只找上拉,漏了直連。 待機晶片的輸出腳直接接主電源域晶片,電流比上拉大一個數量級,上面第二條就是。
三、把開汲極的線當成安全的。 從 netlist 看不出驅動端是不是開汲極,保守做法是 output、bidirectional、open_collector 都當成可能推高電位,先列出來再逐條判斷。
四、忘了晶片腳位內建的上拉、下拉。 netlist 看不到,沒標就當沒有;要照晶片規格書補上,結果才會對。內建上拉在有電的域、外部上拉接到斷電的軌,一樣會倒灌,只是量小。
五、只靠 net 名稱判斷電源域。 名稱推斷會錯,名字沒寫電壓的電源只能先假設;多電源晶片也無法從 netlist 知道每支腳屬於哪個電源。推斷結果要人看過一次。
常見改法:把上拉改接到同一個電源域、串一顆隔離 MOSFET,或選有「斷電時腳位高阻抗」的晶片;讀錯電位那類,把上拉改接到接收端那個一直有電的電源域,或讓韌體在對方斷電時忽略那支腳。
用工具掃你自己的 netlist
把 KiCad 匯出的 .net/.xml,或「元件,腳位,net,值」的 CSV 貼進跨電源域倒灌檢查器:它照電源 net 名字推斷電源域(推錯直接改),列出上拉跨域、直連跨域、讀不到電位的線,點一筆就跑直流模擬看倒灌多少,附手算檢核。也會抓出被短路的串聯元件與只接一支腳的 net,結果可匯出 CSV。
netlist 只在你的瀏覽器裡讀,不會上傳。
註冊只要 email,7 天全功能試用,不用信用卡。