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





