首页 > 其他分享 >06PCIE的GPIO控制卡

06PCIE的GPIO控制卡

时间:2023-12-30 18:45:15浏览次数:31  
标签:LED FPGA PCIE IP 控制卡 06PCIE GPIO AXI

软件版本:vitis2021.1(vivado2021.1)

操作系统:WIN10 64bit

硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA

登录"米联客"FPGA社区-www.uisrc.com视频课程、答疑解惑!

6.1概述

还记得2008年左右刚刚参加工作,买一个简单的PCI的DAQ数据卡,或者IO卡都要好几千元。市面上主要是研华,凌华的数据卡。现在我们也可以用PCIE做出更好的数据卡了。那么本节课就是设计一个GPIO的IO卡方案。

6.2系统构架

本系统中通过XDMA IP将开发板及PCIE上位机识别连接。AXI Interconnect IP通过使用AXI-GPIO把板卡上的LED和Button的IP地址空间映射到了BAR空间。PCIE上位机直接访问控制LED和读取按键状态。

6.3FPGA代码

上面接的DDR实际上没有用到。我们这里使用了2个AXI GPIO,分别定义了4个LED输出,和3个BTN按钮输入。AXI-GPIO大家应该很熟悉了吧,之前在ZYNQ上操作,很简单,先我们把AXI-GPIO的IP地址空间映射到了BAR空间,这样就可以直接访问控制这些IP了。

首选是XDMA的地址空间分配

6.4上位机程序设计

本课程的QT程序超级简单,我们在界面上设计了一些check box 用于LED 和BTN的状态显示。程序比较简单,读者可以自己阅读QT源码。

6.5硬件安装

注意先下载程序,调试阶段下载bit文件,然后再开电脑。这样才能正确识别和后续测试工作正常开展。

6.6实验结果

装在机箱里面的开发板的上LED不容易看清楚,我们点击LED check box可以看到LED灯光的变化。装在机箱的按钮也不容易按到,所以测试的时候要小心些,以下是测试结果。

标签:LED,FPGA,PCIE,IP,控制卡,06PCIE,GPIO,AXI
From: https://www.cnblogs.com/milianke/p/17936646.html

相关文章

  • GPIO初始化(标准库)
    流程配置时钟(RCC.h内)打开GPIO时钟(GPIOA/GPIOB)配置GPIO(GPIO.h内)一、GPIO模式(GPIO_Mode)输入代码输出代码上拉输入GPIO_Mode_IPU开漏输出GPIO_Mode_Out_OD下拉输入GPIO_Mode_IPD推挽输出GPIO_Mode_Out_PP浮空输入GPIO_Mode_IN_FLOATING开漏复用输出GPIO_Mode_AF_OD推挽复用输出GPIO_......
  • 关于CH32V003复位引脚PD7作为GPIO使用配置说明
    关于CH32V003复位引脚PD7作为GPIO使用配置说明具有两种配置方式:1、直接通过操作用户字进行配置,如下图,注意要FLASH解锁;FLASH_Unlock();FLASH_UserOptionByteConfig(OB_IWDG_SW,OB_STOP_NoRST,OB_STDBY_NoRST,OB_RST_NoEN,OB_PowerON_Start_Mode_BOOT);FLASH_Lock......
  • nordic—RTC+PPI定时驱动某外设做非单次触发(本次测试为驱动GPIO口做电平翻转)
    简介:在nordic的开发中使用到RTC时,对于比较通道0/1/2/3的中断来说如果不进行相关配置(如SDK中例子,使用的RTC比较通道就只能触发一次,不能多次触发),会导致比较中断只进入一次,如果说是使用RTC+PPI+ADC进行采样或者RTC+PPI+GPIOTE做IO口翻转等,都会只采样一次或者翻转一次就停止了,不能做的......
  • ICEE-Keyboard- 键盘工作原理:扫描GPIO:{X行,Y列}感应点矩阵在按键触发点感应电路{x,y
    ICEE-Keyboard-键盘工作原理:周期性扫描电路感应点矩阵:电路感应点矩阵有总共X行与总共Y列的电路感应{电容式,电阻式,开关式}点,例如总共12行,总共12列;则总共有144个键位点;电路感应点矩阵的每一行或每一列都有一条电路线直连MCU的一个GPIO;例如总共12行,总共12列;则总共需......
  • Maix II Dock gpio子系统点亮LED学习
    一、Linux的gpio子系统1、Linux内核提供pinctrl子系统,目的为了统一各soc厂商的pin引脚管理;2、pinctrl子系统提供的功能①、管理系统中所有可控制的pin引脚:在系统初始化时候,枚举所有可控制的pin,并标识这些pin;②、管理这些pin的复用功能:配置若干引脚组......
  • GPIO子系统驱动程序 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/gpio/drivers-on-gpio.htmlGPIO子系统驱动程序在Linux内核中,有许多标准的GPIO任务的驱动程序,它们提供了适当的内核空间和用户空间的API/ABI,并且可以通过硬件描述(如设备树或ACPI)与其他内核子系统轻松连接:leds-gpio:driver......
  • GPIO映射 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/gpio/board.htmlGPIO映射本文档解释了如何将GPIO分配给特定的设备和功能。请注意,这仅适用于基于新描述符的接口。有关已弃用的基于整数的GPIO接口的描述,请参阅“LegacyGPIOInterfaces”(实际上,使用旧接口无法进行真正的映......
  • GPIO 驱动接口 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/gpio/driver.htmlGPIO驱动接口这份文档是GPIO芯片驱动程序编写者的指南。每个GPIO控制器驱动程序都需要包含以下头文件,该头文件定义了用于定义GPIO驱动程序的结构:#include<linux/gpio/driver.h>GPIO的内部表示......
  • GPIO描述符消费者接口 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/gpio/consumer.htmlGPIO描述符消费者接口本文档描述了GPIO框架的消费者接口。请注意,它描述了新的基于描述符的接口。有关已弃用的基于整数的GPIO接口的描述,请参阅“LegacyGPIOInterfaces”。GPIO消费者的指南不能在没有......
  • General Purpose Input/Output (GPIO) 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/gpio/index.html#general-purpose-input-output-gpio通用目的输入/输出(GPIO)简介GPIO接口什么是GPIO?常见的GPIO属性在Linux中使用GPIO线GPIO驱动程序接口GPIO的内部表示控制器驱动程序:gpio_chip提供IRQ的GPIO驱动程序......