ZYNQ-GPIO

ZYNQ-GPIO

一.简介

ZYNQ引脚分为MIO和EMIO两中,MIO为PS端由ARM控制,EMIO为PL端由FPGA控制。MIO共有54个引脚,MIO引脚集中在Bank0和Bank1,功能基本都是固定了,例如选中SD0就会用到40-45五个引脚这是用到PS端的引脚,而PL端则有64个引脚集中在Bank2,Bank3,功能未固定做什么都行。
在这里插入图片描述

二.硬件搭建

和前面文章一样把SD0,Uart0打开配置DDR,LVCMOS1.8V,勾选GPIO选择EMIO,把所有引脚Make External,保存创建顶层文件。
在这里插入图片描述
这里有地方需要注意,EMIO有三个引脚需要进行管脚绑定,首先在芯片上找到管脚的位置,其次找到管脚名字,Make External出去的GPIO名字是GPIO_0_0,打开GPIO_wrapper文件,找到inout GPIO_0_0就可以设置引脚了
在这里插入图片描述

在这里插入图片描述
绑定管脚,必须要绑定管脚否则在Generate Bistream会报错,绑定管脚方法如下
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
绑管脚的例子藏的比较深,
在这里插入图片描述
绑定完管脚,需要给每个管脚绑定电压,绑定管脚电压和绑定管脚差不多
在这里插入图片描述
绑定管脚结束如下,保存返回vivado,生成Bitstream,导出硬件做软件开发
在这里插入图片描述

三.软件开发

创建一个Hello World模板编写程序,写一个可以用按键控制的呼吸灯,按一次‘呼’再按一次‘吸’LED灯会渐渐变亮,渐渐变暗。
例子:
在这里插入图片描述

在这里插入图片描述

四.总结

在这里插入图片描述

在这里插入图片描述
注意的坑:引脚是从54开始的不是55,还有绑定管脚的时候怎样明白自己的LED灯是绑定54引脚还是55?,以上图为例子,G20引脚绑定的是0口,对应的就是54引脚。
GPIO初始化:
static XGpioPs GpioPs;
static XGpioPs_Config *GpioPs_Cfg;
XGpioPs_LookupConfig()查找设备ID;
XGpioPs_CfgInitialize()初始化配置;
XGpioPs_SetDirectionPin()设置方向‘0’输入,‘1’输出;
XGpioPs_SetOutputEnablePin()使能;
工作API
XGpioPs_WritePin();输出引脚0或1,前提是该引脚方向一定是输出;XGpioPs_ReadPin();读取该引脚状态0或1,前提是该引脚方向一定是输入;

以上就这些;

谢谢~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值