目錄
樹莓派相比成品化的電腦來說有很多獨立的GPIO口可供開發使用,可以方便的實現很多實物相關的功能。本文將對樹莓派開放給用戶的GPIO口的針腳定義、電氣特性、啓動狀態等基礎內容做個說明。
GPIO口定義
目前主流的樹莓派型號通常都有40針GPIO口可供使用,通常定義如下圖:
從圖上可以看到樹莓派的GPIO主要分爲5V、3.3V、接地以及通用GPIO口,其中通用的GPIO口大多又可以複用爲其它外設使用(注意GPIO 0和1有特殊作用,一般不要操作)。
對於有桌面環境的Raspbian系統還可以在終端中輸入 pinout
來獲取針腳定義:
更多IO口定義查詢可以參考下面鏈接:
https://pinout.xyz
https://github.com/splitbrain/rpibplusleaf
電氣特性
樹莓派上可供編程使用的GPIO口的電氣特性基礎的如下:
Symbol | Parameter | Conditions | Min | Typical | Max | Unit |
---|---|---|---|---|---|---|
VIL | Input Low Voltage | VDD IO = 3.3V | – | – | 0.9 | V |
VIH | Input high voltage | VDD IO = 3.3V | 1.6 | – | – | V |
IIL | Input leakage current | TA = +85◦C | – | – | 5 | µA |
CIN | Input capacitance | TA = +85◦C | – | 5 | – | pF |
VOL | Output low voltage | VDD IO = 3.3V, IOL = -2mA | – | – | 0.14 | V |
VOH | Output high voltage | VDD IO = 3.3V, IOH = 2mA | 3.0 | – | – | V |
IOL | Output low current | – | – | – | – | mA |
IOH | Output high current | – | – | – | – | mA |
RPU | Pullup resistor | – | 50 | – | 65 | kΩ |
RPD | Pulldown resistor | – | 50 | – | 65 | kΩ |
上面表格中我沒有填寫輸出電流參數,樹莓派主控芯片的GPIO口輸出電流強度是可以配置的(最小2mA,最大16mA,默認爲8mA)。這裏強度並不是指只能輸出設定值的電流,而是能力,比如設定爲8mA時也可以輸出到16mA,只不過輸出電壓會下降的比較厲害:
上面是一方面的電流相關因素,另一方面樹莓派17個用戶IO口總共可以輸出實際電流爲51mA,即如果各個IO口同時輸出的話平均每個IO口輸出電流爲3mA。
總之輸出電流這一項還是需要綜合來考慮。
更多內容可以參考下面鏈接:
https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/README.md
https://www.raspberrypi.org/documentation/hardware/raspberrypi/gpio/gpio_pads_control.md
啓動狀態
樹莓派在上電運行進入系統前GPIO會盡經歷好幾個階段:
- 芯片上電時GPIO口會處於帶上下拉電阻的輸入狀態;
- 由bootrom控制;
- 由bootcode.bin控制;
- 由dt-blob.bin控制(設備樹文件,該文件用戶也可自行編寫生成);
- 由config.txt文件中的GPIO command設置(根據需求自行編寫);
- 特定功能針腳初始化(如UART);
- 內核/設備樹;
對於大部分針腳而言在進入系統後的GPIO口狀態其實就是芯片上電時的 帶有上下拉電阻的輸入狀態
,下面是樹莓派4B的IO口功能複用表其中 Default Pull
列即爲上電時默認的上下拉狀態:
目前其它的同爲40Pin的樹莓派默認狀態基本都是一樣的。
更多內容可以參考下面文檔:
《Raspberry Pi 4 Model B Datasheet》
總結
樹莓派GPIO口的基礎說明主要就是上面那些內容了,更多內容可以參考官方說明:
https://www.raspberrypi.org/documentation/usage/gpio/README.md