GPIO是一種軟件運行期間能夠動態配置和控制的通用引腳
有不同的GPIObank,每個GPIO口的bank都會有編號的區分,
每個GPIO口除了通用的輸入輸出功能以外,還有其他復用功能,例如GPIO5_b4可以復用成:
- spi0_clk
- ts0_data4
- uart4exp_ctsn
一、GPIO的特性
1.可編程控制GPIO中斷
2.可邊沿觸發或者電平觸發
3輸入輸出可承受5V
4讀寫過程中通過位地址線進行位屏蔽
5弱上拉和若下拉電阻
6.2、4/8mA驅動,以及帶驅動轉換速率skew rate()的8沒A驅動
7開漏使能,數字輸入使能
二、GPIO的工作模式
1.高阻輸入
實際上就是一個帶有施密特觸發輸入的三態緩沖器(U1)高的輸入阻抗,施密特觸發輸入的作用就是將緩慢變化,或是畸變的輸入脈沖信號整形成理想的矩形脈沖信號。讀脈沖信號把當前的電平狀態讀出到內部總線上,不執行讀操作的時候,外部管腳和內部總線隔離。
2.推挽輸出
這里的推挽主要指的是T1 和T2組成的反相器部分,T1或者T2導通的時候,都具有低的阻抗,但是T1T2不會同時導通,或者同時關閉,這樣形成的就是推挽輸出。在實際的開發板上,T1T2實際上是多組可編程選通的晶體管,驅動能力可以自行配置為各種電流輸出的。GPIO還有回讀的功能,實現回讀功能的實際上是一個簡單的三態門U2,回讀到的是管教的輸出緩存狀態,不是外部管腳的狀態。
U17.com是輸出緩存器,在執行GPIO管教的寫操作的時候,在寫脈沖的作用下,數據被鎖存到Q和Q1。
3.開漏輸出
開漏輸出的結果與推挽輸出類似,GPIO管腳在開漏輸出下的等效結構模式圖,,實際上就是一個開關,輸出1時斷開,輸出0時接到地上,(有一定的內阻)。回讀的時候讀到的仍然是輸出鎖存器的狀態,而不是外部管腳的pin狀態。開漏輸出不能用於輸入。
實際用用的時候要加上上拉電阻,開漏輸出可以方便的實現線與邏輯,另外他可以實現不同邏輯電平之間的轉換,只需要接一個上拉電阻,不需要額外的轉換電路。典型的應用例子就是基於OD的IIC總線。
4.鉗位二極管
作用在於防止外部管腳Pin的輸入電壓過高或者過低,VDD的正常供電電壓是3.3V,如果從pin輸入信號電壓超過VDD加上二極管D1的導通壓降假定0.6V(),着二極管D1導通,會把多余的電流引入到VDD,而真正輸入到內部的信號不會超過3.9V,同理,D2可以限制輸入電壓的最小值,使之不超過-0.6V 。
另外,加上一個ZYNQ的IO的用法:
附加一個樹莓配的GPIO配置方法:https://blog.csdn.net/xukai871105/article/details/12684617