实现功能为使用EMIO的引脚驱动LED,使用AXI_GPIO的IP进行按键控制,当我们按键按下时,我们的LED进行一次反转。 硬件平台搭建 同样重复前面的步骤,打开vivado工具的block design 添加ZYNQ的IP核,完成基础配置。 然后打开MIO configuration,对EMIO引脚的LED进行配置 因为这里我们要使用AXI_GPIO的中断功能,所以我们打开中断界面...
第四步: 添加管脚约束 然后就是添加管脚约束,把GPIO_LED信号连接到LED灯上: zc702的管教约束如下: #GPIO PMOD1set_property PACKAGE_PIN E15 [get_ports {GPIO_LED[7]}]set_property IOSTANDARD LVCMOS25 [get_ports {GPIO_LED[7]}]set_property PACKAGE_PIN D15 [get_ports {GPIO_LED[6]}]set_proper...
Status = XGpio_Initialize(&Gpio_sw, XPAR_SW_DEVICE_ID); if (Status != XST_SUCCESS) {xil_printf("Gpio Initialization Failed\r\n"); return XST_FAILURE; } XGpio_SetDataDirection(&Gpio_led, 1, 0x00); // 全部为输出 XGpio_SetDataDirection(&Gpio_sw, 1, 0xFF); // 全部为输入 while...
首先,需要搭建一个硬件平台,使用EDK,添加GPIO和INTC的IP,我本人使用的是Digilent Atyls Board,就直接用官方提供的一些资料了。 但其他板子其实也差不多。 首先,GPIO要使用中断,并将中断信号连接到INTC模块,同时INTC的信号还要连接到MicroBlaze的Interrupt,如下图: 其他步骤不再赘述,做好这些后 Export Design。 打开...
1)和前面的教程一样,在不熟悉Vitis程序编写的情况下,我们尽量使用Vitis自带例程来修改,选择“xgpio_intr_tapp_example” 2)需要修改部分代码,按键的axi gpio模块叫做axi_gpio_1,在xparameters.h中找到它的device id 3)然后可以修改GPIO和中断号的宏定义如下 ...
1 简单分析AXI GPIO模块 2 AXI GPIO的使用 2.1 硬件设计 2.2 控制AXI GPIO 不合理的地方欢迎批评指正!!! 源代码链接:Ultra96-PYNQ_A-simple-summarygithub.com/sazczmh/Ultra96-PYNQ_A-simple-summary 1 简单分析AXI GPIO模块 AXI GPIO模块整体格局与GPIO模块有点类似,有个需要特别注意的地方,就是要理解...
gpio_input(3) = GPIO_SW18 AXI INTC: AXI Interrupt Controller (INTC) 核可将来自外设器件的多个中断输入集中到系统处理器的单一中断输出。使用寄存器来检查、启用和确认中断。 此示例的主要目的是将超过 16 个中断连接到 PS。AXI INTC 核可支持我们满足此需求。使用单一 AXI INTC 块的情况下最多可连接 32 ...
在Vitis开发环境中,创建Vitis应用工程,并添加自定义硬件平台。选择空模板,导入示例GPIO程序。根据官方示例“xgpio_example.c”进行软件设计,创建源文件并实现流水灯功能。编译工程并生成axi_gpio_led.elf文件。进行板级验证,连接开发板并使用串口助手。打开Vitis Terminal窗口,下载程序。在Vitis终端中观察...
设置GPIO的方向,向通道1写0,0:输出,1:输入。 (3)、XGpio_DiscreteWrite(&Gpio, 1, 1); 设置GPIO的输出为1。 一、 init_intr_sys函数分析 1、DMA_Intr_Init(&AxiDma,0); DMA中断实例化函数,将要配置的DMA信息先lookupConfig再进行CfgInitialize,DMA采用块模式(Block mode),如果是Sg模式,则配置失败。
2、vivado工程设计当中如何使用AXI GPIO IP模块(如何调用),PS与PL之间的连接方式。3、在裸机或者是...