芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 4843|回复: 0

【Zynq】ZYNQ之PS端GPIO MIO

[复制链接]

该用户从未签到

58

主题

72

帖子

757

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
757
发表于 2021-8-22 22:29:48 | 显示全部楼层 |阅读模式
ZYNQPSGPIO MIO
一、为什么要使用GPIO

GPIO是通用IO口,属于最基本的端口类型,它的功能简单来说就是伸出一个引脚,这个引脚可以用来输出高电平低电平、也可以用来检测外界输入的电平高低。它的状态可分为低电平(0)、高电平(1)、高阻态(Z三种。

GPIO的用途广泛,简单的应用例如:点亮LED灯,驱动蜂鸣器,检测按键等。复杂一点的应用例如:模拟PWM波、使用两个IO模拟IIC接口、使用四个IO模拟SPI接口等。

所以GPIO属于最基本的知识点,是入门者必须牢牢掌握的东西。
二、如何在ZYNQ上使用GPIO功能

要想在ZYNQ上使用GPIO功能,有两个方法:第一个是直接使用PS端自带的GPIO功能,这种方法比较简单而且常用,分为GPIO MIO和GPIO EMIO两种;第二个方法是使用AXI GPIO IP核,这种方法涉及到AXI总线,会稍微复杂一点。篇幅有限,本篇我们只讲PS端的GPIO MIO内容,GPIO EMIO和AXI GPIO以后有机会再来讲解。
1.GPIO MIO的配置

在ZYNQ PS模块的配置里选择Peripheral I/O Pins图形界面。在这个界面可以使用图形化的方式添加外设,只需用鼠标点击外设方块,便可将该外设开启并与上标的MIO链接,开启的MIO和外设方块会绿色高亮显示,未开启的则显示为灰色,且处在同一列的MIO与外设互相链接。这里我们点击UART1对应MIO48、49方块,可以看到UART1和MIO48、49都变为绿色高亮。

ZYNQ之PS端GPIO(1).jpg


这里表示开启了UART1外设,并且将其链接到了MIO48、49上。我们再勾选左下方的GPIO MIO。

ZYNQ之PS端GPIO(2).jpg


我们会发现三个现象:(1)上方所有的MIO口都变为高亮;(2)MIO与GPIO的编号是一样的,例如MIO37对应GPIO37;(3)GPIO48、49为灰色未开启状态。

这里对以上现象进行解释:

(1)MIO都变为高亮,是因为GPIO MIO并非像UART1一样,只占据两个MIO,而是占据了所有未被赋予外设功能的MIO引脚,也就是说剩下所有MIO都被赋予了GPIO功能

(2)在SDK中可以使用函数随意控制所有被赋予了GPIO功能的MIO而在使用函数控制某个GPIO时需要知道该GPIO的编号,这里可以看见GPIO编号等于MIO编号,例如MIO37即为GPIO37号,因此控制GPIO时直接输入它的MIO编号即可。

(3)GPIO48、49处于灰色状态,我们可以知道GPIO48、GPIO49未开启,这是因为MIO48、49被UART1占用了,因此GPIO48、49不存在,也就是说在SDK中无法控制GPIO48、49。

话说,GPIO MIO有多少个呢?如果要进行一些特殊操作,够不够用呢?这里我们把界面移到最右边看看。

ZYNQ之PS端GPIO(3).jpg


这里可以看到,MIO最大编号为53,编号从0开始,也就是说MIO只有54个,再减去我们要添加使用的各种外设,可能最后就只剩下十几个MIO了,这时候MIO可能就不够用了,需要使用额外的EMIO接口了,关于GPIO EMIO的内容会在以后进行讲解。

本人能力有限,可能有一些错漏的地方,欢迎大家指正,下一篇我会给大家带来关于PS GPIO MIO的SDK编程实践部分。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2024-4-26 05:17 , Processed in 0.113476 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表