![](https://img-blog.csdnimg.cn/a5c6fb8e5b8348bd955a67b8b26f3a9c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/771c7c13e5524d89883995cb81cd971a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATGluZXN0LTU=,size_20,color_FFFFFF,t_70,g_se,x_16)
1、GPIO是一个外设,用来对器件的引脚作观测(input)以及控制(output)。
2、MIO(Multiuse I/O),将来自PS外设和静态存储器接口的访问多路复用到PS的引脚上。
3、GPIO可以独立且动态地编程,作为输入/输出以及中断模式。
4、GPIO被分成了4个BANK,Bank0/Bank1通过MIO连接到PS的引脚,Bank2/Bank3通过EMIO连接到PL,可以通过配置其寄存器所在的地址对其进行控制。
5、软件通过一组存储映射的寄存器来控制GPIO。
6、寄存器组:
DATA_RO : 用来反映器件引脚的状态。
DATA : 在GPIO被配置成输出的时候,该寄存器可以控制输出的数值。
MASK_DATA_LSW : 用于屏蔽DATA 的低16位。
MASK_DATA_MSW : 用于屏蔽DATA 的高16位。
DIRM : Direction Mode 用于控制I/O引脚是作为输入还是输出。当为0时,关闭输出 驱动;当为1时,使能输出驱动。
OEN :Output Enable 仅当I/O被配置成输出时,该寄存器用于打开/关闭输出使能。当输出被禁用时,此时引脚处于三态,即此时引脚不受芯片控制,而是受外围电路所控制。0 :关闭输出使能;1 : 打开输出使能。
DIRM和OEN两个通过一个与门,只有当他们同时配置成高电平时,也就是DIRM为1,控制I/O为输出;OEN为1,使能输出驱动。两者同时为1,通过与门就可以使I/O配置成输出且打开输出驱动。
7、MIO[8:7]在系统复位过程中作为VMODE(配置bank的电压)引脚(作为输入),用于配置MIO bank的电压。复位结束后,MIO[8:7]只能作为输出信号。