樹莓派提供了一個連接頭讓我們訪問CPU的17個GPIO接口,如下圖
這些接口可配置成輸入或輸出。本文主要討論GPIO引腳作為輸出時電流的限制。
阻抗 (impendance)
阻抗和和電阻的區別(resistance)在於電阻的阻值是固定的,不會隨著電流變化,阻抗則不然,可能隨著外部變化,如電流或頻率變化。從另一個角度來說,電阻是線性的,但阻抗不是。比如放大器的阻抗會隨著輸出的信號頻率變化。
樹莓派的的每個GPIO引腳都有一個寄存器可以設置引腳的驅動強度,也就是在保持輸出電壓為邏輯0和1的情況下,可以改變阻抗的大小從而改變GPIO引腳的輸出電流大小。
通過如下電路測量相同電流下不同阻抗對應的GPIO電壓輸出(其中用到了一個電位器調節電流保持恆定):
通過計算後,下表是當輸出電流為2,4 … 16mA時,對應的阻抗大小以及如果發生短路時的短路電流大小。
可以看出短路電流都是超過16mA的。
一個發光二極管壓降約為1.5~2.0v,工作電流為3~10v
GPIO引腳的電流是通過板上的3.3V電壓調整器輸出的,樹莓派是按平均每個引腳3mA來設計的,所以總的電流不能超過17 * 3 = 51mA。
結論 :
需要注意的是Raspberry Pi 的GPIO :
1.有電流輸出的限制;每個接腳輸出最大為16mA,全部接腳同時最大輸出為51mA,所以通常會透過電流放大電路來驅動裝置, 不要直接驅動負載。
2.GPIO為3.3V準位加上沒有保護電路;千萬不要輸入5V電壓到接腳上,保護電路部分通常做法是接一個暫存器 (Register)或緩衝器(Buffer)來做緩衝。
3.GPIO不是即插即用的介面;除了要非常小心避免電路接錯外,在開啟Raspberry Pi 電源情況下不要隨意增加或修改電路。