草庐IT

Xilinx-FPGA

全部标签

基于FPGA的LCD1602驱动(含代码)

目录 LCD1602显示原理LCD1602接口LCD1602操作时序(1)读操作时序(2)写操作时序 LCD1602初始化LCD1602读写数据  LCD1602显示原理将LCD显示屏与FPGA连接之后,需要做的第一件事就是进行LCD驱动(也就是LCD初始化),之后往LCD里写一些字符,调试LCD是否可以正常使用这里用的是LCD1602如下图:一共2行,一行16个显示块,其地址和屏幕的对应关系如下: 如果想在屏幕左上角显示字符‘A’,那么就把字符‘A’的字符代码41H写入DDRAM的00H地址处即可但如果要显示CGROM中没有的字符,比如摄氏温标的符号,那么就只有先在CGRAM中定义,然后再在

基于 FPGA 使用 Verilog 实现 IIC(I2C) 协议回环数据传输

目录一、IIC原理1.1概述1.2写操作1.3读操作1.4总线数据传输时间二、项目设计2.1概述2.2状态机2.3波形仿真2.3效果演示本文内容:本文主要基于一篇外文手册24AA04/24LC04B设备,采用IIC协议进行数据传输,用FPGA模拟从机24AA04/24LC04B,PC为主机进行数据传输,深入学习IIC协议一、IIC原理1.1概述根据24AA04/24LC04B手册,可以知晓该设备采用100kHz或者400kHz的速度进行数据传输,同时有一个16字节的缓存器,所以项目中要定义一个16字节的缓存器同时需要定义两块256×8的数据块管脚种类:VCC、GND、SCL、SDAVCC:电源

基于DSP+FPGA+AD9238的冲击波超压测试系统设计与实现

对冲击波关键特征参数进行可靠、精确地评估是进行军事行动规划的前提和依据,测试结果可以为战斗部设计提供参考,也可以为武器弹体材料的研发制造提供有效依据。近年来,随着集成电子技术与软件系统取得突破性成果,冲击波测试技术获得了稳定的发展。2.2测试系统的总体框架2.2.1系统组成传统的数据采集系统采用单片机进行软件设计来控制ADC进行采集,由于冲击波测试对系统的实时性要求比较高,基于软件控制的方法无法获得精确的时钟信号,且处理器速度不足,因此需要采用合适的控制器进行系统设计。冲击波测试系统需对高频信号进行高速、实时采样,对时钟和数据采集的速率都有很高要求。现场可编程逻辑门阵列(FPGA)依靠硬件逻辑

Xilinx XDMA 数据传输sgdma 驱动代码分析

XilinxXDMA数据传输sgdma驱动代码分析我的之前两篇文章有介绍到上位机软件的逻辑该如何控制,驱动代码的框架是怎样的,驱动的整体逻辑在linux系统中是如何实现的,感兴趣的小伙伴可以去考古。XilinxXDMA上位机应用程序控制逻辑XilinxXDMA驱动代码分析及用法XDMA传输的核心部分代码是cdev_sgdma.c,利用DMA进行数据传输,传输方式为sgdma的传输方式,1、SG-DMA介绍Scatter-GatherDMA,分散/集中映射是流式DMA映射的一个特例。它将几个缓冲区集中到一起进行一次映射,并在一个DMA操作中传送所有数据。这些分散的缓冲区由分散表结构scatter

如何在FPGA中构建数控振荡器 (NCO)

许多信号处理应用在某些特殊项目时需要正弦波。如果这个正弦波的相位或频率在设计中能被控制,那么它通常被称为数控振荡器(NCO)。今天让我们花一些时间研究如何在FPGA中构建一个NCO。最后我们还将介绍一个C++实现方案,它可以用于嵌入式应用程序。我们是在可以生成正弦波(查找表方法、四分之一波查表方法、CORDIC的余弦波)情况下,如何通过正弦波发生器变成NCO。不过,在我们深入细节之前,让我们花点时间思考一下如何使用这样的NCO。我今天提出这个的原因是双重的。首先,我知道有一个学生在努力理解如何构建这样的东西作为数字通信解调器的一部分。第二部分是构建一个比这篇stackoverflow文章(ht

c - Linux 4.5 GPIO 中断通过 Xilinx Zynq 平台上的 Devicetree

我使用的是带有ZynqXC72010的定制开发板,用于运行Linux4.5内核。我正在为我们正在内部测试的芯片开发设备驱动程序,我在尝试将GPIO线绑定(bind)到软件IRQ时遇到了很多问题。到目前为止,我已经尝试了几种方法并用尽了我能想到的任何谷歌搜索。我的设备树配置的相关部分:/{compatible="xlnx,zynq-7000";amba{compatible="simple-bus";#address-cells=;#size-cells=;interrupt-parent=;ranges;intc:interrupt-controller@f8f01000{compat

linux - 是否有用于 FPGA 的 PCIe 的 DMA Linux 内核驱动程序示例?

我想在内核空间中编写一个驱动程序:在嵌入式系统(使用powerPC)中与通过PCIe连接的FPGA进行通信。它使用DMA将信息从FPGA传输到RAM。用户程序必须访问这些信息。我需要一些类似的例子来指导我。有人知道我在哪里可以找到一些资源吗? 最佳答案 Connectal(http://www.connectal.org)是一个开源框架,支持用户空间软件与Xilinx或AlteraFPGA通信。实际上,这种通信很少涉及设备驱动程序。Connectal支持通过内存映射硬件FIFO在软件和硬件之间传递消息,并支持通过DMA从FPGA共享

Linux PCIe DMA 驱动程序 (Xilinx XDMA)

我目前正在使用XilinxXDMA驱动程序(请参阅此处的源代码:XDMASource),并试图让它运行(在您询问之前:我已经联系了我的技术支持联系人和Xilinx论坛到处都是有同样问题的人)。但是,我可能在Xilinx的代码中发现了一个障碍,这对我来说可能是一个交易破坏者。我希望有一些我没有考虑的事情。首先,驱动程序有两种主要模式,AXI-MemoryMapped(AXI-MM)和AXI-Streaming(AXI-ST)。对于我的特定应用,我需要AXI-ST,因为数据将持续从设备中流出。驱动程序是为利用分散-聚集列表而编写的。在AXI-MM模式下,这是有效的,因为读取是相当随机的事件

【FPGA教程案例89】编译码2——使用vivado核实现RS信道编译码

FPGA教程目录MATLAB教程目录目录1.软件版本2.RS编译码原理概述3.verilog实现过程3.1RS编码核的配置

基于FPGA的任意字节数的串口发送(含源码工程)

文章目录1、概述2、串口发送驱动3、任意字节发送的实现方法4、仿真4.1、单字节仿真4.2、双字节仿真4.3、5字节仿真5、实测5.1、单字节实测5.2、双字节实测5.3、5字节实测1、概述    在这篇文章中串口(UART)的FPGA实现(含源码工程),实现了基于FPGA的串口发送驱动。利用发送驱动可以实现起始位1bit+数据位8bit+停止位1bit共10bit的单字节传输。        但是在实际应用过程中又经常需要一次性发送多个字节的数据。比如,一次发送一个位宽为【39:0】的数据。诚然,可以直接更改此文中的串口发送驱动,使其变成 起始位1bit+数据位40bit+停止位1bit 共