Xilinx火龙果学习笔记(3)---GPIO的使用

Xilinx火龙果学习笔记(3)—GPIO的使用

由于我选择的项目是需要使用外设的,所以这里只介绍AXI-GPIO的使用。EMIO与MIO的使用网上是能找到资料与源码的。搭建工程参考前一篇笔记,这里主要补充拓展一下。

  1. 直接到add ip部分,添加AXI-GPIO及Timer模块。下图是成果图;
    这里写图片描述

    其实这里面添加了三个AXI-GPIO ip核与一个AXI-Timer IP核。至于配置,我这里只配置了三个AXI-GPIO IP核,分别配为6位全输入,4位全输出以及2位既可输入也可输出。下图是6输出配置图(双击IP核即可进入):
    这里写图片描述

    在这里解释一下,如果勾选了Enable Dual Channel,那么在写代码时就要注意通道选择了。没选则默认1通道。

    至于连线这么复杂,完全不够管,vivado这一点还是不错的,点击自动连线就自动把该连的连起来了。甚至手动连还会导致某些问题,具体请百度。

  2. zynq部分跟上一次配置一样,不用管。接下来就到run synthesis部分了,synthesis后,open synthesized design->edit timing constraints,打开综合后的时序约束窗口,根据原理图配置引脚即可,还要注意选高低电平。如图是我配置的引脚。
    这里写图片描述

  3. 其他同笔记(2),后面就可以直接到SDK部分了。先版支持包,再导入例子,之后就可以自己玩了。在这里写几点关于GPIO写代码使用的心得。

    • 关于工程管理问题,个人是比较喜欢建头文件,把需要的函数都放头文件里的。遮掩看起来层次清楚一些。可以在src文件夹同级建一个文件夹,然后在里面添加头文件与对应的.c文件,然后再右击代码工程,在属性中添加include路径即可。如图:
      这里写图片描述

    • GPIO的读写都是直接读整个IP核接口的,如果想得到某一位的数据,完全可以参考MCU中的位与操作。

    • 由于这里使用的AXI-GPIO,与MIO和EMIO不同,使用AXI-GPIO函数的头文件是#include “xgpio.h”,另外注意分清楚GPIO的ID号,就是根据这个来区分对哪个GPIO进行操作的,ID号定义在#include “xparameters.h”中。

    • AXI-GPIO的操作还是很简单的。先初始化,然后设置方向,然后就可以进行正常的读写了,可以看Xilinx自带的例程。怎么导入例程见笔记(2)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值