Zynq UltraScale+ ZCU102入门教程01-GPIO流水灯

0.前言—永远的流水灯

之前玩过ZYNQ7020的板子,现在上手ZCU102;鉴于ZCU102的资料极少,仅可参考的教程只有官方文档,所以想写一系列教程,算是做个笔记,也为后来者提供参考。本章作为入门教程的第一章,偏重于整个工程的搭建,让大家能够快速点亮ZCU102上的流水灯,原理部分不做详解;
开发环境:**Vivado2017.4 VivadoSDK **

1.硬件环境搭建

step1.启动vivado2017.4,点击Open Example Project选项,然后点击next;
step2. 选择Base ZYNQUS+MPSOC;
在这里插入图片描述
step3. 选择工程保存的路径;
在这里插入图片描述
step4. 选择板子型号;
在这里插入图片描述
step5. 完成之后我们可以看到整个硬件架构图;
在这里插入图片描述
step6. 我们对这个硬件图不用做任何修改,同时不用生成输出文件,也不用产生顶层文件。对于硬件工程的修改,我们只用添加管脚约束即可,这里GPIO口输出位宽为8,对应ZCU102上的8个PL端的LED灯。查阅官方文档ug1182,在第81页可以看到8个LED灯的管脚如下:
在这里插入图片描述
step7. 点击Add Sources;
在这里插入图片描述
step8. 选择第一个;
在这里插入图片描述
step9. 创建文件,然后一路点击OK;
在这里插入图片描述

step10. 创建好文件之后,打开管脚约束文件:
在这里插入图片描述

step11. 根据官方文档给出的管脚号,编写管脚约束代码:

set_property PACKAGE_PIN AG14 [get_ports led_8bits_tri_o[0]]
set_property IOSTANDARD LVCMOS33 [get_ports led_8bits_tri_o[0]]

set_property PACKAGE_PIN AF13 [get_ports led_8bits_tri_o[1]]
set_property IOSTANDARD LVCMOS33 [get_ports led_8bits_tri_o[1]]

set_property PACKAGE_PIN AE13 [get_ports led_8bits_tri_o[2]]
set_property IOSTANDARD LVCMOS33 [get_ports led_8bits_tri_o[2]]

set_property PACKAGE_PIN AJ14 [get_ports led_8bits_tri_o[3]]
set_property IOSTANDARD LVCMOS33 [get_ports led_8bits_tri_o[3]]

set_property PACKAGE_PIN AJ15 [get_ports led_8bits_tri_o[4]]
set_property IOSTANDARD LVCMOS33 [get_ports led_8bits_tri_o[4]]

set_property PACKAGE_PIN AH13 [get_ports led_8bits_tri_o[5]]
set_property IOSTANDARD LVCMOS33 [get_ports led_8bits_tri_o[5]]

set_property PACKAGE_PIN AH14 [get_ports led_8bits_tri_o[6]]
set_property IOSTANDARD LVCMOS33 [get_ports led_8bits_tri_o[6]]

set_property PACKAGE_PIN AL12 [get_ports led_8bits_tri_o[7]]
set_property IOSTANDARD LVCMOS33 [get_ports led_8bits_tri_o[7]]

step12. 保存好文件后直接点击生成bit流文件:
在这里插入图片描述

step13. 等整个工程编译生成bit文件后,点击File -> Export -> Export Hardware…

step14. 选择Include bitstream,点击OK;
在这里插入图片描述
step15. 选择File -> Launch SDK,至此硬件工程完成,启动SDK软件工程;

2.软件工程

step1. 进入SDK中:
在这里插入图片描述
step2. 点击File -> New -> Application Project,输入工程名,然后点击Next;
在这里插入图片描述
step3. 选择Empty Application,然后finish;
在这里插入图片描述
step4. 新建一个文件:
在这里插入图片描述
step5. 输入文件名后,点击finish;
在这里插入图片描述
step6. 打开main.c文件后,复制下面代码到文件里,这里的代码是参考米联客ZYNQ教程

