Zynq(3)使用外设MIO/EMIO

在这里插入图片描述

前言:在上一篇文章中,介绍了soc芯片的开发环境,简要说明了工程目录,以helloworld实验为例说明了soc芯片开发的大致流程。本文承接上文,以MIO、EMIO实验即将连接在PS端的LED与连接在PL端的LED灯组合起来实现流水灯的效果为例。介绍soc开发中的一些细节。主要包括, 介绍MIO与EMIO的区别;熟悉Zynq IP配置;掌握如何通过分析硬件原理图完成必要的工程配置;Vitis代码分析; 读者通过本文可以进一步熟悉SOC开发流程,可以通过分析硬件原理图完成ip配置,工程搭建,使用各种不同外设。

1.什么是MIO/EMIO

MIO(Multiuse I/O),即多用输入/输出,SOC芯片通过MIO与外设交互。MPSoC系列芯片一般有 78 个 MIO分布在bank0bank2,每个bank有26个;有96个EMIO,分布在bank3bank5。与单片机一样,GPIO也是复用的,即一个MIO可以作为哪些外设是提前定义好的,换句话说,想要用UART外设,必须要找到可以复用为UART的那几个MIO。即IO 所能支持的接口功能和对应的管脚是固定的,这是由于内部是固化电路的原因。因此在硬件设计的时候要特别注意。
如何确定被操作的IO的位号?所谓位号就是在PS端的程序里如何标识MIO和EMIO。MIO在bank上已经标出了序号,在原理图找见对应引脚即可找见对应的位号;由于MIO“占据”了前78个位号(0-77)所以EMIO 从第 79 个信号开始,编号为 78(从 0 开始编号)。由于EMIO用的是PL端的资源,因此通过设置约束的方式指定管脚位置。在vivado中block design配置好之后要右键选择create HDL Wrapper, 这时会把IP配置中勾选上的EMIO引出来(要先在IP配置上引出的管脚右键选择make external),如下图所示,其中接到外部的信号ps_emio_tri_io就是emio,这个信号在vivado中通过约束指定了管脚,在vitis中,ps_emio_tri_io[0]对应78,ps_emio_tri_io[1]对应79,依次类推。
在这里插入图片描述

EMIO和MIO的区别?从应用上都是可以连接IO类型的外设,一个在PL端一个在PS端。但是去搞清本质上的区别对于认识zynq这个芯片非常有帮助。如下图所示,红色部分是我自己添加的,可以看到左边一竖排矩形区域对应的是控制这个引脚特性的寄存器电路在PS端,再往后不同的复用单元,通过MIO的路由到PS上的引脚,通过EMIO的路由到了PL上的引脚。因此本例使用EMIO对于寄存器的设置全部都在PS端。
在这里插入图片描述

2.工程搭建

vivado在soc开发中有两个作用最为突出,其一是通过对zynq IP核的配置确定PS端外设的复用的连接情况;其二是将PL端电路定制成一个PS端的特定外设。zynq IP可以理解为是放在PL端的PS黑箱,代表PS端,用以完成上述两个vivado实现的功能。
创建工程,完成实验目标,即将连接在PS端的LED与连接在PL端的LED灯组合起来实现流水灯的效果。soc开发的流程见Zynq(2)从Hello World熟悉Zynq开发流程,这里从vivado工程创建完毕,添加zynq IP核后说起。双击IP核进入IP配置界面。
在这里插入图片描述
PS UltraScale+ Block Design是IP配置的一个整体概览,其中绿色部分为所有可配置的部分,点击即可进入相应的子界面,下面的四个栏目中的配置内容均可从此进入。
1.I/O配置
IO配置主要作用就是结合原理图为硬件设计分配管脚及其所在bank对应的电平标准。低速存储接口包括QSPI、NAND、SD卡,IO外设包括常见的SPI、IIC、GPIO等。高速接口包括GEM、USB、PCIe、DP、SATA等。这些配置主要是勾选数量、选择对应的MIO、以及指定对应bank的电平标准。本例中要勾选GPIO即MIO和EMIO,如下图。我用的板子上bank电压全部都是1.8V,将这个里bank电压设置为LVCMOS18。
在这里插入图片描述

2.参考时钟配置
Clock Configuration 页面分为 Input Clocks和 Output Clocks两个标签页,用来配置 PS 输入时钟、外设时钟等。设置PS端的输入参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FPGArea

原创不易,请多支持

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

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

打赏作者

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

抵扣说明:

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

余额充值