3.8. 電壓位準轉換

相機上的 GPIO 接腳在輸出高電位時約驅動 3.3 V。另一側的裝置可能以 5 V 運作(較舊的微控制器、許多感測器板)或 1.8 V 運作(較新的感測器、某些晶片對晶片匯流排)。將兩者直接相連有時安全、有時具破壞性;電壓位準轉換(level shifting)就是可靠橋接這道落差的電路。

3.8.1. 為何直接跨電壓驅動會傷害接腳

每顆晶片的 I/O 接墊都有一對內建的保護二極體:一個從接腳通往接地、另一個從接腳通往晶片的供電軌。它們的作用是吸收靜電放電(ESD)——一種來自靜電、短暫且高壓的尖峰脈衝,會在處理電路板時打到接腳上。一個剛走過地毯的人可能帶有數千伏特的靜電;觸碰到不該碰的接腳,會在數奈秒內把這些電荷轉移到晶片上。上方的保護二極體會正向偏壓,在脈衝抵達晶片內部的電晶體之前,安全地將其分流到供電軌中。

當把 5 V 訊號持續施加在一個不耐 5 V 的 3.3 V 接腳上時,上方的保護二極體會永遠導通。這些二極體是針對短暫的 ESD 脈衝設計,而非穩態電流;供電軌會開始升高到 3.3 V 以上,二極體發熱,最終不是接腳燒毀,就是晶片內的電壓調節器失效。

耐 5 V 的接腳採用不同的輸入級——上方二極體接到更高的電軌或根本不存在——因此施加 5 V 並無害。某塊板子的接腳是否耐 5 V 因板而異;請查閱 OpenMV Cam 快速參考

另一個方向也有自己的問題。一個 3.3 V 的 GPIO 驅動高電位時,在導線上產生約 3.3 V。一個需要 0.7 × Vcc 才能辨識為的 5 V 接收端,其閾值在 3.5 V;3.3 V 可能被讀成低電位或模稜兩可。即使沒有造成損壞,訊號也無法可靠運作。

電壓位準轉換器可同時解決這兩個方向。

3.8.2. 作為開關的 N-MOSFET

下方的電路使用單顆 N 通道 MOSFET。它有三支接腳——閘極(gate)、汲極(drain)與源極(source)——其行為如同一個由電壓控制的開關。

控制輸入是閘極與源極之間的電壓,寫作 Vgs(閘源電壓):

Vgs = (gate voltage) - (source voltage)

MOSFET 在意的是這個差值,而非任一接腳上的絕對電壓。其行為由 Vgs 決定:

  • Vgs 高於 MOSFET 的閾值電壓(對於小訊號邏輯位準元件,通常約為 1 V)時,電晶體導通,電流可自汲極自由流向源極。

  • Vgs 等於或低於 0 時,電晶體截止,幾乎沒有電流從汲極流向源極。

汲極到源極的路徑就是受開關控制的電流路徑;Vgs 負責開啟或關閉那個開關。

N-MOSFET 在汲極與源極之間還有一個體二極體(body diode),當汲極被拉到比源極低超過約 0.6 V 時便會導通。這個二極體是製程的副作用;下方的雙向轉換器則刻意加以利用。

3.8.2.1. 接線規則

N-MOSFET 並非對稱的三端元件。體二極體由源極(陽極)指向汲極(陰極),而控制通道的是 Vgs。由此衍生出兩條規則,且每一個 N-MOSFET 開關電路都必須遵守:

  • 源極接較低電壓;汲極接較高電壓。 當汲極接在較高電軌時,體二極體為逆向偏壓而不起作用。若把兩者對調,體二極體就會一直處於正向偏壓:電流會不論閘極在做什麼,都從現在較高的源極經由體二極體流向現在較低的汲極。MOSFET 不再是開關——它會持續漏電、訊號無法關閉,且元件常因此過熱失效。

  • 閘極繫接到源極所在的電壓軌。 將閘極維持在源極靜止時所在的電軌上,可使閒置時 Vgs = 0、遠低於閾值;MOSFET 會穩固地保持截止,直到某物把閘極驅動到高於源極(下方的單向電路),或把源極拉到低於閘極(雙向電路)為止。若讓閘極懸浮在其他地方,截止狀態就不再有明確定義——雜訊、漏電或雜散電容都可能使 Vgs 漂移到閾值以上,隨機地讓 MOSFET 導通。

違反任一規則都會讓電壓位準轉換器變成漏電、不可靠的路徑。下方的兩個轉換電路皆遵循這些規則:源極在較低側、汲極在較高側、閘極繫接或由源極的電軌驅動。

3.8.3. 單向 3.3 V → 5 V

最簡單的電壓位準轉換器把單一方向的訊號從相機的 GPIO 推入 5 V 輸入。單顆 N-MOSFET 加上兩個電阻即可完成。

一顆接成反相器的 N 通道 MOSFET。3.3 V 的 GPIO 驅動閘極;源極接地;汲極 透過 10 kΩ 上拉到 5 V;汲極 同時也作為 5 V 輸出取出。

一顆 N-MOSFET 把 3.3 V 訊號做電壓位準轉換(並反相)成 5 V 輸出。

當 GPIO 驅動高電位(閘極為 3.3 V)時,Vgs 高於閾值,MOSFET 導通;汲極被拉低到約 0 V。當 GPIO 驅動低電位(閘極為 0 V)時,MOSFET 截止,10 kΩ 上拉電阻把汲極帶到 5 V。

輸出是輸入的反相。軟體可以把訊號翻轉回來(寫入 0 表示「5 V 輸出為高」),或串接兩級以取得非反相訊號,代價是元件數量加倍。

3.8.4. 以單顆 N-MOSFET 達成雙向

對於必須能從任一側驅動的線路——一條任一端都能把線拉低的共用匯流排——標準電路是每條線一顆 N-MOSFET,並對每一側的供電各配一個上拉電阻。

一個雙向 N-MOSFET 電壓位準轉換器。MOSFET 橋接左側的 3.3 V 訊號線與右側的 5 V 訊號線;閘極接到 3.3 V 供電、源極接到 3.3 V 訊號、汲極接到 5 V 訊號;每條訊號 線都各有自己接往其供電的上拉電阻。

單顆 N-MOSFET 橋接一條 3.3 V 與一條 5 V 線路;每一側各有自己的上拉電阻。

閘極繫接到 3.3 V 供電,因此 MOSFET 的行為取決於哪一側在驅動:

  • 兩側皆閒置。 源極經由左側上拉維持在 3.3 V;閘極為 3.3 V;Vgs = 0;MOSFET 截止。5 V 側經由右側上拉浮升到 5 V。兩側皆讀為高。

  • 3.3 V 側拉低。 源極降到 0 V;Vgs 升到閾值以上;MOSFET 導通並從源極導通到汲極。5 V 側透過電晶體被拉低。

  • 5 V 側拉低。 汲極降到 0 V;MOSFET 的體二極體(汲極到源極)變為正向偏壓並導通;源極(3.3 V 側)被拉低到約 0.6 V。Vgs 隨之超過閾值,MOSFET 完全導通,使兩側皆為低。

BSS138 是這種電路的標準 N-MOSFET;具有相近閘極閾值電壓的小訊號邏輯位準 N-MOSFET 在此處的行為都相同。