#include "xparameters.h"
#include "xgpio.h"
#include "xil_printf.h"
#include "sleep.h"
#include "xil_types.h"
#include "xil_io.h"
#include <stdio.h>

#define LED 0x01   /* Assumes bit 0 of GPIO is connected to an LED  */
#define GPIO_EXAMPLE_DEVICE_ID  XPAR_GPIO_0_DEVICE_ID
#define LED_DELAY     10000000
#define LED_CHANNEL 1
		
XGpio Gpio; /* The Instance of the GPIO Driver */

#define XGpio_axi_WriteReg(BaseAddr, RegOffset, Data)	\
		Xil_Out32((BaseAddr) + (u32)(RegOffset), (u32)(Data))
#define XPAR_GPIO_LITE_ML_0 XPAR_AXI_GPIO_0_BASEADDR   //XPAR_AXI_GPIO_0_BASEADDR
#define GPIO_LITE_ML_REG0 0

int main()
{
	u8 i=0;
	XGpio_axi_WriteReg(XPAR_GPIO_LITE_ML_0,GPIO_LITE_ML_REG0,0X00);
	while(1)
	{
		for(i=0;i<=7;i++)
		{
		XGpio_axi_WriteReg(XPAR_GPIO_LITE_ML_0,GPIO_LITE_ML_REG0,1<<i);
		usleep(500000);
		}
		i=0;
	}
}

step7. 这里稍作说明下,XPAR_GPIO_0_DEVICE_ID和XPAR_AXI_GPIO_0_BASEADDR 分别代表GPIO的设备号以及基地址,这两个参数在xparameter.h中可以找到;XPAR_AXI_GPIO_0_BASEADDR 这个地址是我们在vivado硬件工程里分配的地址,一般系统都会自动分配,也可以自定义;

step8. 点击Run Configuration;
在这里插入图片描述
step9. 双击红色箭头指的位置:
在这里插入图片描述
step10. 勾选相应选项,然后点击Apply、最后点击Run;

step11. 可以看到板子上的PL端8个流水灯,依次点亮熄灭。
在这里插入图片描述

总结

从目前的GPIO流水灯实验中看来,ZCU使用起来大体和ZYNQ7020一样,关于整个工程的压缩包,将在评论区分享给大家。

  • 3
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Zynq Ultrascale+ ZCU106是一款由赛灵思(Xilinx)推出的高性能嵌入式开发平台。它集成了一颗Zynq Ultrascale+ MPSoC芯片,该芯片拥有高性能的ARM Cortex-A53和ARM Cortex-R5处理器核心,以及FPGA可编程逻辑资源。ZCU106开发板以其强大的计算能力和灵活的可编程性,适用于多种应用领域。 在ZCU106资料中,我们可以找到以下内容: 1. 芯片手册和技术参考手册:这些手册提供了关于Zynq Ultrascale+ MPSoC芯片架构、性能特性和配置选项的详细说明。它们指导开发人员正确使用芯片并充分发挥其能力。 2. 开发板用户指南:该指南介绍了ZCU106开发板的硬件设计、接口定义和连接方式。它还包含了开发板的使用说明和调试技巧,帮助使用者快速上手并进行开发。 3. 软件开发工具:赛灵思提供了一系列软件开发工具,包括Xilinx SDK、Vivado Design Suite和PetaLinux等。这些工具可以帮助开发者进行FPGA设计、ARM嵌入式软件开发和系统集成等任务。 4. 示例设计和应用笔记:赛灵思为ZCU106开发板提供了丰富的示例设计和应用笔记,涵盖了各种应用场景,如图像处理、视频编解码、机器学习等。这些示例设计和应用笔记提供了具体的实现代码和使用说明,帮助开发者快速上手并进行自己的定制开发。 总之,Zynq Ultrascale+ ZCU106资料提供了全面灵活的参考资源,帮助开发者理解和使用ZCU106开发板以及其搭载的Zynq Ultrascale+ MPSoC芯片,进行高性能嵌入式系统的设计和开发。无论是初学者还是经验丰富的开发者,都可以通过这些资料获得所需的指导和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值