Zynq-7000系列的通用I/O(GPIO)简介
扫描二维码
随时随地手机看文章
简介
通用I/O(GPIO)外设通过MIO模块的54个设备引脚为软件提供了观察和控制功能,它还可以从可编程逻辑访问64个输入(PL)和128个输出通过EMIO接口输出到PL,GPIO分为四个存储区注册该组相关的接口信号。
每个GPIO均独立且动态地编程为输入、输出或中断检测,同时软件也可以使用一条加载指令读取存储体中的所有GPIO值,或将数据写入其中一个单个存储指令使用一个或多个GPIO(在GPIO范围内)。
GPIO控制和状态寄存器被映射到基地址为0xE000_A000的存储器。
特点
GPIO外设的主要功能总结如下:
-
54个用于设备引脚的GPIO信号(通过MIO多路复用器路由)
- 输出具有三态能力
-
通过EMIO接口在PS和PL之间提供192个GPIO信号
- 64个输入,128个输出(64个真输出和64个输出使能)
-
每个GPIO的功能都可以在单个或组的基础上动态编程
-
启用,位或存储体数据写入,输出启用和方向控制
-
基于单个GPIO的可编程中断
-
原始和屏蔽中断的状态读取
-
可选灵敏度:电平敏感(高或低)或边缘敏感(正,负或两个都支持)
框图
GPIO框图
如图所示,GPIO模块分为四个组:
•Bank0:32位存储体控制MIO引脚[31:0]
•Bank1:22位存储体控制MIO引脚[53:32]
注意:Bank1限制为22位,因为MIO共有54个引脚
•Bank2:控制EMIO信号的32位存储体[31:0]
•Bank3:控制EMIO信号的32位存储区[63:32]
GPIO由软件通过一系列内存映射寄存器控制,尽管MIO和EMIO的Bank之间由于它们的功能不同存在细微差异,但每个Bank都是相同的。
注意点
7z007s和7z010 CLG225器件
7z007s单核和7z010双核CLG225器件将可用的MIO引脚减少到MIO一览表中的“MIO表”所示,如下图
因此,在这些设备中,唯一的GPIO可用于MIO的引脚为15:0、39:28、48、49、52和53。其他MIO引脚未连接,不应该使用,所有EMIO信号均可用。
MIO注意事项
GPIO外围模块的存储体0和1通过MIO模块路由至设备引脚,有关MIO操作的完整说明如下图
MIO-EMIO概述
通过slcr.MIO_PIN_xx寄存器可实现对MIO的主要控制,请注意以下几点:
-
用户必须根据用户系统的字段使用IO_Type,PULLUP,DisableRcvr和Speed选择正确的I/O类型。
-
用户必须通过多路复用器控制字段L0_SEL,L1_SEL,L2_SEL和L3_SEL。注意,每个I/O引脚都可以单独选择,当MIO引脚用于IOP设备,它不可用作GPIO。
-
TRI_ENABLE应该设置为0,这使GPIO可以控制I/O的三态模式,如果MIO中的TRI_ENABLE设置为1,则无论GPIO如何,输出驱动器都将处于3状态设置。
总结
GPIO是普通IO口,是用于ARM的常用IO,具有普遍意义,相应的设计需要根据手册得到实际的模块。也是我们必须掌握的基础知识点。





