UG585 - Chapter 14: General Purpose I/O(GPIO)
Introduction
-
GPIO是一个外设,对器件的引脚进行观测(input)和控制(output)
-
MIO(Multiuse I/O)将,来自PS外设和静态存储器(Memory Interfaces)接口的访问多路复用在PS的引脚上
GPIO也可以通过EMIO和PL的引脚相连
-
GPIO的寄存器被分为四个Bank
-
GPIO可以独立且动态的编程,作为输入/输出以及中断模式
对GPIO的改变其实是对寄存器里值的更改
Bank 0 和Bank 1 通过MIO连接到PS端的54个引脚
Bank 2 和 Bank3 通过EMIO 连接到PL
-
软件通过一组存储映射(memory-mapped)的寄存器来控制GPIO
控制一个GPIO需要一组寄存器
Function
-
DATA_RO:总是返回GPIO引脚寄存器的状态
-
DATA:当GPIO配置为输出的时候,该寄存器控制输出的数值。
当读DATA的时候返回DATA上一次的数值或者MASK_DATA_{LASW/MSW}的值
-
MASK_DATA_LSW:有选择性的改变输出数值。屏蔽Low 16位
-
MASK_DATA_MSW:屏蔽高16位
-
DIRM:方向模式选择。输入逻辑总是有效的,实际上是控制输出是否可用
0:关闭输出驱动;1:使能输出驱动
-
OEN: 输出使能。当IO配制位输出的时候,OEN用于打开关闭输出使能
OEN和DIRM都为1时输出使能才为1(与门连接)
GPIO Bank 0 的Bits[8,7]
GPIO Bank0的第8和7作为VMODE引脚,用于对MIO Bank的电压配置
复位结束后,只能作为输出信号
Programming Guide
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pcr56Bol-1677683295070)(https://secure2.wostatic.cn/static/uci2nxbrr8thE4jxkAu2o4/image.png?auth_key=1677682918-mqhSGGz6rBsffvMh3S7BUC-0-0049f73e19f505e0b740dfbb841b13f6)]
GPIO Pin Configurations
MIO引脚10作为输出,需要将引脚10的DIRM和OEN都赋为1
Writing Data to GPIO Output Pins
两种方式:
- Read modify update
- MASK_DATA_{MSW/LSW}