【AMD Xilinx】ZUBoard(3):通过AXI GPIO接收PL端的按键输入
一、本项目实现的功能
继续上一篇的工程,这次增加一个PL端的按键输入,实现按键与LED的联动
二、Vivado工程
1. 添加AXI GPIO
还是上次的框图,我们关注PB3

2. 配置AXI GPIO
配置成输入,位数为1位

3. 根据原理图查找对应管脚
搜索按键SW3,可以查到对应的管脚为A8。
从原理图可以看出,SW3有上拉电阻,没按的时候为1,按下后才为0


4. I/O Planning
主菜单,Layout-> I/O Planning,把管脚配成A8

5.XDC
检查一下是否一致
set_property IOSTANDARD LVCMOS18 [get_ports {
pl_pb*}]
set_property PACKAGE_PIN A8 [get_ports pl_pb_tri_i ]; # HD_GPIO_PB1
三、ARM代码
1. 地址空间
PB1对应的地址为0x00A0020000

对应的C代码的宏定义在xparameters.h里面

2. 函数说明
读取GPIO的值
u32 XGpio_DiscreteRead(XGpio * InstancePtr, unsigned Channel)
3. 实际的C代码实现
注意这个程序只是为了演示了如何读取PL的IO,实际应用中检测按键需要在软件上做消抖处理,不然很容易误触发。
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "sleep.h"
#include "xgpio.h"
//RGB三色灯的颜色值,有红绿黄3种单色,还有紫色、黄色、青色、白色4种组合色。总共可以显示7种颜色
#define LED 0x07
#define LED_RED 0x01

本文介绍了使用AMDXilinx的ZUBoard通过AXIGPIO接收PL端按键输入,详细步骤包括Vivado工程中的AXIGPIO配置、I/O规划以及ARM代码的编写,展示了如何实现在按键按下时LED控制的逻辑。
:通过AXI GPIO接收PL端的按键输入&spm=1001.2101.3001.5002&articleId=135281378&d=1&t=3&u=fbbbc912213744de997b022da64a803d)
1786

被折叠的 条评论
为什么被折叠?



