在編寫程序之前,先來了解GPIO的BANK分布,在UG585文檔GPIO一章中可以看到GPIO是有4個BANK,注意與MIO的BANK區分。BANK0控制32個信號,BANK1控制22個信號,總共是MIO的54個引腳,BANK2和BANK3共能控制64個PL端引腳,每一組都有三個信號,輸入EMIOGPIOI,輸出EMIOGPIOO,輸出使能EMIOGPIOTN,共192個信號。
下圖為GPIO的控制,實驗中會用到輸出部分的寄存器,數據寄存器DATA,數據掩碼寄存器MASK_DATA_LSW,MASK_DATA_MSW,方向控制寄存器DIRM,輸出使能控制器OEN。
程序中利用以下函數設置方向和輸出使能:
int main() { XGpioPs_Config *GPIO_CONFIG ; int Status ; //通用手法,查找GPIO列表 GPIO_CONFIG= XGpioPs_LookupConfig(MIO_0_ID); //Exception的檢測 Status= XGpioPs_CfgInitialize(&GPIO_PTR, GPIO_CONFIG, GPIO_CONFIG->BaseAddr) ; if (Status != XST_SUCCESS) { return XST_FAILURE ; } //設置MIO的PIN引腳方向 XGpioPs_SetDirectionPin(&GPIO_PTR,0, GPIO_OUTPUT) ; XGpioPs_SetDirectionPin(&GPIO_PTR,13, GPIO_OUTPUT) ; //使能MIO的PIN引腳輸出 XGpioPs_SetOutputEnablePin(&GPIO_PTR,0, GPIO_OUTPUT) ; XGpioPs_SetOutputEnablePin(&GPIO_PTR,13, GPIO_OUTPUT) ; while(1) { XGpioPs_WritePin(&GPIO_PTR,0, 1) ; XGpioPs_WritePin(&GPIO_PTR,13, 0) ; usleep(100000); XGpioPs_WritePin(&GPIO_PTR,0, 0) ; XGpioPs_WritePin(&GPIO_PTR,13, 1) ; usleep(100000); } return 0; }
實現兩個LED的閃爍
編輯:hfy
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
寄存器
+關注
關注
31文章
5363瀏覽量
121198 -
GPIO
+關注
關注
16文章
1216瀏覽量
52391 -
MIO
+關注
關注
0文章
12瀏覽量
8184 -
Zynq
+關注
關注
10文章
610瀏覽量
47298 -
bank
+關注
關注
0文章
16瀏覽量
14901
發布評論請先 登錄
相關推薦
ZYNQ開發案例:GPIO的結構體系及使用案例
GPIO的結構體系 zynq的GPIO,分為兩種,MIO(multiuse I/O)和EMIO(extendable multiuse I/O)。 ZYNQ的
Xilinx ZYNQ開發GPIO的三種方式:MIO、EMIO、AXI_GPIO
前言: ZYNQ 7000有三種GPIO:MIO,EMIO,AXI_GPIO MIO是固定管腳的,屬于PS,使用時不消耗PL資源;EMIO通過PL擴展,使用時需要分配管腳,使用時消耗PL管腳資源
淺談GPIO的操作
本帖最后由 芯靈思FAE 于 2016-7-31 12:48 編輯
淺談GPIO的操作很久很久以前,我們如果在Linux系統下操作GPIO是這樣的......gpio.c申請
發表于 07-31 12:47
玩轉Zynq連載2——Zynq PS的GPIO外設
的設置,可以實現對一個bank中特定一個或多個GPIO的控制。 其它幾個主要寄存器的功能如下。 ● DATA寄存器。當GPIO配置為輸出時,該寄存器用于配置
發表于 04-18 16:33
將LVDS輸出驅動器連接到ZYNQ 7030的HP Bank的方法?
你好我需要將LVDS輸出驅動器連接到ZYNQ 7030的HP Bank。LVDS輸出驅動器的電源電壓為VCCO_LVDSout_DRIVER = 2.5V,HP bank為VCCO_HP_BA
發表于 08-12 09:34
ZYNQ的GPIO相關資料推薦
ZYNQ 分為 PS 和 PL 兩部分,那么器件的引腳(Pin)資源同樣也分成了兩部分。ZYNQ PS 中的外設可以通過 MIO(Multiuse I/O,多用輸入/輸出)模塊連接到 PS 端的引腳
發表于 02-08 07:27
ZYNQ 的三種GPIO :MIO、EMIO、AXI
。 我們先看一下MIO和EMIO:下圖EMIO和MIO的結構。其中MIO分布在BANK0,BANK1,而EMIO則分布在BANK2、
發表于 02-08 10:23
?3368次閱讀
被zynq的GPIO唬住,告訴你zynq的3種GPIO
我們先看有哪三種GPIO:MIO、EMIO、AXI_GPIO。其中MIO和EMIO是直接掛在PS上的GPIO。而AXI_GPIO是通過AXI總線掛在PS上的
發表于 07-07 08:23
?5299次閱讀
zynq中三種實現GPIO的方式
GPIO功能,PS部分通過M_AXI_GP接口來控制該GPIO IP模塊;另外EMIO模塊雖然使用PS部分GPIO但也使用了PL部分的管腳資源。MIO方式實現GPIOvivado中
LINUX GPIO如何驅動源碼移植
GPIO是嵌入式系統最簡單、最常用的資源了,比如點亮LED,控制蜂鳴器,輸出高低電平,檢測按鍵,等等。GPIO分輸入和輸出,在Montavista linux-2.6.18中,有關GPIO
發表于 06-26 17:43
?4次下載
ZYNQ的GPIO簡介
ZYNQ 分為 PS 和 PL 兩部分,那么器件的引腳(Pin)資源同樣也分成了兩部分。ZYNQ PS 中的外設可以通過 MIO(Multiuse I/O,多用輸入/輸出)模塊連接到 PS 端的引腳
發表于 12-04 18:51
?16次下載
ZYNQ學習筆記_GPIO之輸入輸出
ZYNQ學習筆記_GPIOGPIO介紹MIO介紹EMIO介紹控制GPIO接口的寄存器原理GPIO介紹GPIO的英文全稱為General-purpose input/output,即一種
發表于 12-04 19:36
?10次下載
評論