XILINX Ultrascale+ FPGA学习(5)——GPIO

GPIO(General Purpose I/O)

参考文档 ug1085
GPIO即通用I/O,使用过树莓派和单片机的同学们肯定非常熟悉。是ARM芯片用于连接外设的I/O口。在SOC Ultrascale+ 里的ARM芯片的GPIO连接到MIO(复用IO,与GPIO不是一一对应的);当MIO不够用时,可以使用EMIO来扩展,从而使用FPGA上的引脚,EMIO是PS和PL的连接的接口。
所有的GPIO都可以配置为输入,输出和中断模式。
zynq Ultrascale+系列的FPGA的GPIO被分为6个bank,其中bank0,bank1,bank2连接到MIO;banl3,bank4,bank5连接到EMIO。

MIO

在这里插入图片描述
软件通过一系列的寄存器来控制GPIO,对于MIO,其寄存器配置如下
在这里插入图片描述

寄存器功能
DATA_RO读出器件引脚状态
DATA32bit寄存器,在GPIO被配置成输出时,该寄存器可以控制其初值
MASK_DATA_LSW16bit寄存器,用于选择DATA寄存器的低16位,或者是屏蔽DATA低16位
MASK_DATA_MSW16bit寄存器,用于选择DATA寄存器的高16位,或者是屏蔽DATA的高16位
DIRM方向模式,用于控制I/O是输入或者输出;为0为使能输入,为1输出使能
OEN输出使能,当I/O被配置成输出时,用于使能输出,0为关闭输出使能

EMIO

EMIO的GPIO为banl3,bank4,bank5,与MIO相似。EMIO和MIO有些不同

输入来自与PL,输入与输出值和OEN寄存器无关
输出没有三态,与OEN寄存器无关。EMIO中的OEN被接出,作为EMIOGPIOTN,在程序中,仍然可以通过OEN和输出信号来构成三态
DIRM寄存器必须设置为1

中断

GPIO的输入信号能够被PS的中断探测逻辑给检测。中断的触发包括:上升沿触发,下降沿触发,下降沿和上升沿触发,低电平触发和高电平触发。这些触发模式使用寄存器来设置,见GPIO CHANNEL图
寄存器介绍

寄存器功能
INT_MASK只读,显示当前那个位被掩盖或者没有掩盖
INT_EN写1使能或者解除屏蔽每个中断信号
INT_DIS写1屏蔽掉中断信号
INT_STAT该寄存器显示中断是否发生。写1清除INT State寄存器值。
INT_TYPE中断类型,中断时边沿还是电平
INT_POLARITY中断极性,中断时低电平触发还是高电平(为1),或中断是上升沿触发(为1)还是下降沿
INT_ON_ANY如果中断时边沿触发,1为上升沿和下降沿触发

所有的GPIO中断都连接到中断控制器中(GIC),中断号为:IRQ ID#48。 使用INT_MASK和INT_STAT可以判断是那个GPIO产生的中断。即INT_STAT=1和INT_MASK=0,来判断中断产生的GPIO。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

棘。。背凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值