ZYNQ
ZYNQ小白的学习记录
black_pigeon
想要成为一个FPGA工程师
展开
-
ZYNQ基础----裸机USB的使用
前言在ZYNQ上中有USB的控制器,最近在使用pluto sdr进行数据传输的时候,觉得串口太慢,但是也没有找到关于USB的在裸机下的资料。一般都是用操作系统来做的,这就很郁闷了啊,我一个FPGA小白,现在还不会linux啊。然后就上GitHub上找了找看看有没有人做过zynq裸机的usb的demo,嘿,你别说,还真有。FPGA工程链接地址如下:Zynq_winUSB FPGA repo然后还这个作者还提供了一个测试软件,C#写的,看不太懂,但是可以知道是使用libusb这个跨平台的库写的。那么之后原创 2020-12-30 14:14:10 · 16533 阅读 · 20 评论 -
ZYNQ基础---AXI DMA使用
前言 在ZYNQ中进行PL-PS数据交互的时候,经常会使用到DMA,其实在前面的ZYNQ学习当中,也有学习过DMA的使用,那就是通过使用自定义的IP,完成HP接口向内存写入和读取数据的方式。同样Xilinx官方也提供有一些DMA的IP,通过调用API函数能够更加灵活地使用DMA。...原创 2020-12-14 16:56:41 · 12315 阅读 · 3 评论 -
ZYNQ基础----使用AXI-LITE接口访问Block RAM
1. 前言 在之前的博客中有介绍到AXI接口和AXI-stream接口,起始AXI-lite接口也经常使用。最近恰好在做一个小的项目,需要对采集到的ADC数据进行缓存。由于采集到的数据是经过数字下变频DDC的,因此其速率不会很快,根据速率变换的不同,可以在1M到50K之间。因此也不需要使用外部的存储器,片上的RAM就足够了。 由于使用到的ZYNQ,希望使用ZYNQ的网口来进行数据的传输,因此就免不了使用AXI接口。这个就相较于使用存FPGA逻辑的开发要稍微复杂一点。但是在进行数据传输的时候,使用lw原创 2020-11-04 20:33:33 · 2486 阅读 · 1 评论 -
ZYNQ基础----串口中断
在ZYNQ中,串口一般作为打印信息,若想利用串口来传输数据时,可以对串口进行配置。本篇博客介绍串口的中断模式。串口初始化流程序号流程函数1查找GPIO配置结构体XUartPs_LookupConfig()2根据结构体初始化GPIOXUartPs_CfgInitialize()3设置波特率 :115200XUartPs_SetBaudRate()4设置操作模式:默认正常模式XUartPs_SetOperMode()5设置接收超时时间XU原创 2020-07-03 10:40:52 · 7655 阅读 · 6 评论 -
ZYNQ基础----双核硬中断(PL to PS)
PL端中断 在上一篇博客中介绍了软中断,软中断可以用于ZYNQ的两个CPU之间进行中断,一次来进行两个CPU之间的通信,在ZYNQ的架构中,PL端也能够向PS端提供中断,PL端向PS端的中断一共有16个。 可以看到PL端的中断,通过SPI连接到GIC上,在双核模式下使用PL端的中断时,需要对中断进行绑定。搭建硬件系统 为了快速上手,对双核AMP模式下的硬中断使用,...原创 2020-07-02 15:19:22 · 4438 阅读 · 1 评论 -
ZYNQ基础----AMP核间软中断
在前面一篇博客中,介绍了使用共享内存的方式来完成核间的通信的方式,本篇博客中将介绍通过软中断的方式来完成CPU0和CPU1之间的通信。本篇博客只需在上一篇博客中进行简单的修改即可。ZYNQ的中断架构 在本人梦开始的地方,介绍了ZYNQ中的GPIO中断,GPIO的中断是通过SPI最终连接到GIC上的,而软中断可以从图上看出,直接连接到的GIC上的。 软中断的中断类型是固定的,固定为上升沿中断,因此在使能软中断时,不必去设置中断的类型。 软中断共有16个ID号,在本次实验中会使用到其中两个ID原创 2020-07-01 14:37:50 · 2367 阅读 · 1 评论 -
ZYNQ基础----双核AMP
AMP是什么东东类型描述AMP (非对称多进程)多个核心相对独立的运行不同的任务,每个核心可能运行不同的操作系统或裸机程序但是有一个主要核心,用来控制整个系统以及其它从核心的运行。SMP(对称多进程)一个操作系统同等的管理各个内核,例如 PC 机BMP(受约束多进程)与 SMP 类似,但开发者可以指定将某个任务仅在某个指定内核上执行 通常情况下,ZYNQ只运行一个CPU,如需要使用到两个CPU 需要进行相应的设置才行。建立工程 搭建一个ZYNQ最小系统原创 2020-07-01 11:24:18 · 2438 阅读 · 0 评论 -
ZYNQ基础----驱动IIC外设
在ZYNQ中打开IIC原创 2020-06-06 17:09:16 · 3345 阅读 · 0 评论 -
ZYNQ基础----通过AXI4接口从内存中读出数据
AXI接口读时序 在前面的博客中,介绍了AXI接口的基础的一些概念。但是并没有具体实现的例子,今天就通过一个AXI4接口的读时序,来完成从内存中读出数据的这么一个操作。AXI4接口的读时序如下图所示,首先给出读取的内存地址,然后将数据从内存中读出。创建AXI4 IP 在Vivado软件中自定义一个AXI4接口的IP。 设置接口模式为主机模式,接口类型为AXI4类型,这里接口类型还有AXI_LITE和AXI_Stream类型。 进入到IP编辑界面可以看到该IP的文件结构如下,若要对IP原创 2020-06-04 11:11:05 · 2877 阅读 · 1 评论 -
ZYNQ基础----通过AXI4接口向内存中写入数据
AXI4 写相关通道 在前面的AXI接口部分介绍了有关AXI接口的通道和时序。在这一篇博客实现一个AXI4的接口,用来向内存中写入数据。在写地址通道,主要进行传输 AXI 的 master 向 slave 中写入数据时的地址。在写数据通道,主要进行传输 AXI 的 master 向 slave 中写入的数据。在写响应通道,主要进行传输 AXI 的 master 向 slave 中写入数据时的响应。 下图是AXI接口的相关通道的连接方式。 AXI接口写时序时序设计 下面是我设计原创 2020-06-03 14:01:19 · 2811 阅读 · 6 评论 -
ZYNQ基础----使用SD卡保存图片(3)
使用ZYNQ向SD卡中写入测试彩条 使用在ZYNQ中有两个A9的arm核,在PS部分可以像单片机那样去访问一些常用的接口。并且Xilinx已经为这些接口的使用提供了库可以在SDK中直接使用。想要使用SD卡存储图片,首先需要在ZYNQ核中打开SD卡设置。搭建最小系统 在ZYNQ核中,打开SD卡,然后导出bit文件到sdk中,接下来就可以在PS端来完成调用前面所介绍的函数,从而实现向SD卡中写入数据的操作。在SDK中使用FATFS文件系统 Xilinx已经将FATFS进行了移植,在使用的时候只原创 2020-05-30 11:04:32 · 1294 阅读 · 0 评论 -
ZYNQ基础----使用SD卡保存图片(2)
FATFS文件系统函数原创 2020-05-30 09:48:58 · 821 阅读 · 0 评论 -
ZYNQ基础----使用SD卡保存图像(1)
BMP位图结构原创 2020-05-29 14:24:01 · 1354 阅读 · 0 评论 -
AXI 接口----时序基础
最近跟着V3学院尤老师在学习ZYNQ,其中一个很重要的部分是ZYNQ中的AXI接口。在这里将AXI接口的时许进行一下记录,便于将来的查阅。1、AXI结构 AXI 的结构如下图所示;可以将 AXI 的 master 和 slave 之间的数据交互划分为其中五个通道。 在写地址通道,主要进行传输 AXI 的 master 向 slave 中写入数据时地址。 在写数据通道,主要进行传输...原创 2020-04-30 11:44:41 · 6857 阅读 · 1 评论 -
GPIO初始化&中断控制器初始化
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2020-01-11 23:00:23 · 2876 阅读 · 0 评论