3.4. 接腳與周邊裝置

接腳是 MCU 上最簡單的周邊裝置:一條把晶片連接到外界的單一線路。與真實硬體的每一次互動 —— 驅動 LED、讀取開關、量測電壓、透過序列線路傳送位元組 —— 最終都會經由一個或多個接腳。

3.4.1. 接腳模式

在做任何有用的事之前,接腳會先被設定成幾種 模式 之一:

  • Pin.IN —— 輸入。接腳觀測外部施加在它上面的電壓,並將其回報為 0(低)或 1(高)。

  • Pin.OUT —— 輸出。接腳將自身驅動到供應電壓(1)或接地(0),讓外部元件看到該電壓。

  • Pin.OPEN_DRAIN —— 只能將線路拉低的輸出。若要拉高,接腳會釋放(浮接),由外部的上拉電阻把線路抬高。用於多個裝置可能驅動同一條線路的共享匯流排。

輸入可選擇性地啟用內部的 上拉/下拉電阻,在沒有任何外部來源驅動接腳時保證一個明確的準位:

建構式以位置引數接受 id、mode 與 pull:

from machine import Pin

led    = Pin("P0", Pin.OUT)
button = Pin("P1", Pin.IN, Pin.PULL_UP)

3.4.2. 替代功能

大多數接腳除了 GPIO 角色之外還有一個 替代功能。晶片上的單一實體接墊可以是:

其他周邊裝置(更多的序列匯流排、計時器等)也會佔用特定接腳;晶片設計者把每個硬體區塊接到一組固定的接墊上。ADC 只能取樣路由到其多工器的接腳;UART 只能在其 TX 訊號所接的那一個接腳上傳送。

備註

OpenMV cam 把外部連接器的接腳標示為 P0P9(依板子略有不同)。哪個接腳承載哪種替代功能因板而異;表格請見 OpenMV Cam 快速參考

3.4.3. 板子差異

有幾項細節因板而異,應始終對照快速參考查證,而不要從另一塊板子的情況去推測:

  • 電壓耐受度。 有些 cam 具備 5 V 耐受的 I/O 接腳(可直接施加 5 V 訊號而不致損壞);其他則以 3.3 V 或 1.8 V 運作其 I/O,凡是高於該值的訊號都需要準位轉換器。把 5 V 來源接到不耐受的接腳上可能會損壞晶片。

  • ADC 參考電壓。 ADC 視為滿刻度的電壓取決於板子的 I/O 供電。read_u16() 一律回傳 0..65535,但 65535 所代表的電壓就是該板子的參考電壓。

  • 驅動能力。 GPIO 接腳能提供或吸收的電流有限 —— 通常為數十毫安。足以透過電阻驅動一顆小 LED;但不足以驅動馬達、蜂鳴器或任何電感性負載。任何較重的負載請改用外部驅動元件(電晶體、MOSFET、H 橋)。

OpenMV Cam 快速參考 提供每塊板子的確切數值。