Zynq-7000系列的通用I/O(GPIO)簡介
掃描二維碼
隨時隨地手機看文章
簡介
通用I/O(GPIO)外設(shè)通過MIO模塊的54個設(shè)備引腳為軟件提供了觀察和控制功能,它還可以從可編程邏輯訪問64個輸入(PL)和128個輸出通過EMIO接口輸出到PL,GPIO分為四個存儲區(qū)注冊該組相關(guān)的接口信號。
每個GPIO均獨立且動態(tài)地編程為輸入、輸出或中斷檢測,同時軟件也可以使用一條加載指令讀取存儲體中的所有GPIO值,或?qū)?shù)據(jù)寫入其中一個單個存儲指令使用一個或多個GPIO(在GPIO范圍內(nèi))。
GPIO控制和狀態(tài)寄存器被映射到基地址為0xE000_A000的存儲器。
特點
GPIO外設(shè)的主要功能總結(jié)如下:
-
54個用于設(shè)備引腳的GPIO信號(通過MIO多路復(fù)用器路由)
- 輸出具有三態(tài)能力
-
通過EMIO接口在PS和PL之間提供192個GPIO信號
- 64個輸入,128個輸出(64個真輸出和64個輸出使能)
-
每個GPIO的功能都可以在單個或組的基礎(chǔ)上動態(tài)編程
-
啟用,位或存儲體數(shù)據(jù)寫入,輸出啟用和方向控制
-
基于單個GPIO的可編程中斷
-
原始和屏蔽中斷的狀態(tài)讀取
-
可選靈敏度:電平敏感(高或低)或邊緣敏感(正,負或兩個都支持)
框圖
GPIO框圖
如圖所示,GPIO模塊分為四個組:
?Bank0:32位存儲體控制MIO引腳[31:0]
?Bank1:22位存儲體控制MIO引腳[53:32]
注意:Bank1限制為22位,因為MIO共有54個引腳
?Bank2:控制EMIO信號的32位存儲體[31:0]
?Bank3:控制EMIO信號的32位存儲區(qū)[63:32]
GPIO由軟件通過一系列內(nèi)存映射寄存器控制,盡管MIO和EMIO的Bank之間由于它們的功能不同存在細微差異,但每個Bank都是相同的。
注意點
7z007s和7z010 CLG225器件
7z007s單核和7z010雙核CLG225器件將可用的MIO引腳減少到MIO一覽表中的“MIO表”所示,如下圖
因此,在這些設(shè)備中,唯一的GPIO可用于MIO的引腳為15:0、39:28、48、49、52和53。其他MIO引腳未連接,不應(yīng)該使用,所有EMIO信號均可用。
MIO注意事項
GPIO外圍模塊的存儲體0和1通過MIO模塊路由至設(shè)備引腳,有關(guān)MIO操作的完整說明如下圖
MIO-EMIO概述
通過slcr.MIO_PIN_xx寄存器可實現(xiàn)對MIO的主要控制,請注意以下幾點:
-
用戶必須根據(jù)用戶系統(tǒng)的字段使用IO_Type,PULLUP,DisableRcvr和Speed選擇正確的I/O類型。
-
用戶必須通過多路復(fù)用器控制字段L0_SEL,L1_SEL,L2_SEL和L3_SEL。注意,每個I/O引腳都可以單獨選擇,當MIO引腳用于IOP設(shè)備,它不可用作GPIO。
-
TRI_ENABLE應(yīng)該設(shè)置為0,這使GPIO可以控制I/O的三態(tài)模式,如果MIO中的TRI_ENABLE設(shè)置為1,則無論GPIO如何,輸出驅(qū)動器都將處于3狀態(tài)設(shè)置。
總結(jié)
GPIO是普通IO口,是用于ARM的常用IO,具有普遍意義,相應(yīng)的設(shè)計需要根據(jù)手冊得到實際的模塊。也是我們必須掌握的基礎(chǔ)知識點。





