玩转Zynq连载30——[ex52]基于Zynq PS的GPIO控制

特权同学玩转Zynq连载30——[ex52]基于Zynq PS的GPIO控制

在这里插入图片描述
Zynq的GPIO概述
参考文档《玩转Zynq-基础篇:Zynq PS的GPIO外设.pdf》。

1 GPIO的PS系统配置
打开ZYNQ7 Processing System的配置页面Peripheral I/O Pins,可以看到右侧若勾选GPIO MIO选项,在对应的MIO号若点击变绿,则表示该MIO号将被用于GPIO功能。当然了,原则上所有的MIO都可以配置为GPIO,但是实际应用中大家不会这么干,MIO的分配需要从系统角度考虑,兼顾各个外设的需要。如果大多数的MIO都被其它外设占用了,而能用于GPIO的MIO捉襟见肘时也不用当心,可以打开GPIO EMIO,连接PL端的IO作为PS可控的GPIO使用,这个功能下一个例程我们会讲,这里我们重点要来看看GPIO MIO怎么用。
在这里插入图片描述
Zstar板载2个LED,即D29和D30分别连接到了PS的MIO0(PS_LED0)和MIO9(PS_LED1)。
在这里插入图片描述
因此,在这个GPIO控制LED的实例中,我们不能够让任何会用到MIO0和MIO9的PS外设打开(勾选),而必须把MIO0和MIO9保留给GPIO MIO使用。
在这里插入图片描述
完成配置后,重新编译PL工程,确保当前配置产生.bit文件。

2 导出PS硬件配置和新建SDK工程
参考文档《玩转Zynq-工具篇:导出PS硬件配置和新建SDK工程.pdf》。
其中新建SDK工程名称为GPIO_MIO_project。
在这里插入图片描述
工程模板(Available Templates)选择空白应用(Empty Application)即可。
在这里插入图片描述
3 GPIO控制程序
展开新建工程GPIO_MIO_project,选中文件夹src,单击右键,弹出菜单中选择New --> Source File。
在这里插入图片描述
新建一个名为main.c的Default C source template源文件。
在这里插入图片描述
输入GPIO控制MIO0和MIO9的程序,程序中实现MIO0和MIO9每秒高低交错输出,实现2个LED交错闪烁的功能。
在这里插入图片描述
4 板级调试
在Zstar板子上,设置跳线帽P3为JTAG模式,即PIN2-3短接。
连接好串口线(USB线连接PC的USB端口和Zstar板的UART接口)和Xilinx下载线(下载器连接PC的USB端口和Zstar板的JTAG插座)。使用5V电源给板子供电。
接着参考《玩转Zynq-工具篇:SDK在线运行裸跑程序.pdf》将zstar.bit文件和GPIO_MIO_project.elf文件烧录到Zynq中运行起来。
程序运行起来后,我们就可以看到Zstar板上D4和D5这两颗LED交替的闪烁起来。D4和D5这两颗LED指示灯的位置示意如图所示。
在这里插入图片描述

发布了37 篇原创文章 · 获赞 0 · 访问量 512

猜你喜欢

转载自blog.csdn.net/qq_45922361/article/details/103952682