gpio

通用型之輸入輸出

GPIO(英語:General-purpose input/output),通用型之輸入輸出的簡稱,功能類似8051的P0—P3,其接腳可以供使用者由程式控制自由使用,PIN腳依現實考量可作為通用輸入(GPI)或通用輸出(GPO)或通用輸入與輸出(GPIO),如當clk generator, chip select等。

既然一個引腳可以用於輸入、輸出或其他特殊功能,那麼一定有寄存器用來選擇這些功能。對於輸入,一定可以通過讀取某個寄存器來確定引腳電位的高低;對於輸出,一定可以通過寫入某個寄存器來讓這個引腳輸出高電位或者低電位;對於其他特殊功能,則有另外的寄存器來控制它們。

優點


GPIO的優點(埠擴展器)
gpio
gpio
低功耗:GPIO具有更低的功率損耗(大約1μA,μC的工作電流則為100μA)。
集成IIC從機介面:GPIO內置IIC從機介面,即使在待機模式下也能夠全速工作。
小封裝:GPIO器件提供最小的封裝尺寸 ― 3mm x 3mm QFN!
低成本:您不用為沒有使用的功能買單。
快速上市:不需要編寫額外的代碼、文檔,不需要任何維護工作。
靈活的燈光控制:內置多路高解析度的PWM輸出。
可預先確定響應時間:縮短或確定外部事件與中斷之間的響應時間。
更好的燈光效果:匹配的電流輸出確保均勻的顯示亮度。
布線簡單:僅需使用2條就可以組成IIC匯流排或3條組成SPI匯流排。
與ARM的幾組GPIO引腳,功能相似,GPxCON控制引腳功能,GPxDAT用於讀寫引腳數據。另外,GPxUP用於確定是否使用上拉電阻。x為A,B,,H/J,
GPAUP沒有上拉電阻。

寄存器


1. GPxCON寄存器
用於配置引腳功能。Configure
PORT A 與 PORT B~PORT H/J在功能選擇上有所不同,GPACON中每一位對應一根引腳,共23個引腳。當某位被設為0時候,相應引0腳為輸出引腳。此時我們可以在GPADAT 中相應的寫入 1或者 0 來讓此引腳輸出高電平或者低電平;當某位被設為1時,相應引腳為地址線或用於地址控制,此時GPADATA無用。
一般而言 GPACON 通常被設為 1 ,以便訪問外部器件。
PORT B~PORT H/J
在寄存器操作方面完全相同,GPxCON中每兩位控制一根引腳,
00輸入01輸出
10 特殊功能11保留不用
2.GPxDAT寄存器
GPxDAT用於讀寫引腳,當引腳被設為輸入時候,讀此寄存器可知道相應引腳的電平狀態高還是低,當引腳被設為輸出時候,寫此寄存器的位,可令引腳輸出高電平還是低電平。
3.GPxUP寄存器
GPxUP寄存器某位為1時,相應管腳沒有內部上拉電阻;為0時候相應管腳有內部上拉電阻。
上拉電阻作用在於,當GPIO引腳處於第三種狀態時候,既不是輸出高電平,也不是輸出低電平。而是呈現高阻態,相當於沒有接晶元。它的電平狀態由上下拉電阻決定。