特权同学

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

0
阅读(120) 评论(0)

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

 

更多资料共享

腾讯微云链接:https://share.weiyun.com/5s6bA0s

百度网盘链接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw

提取码:ld9c

1.jpg

 

1 Zynq的GPIO概述

         参考文档《玩转Zynq-基础篇:Zynq PS的GPIO外设.pdf》。

 

2 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怎么用。

2.jpg

         Zstar板载2个LED,即D29和D30分别连接到了PS的MIO0(PS_LED0)和MIO9(PS_LED1)。

3.jpg

         因此,在这个GPIO控制LED的实例中,我们不能够让任何会用到MIO0和MIO9的PS外设打开(勾选),而必须把MIO0和MIO9保留给GPIO MIO使用。

4.jpg

         完成配置后,重新编译PL工程,确保当前配置产生.bit文件。

 

2 导出PS硬件配置和新建SDK工程

         参考文档《玩转Zynq-工具篇:导出PS硬件配置和新建SDK工程.pdf》。

         其中新建SDK工程名称为GPIO_MIO_project。

5.jpg

         工程模板(Available Templates)选择空白应用(Empty Application)即可。

6.jpg

 

3 GPIO控制程序

         展开新建工程GPIO_MIO_project,选中文件夹src,单击右键,弹出菜单中选择New --> Source File。

7.jpg

         新建一个名为main.c的Default C source template源文件。

8.jpg

         输入GPIO控制MIO0和MIO9的程序,程序中实现MIO0和MIO9每秒高低交错输出,实现2个LED交错闪烁的功能。

9.jpg

 

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指示灯的位置示意如图所示。

10.jpg

 

 

腾讯微云链接:https://share.weiyun.com/5s6bA0s

百度网盘链接:https://pan.baidu.com/s/1XTQtP5LZAedkCwQtllAEyw

提取码:ld9c