草庐IT

FPGA实现AXI4总线的读写

一、AXI4接口描述通道信号源信号描述全局信号aclk主机全局时钟aresetn主机全局复位,低有效写通道地址与控制信号通道M_AXI_WR_awid[3:0]主机写地址ID,用来标志一组写信号M_AXI_WR_awaddr[31:0]主机写地址,给出一次写突发传输的写地址M_AXI_WR_awlen[7:0]主机突发长度,给出突发传输的次数M_AXI_WR_awsize[2:0]主机突发大小,给出每次突发传输的字节数M_AXI_WR_awburst[1:0]主机突发类型M_AXI_WR_awlock主机总线锁信号,可提供操作的原子性M_AXI_WR_awcache[3:0]主机内存类型,表明

STM32F407使用DMA加速刷新LVGL

本人使用国产的实时操作系统RT-thread,屏幕使用的TFTLCD,屏幕IC是LIL9341这里就不讲移植了,如果需要,请评论,后面出;前提:移植好LCD,移植好LVGL(不适用DMA能正常显示)使用STM32Cubemax配置DMA上图中,BurstSize的具体配置根据芯片参考手册来选择,如果要用FIFO的话就需要选择因为LVGL需要屏幕数据传输完后通知一下LVGL,所以这里要启用DMA中断2、添加代码2.1、注册DMA中断/**注册的是传输完成中断*具体注册的中断服务函数在lv_port_disp.c中*/HAL_DMA_RegisterCallback(&hdma_memtomem_

STM32F407使用DMA加速刷新LVGL

本人使用国产的实时操作系统RT-thread,屏幕使用的TFTLCD,屏幕IC是LIL9341这里就不讲移植了,如果需要,请评论,后面出;前提:移植好LCD,移植好LVGL(不适用DMA能正常显示)使用STM32Cubemax配置DMA上图中,BurstSize的具体配置根据芯片参考手册来选择,如果要用FIFO的话就需要选择因为LVGL需要屏幕数据传输完后通知一下LVGL,所以这里要启用DMA中断2、添加代码2.1、注册DMA中断/**注册的是传输完成中断*具体注册的中断服务函数在lv_port_disp.c中*/HAL_DMA_RegisterCallback(&hdma_memtomem_

【AXI】解读AXI协议双向握手机制的原理

解读AXI协议双向握手机制的原理一、写在前面二、AXI双向握手机制简介2.1信号列表2.2双向握手目的2.3握手过程2.3.1CASE1(READY信号先于VALID信号改变)2.3.2CASE2(READY信号与VALID信号同时改变)2.3.3CASE3(READY信号晚于VALID信号改变)2.3.4总结2.4数据通路的握手要求2.4.1读数据通路2.4.2读地址通路2.4.3写数据通路2.4.4写地址通路2.4.5写回复通路2.4.6总结2.5不同数据通路间的约束关系2.5.1读操作约束关系2.5.2写操作约束关系(AXI3.0版)2.5.3写操作约束关系(AXI4.0版)三、其他数字

【AXI】解读AXI协议双向握手机制的原理

解读AXI协议双向握手机制的原理一、写在前面二、AXI双向握手机制简介2.1信号列表2.2双向握手目的2.3握手过程2.3.1CASE1(READY信号先于VALID信号改变)2.3.2CASE2(READY信号与VALID信号同时改变)2.3.3CASE3(READY信号晚于VALID信号改变)2.3.4总结2.4数据通路的握手要求2.4.1读数据通路2.4.2读地址通路2.4.3写数据通路2.4.4写地址通路2.4.5写回复通路2.4.6总结2.5不同数据通路间的约束关系2.5.1读操作约束关系2.5.2写操作约束关系(AXI3.0版)2.5.3写操作约束关系(AXI4.0版)三、其他数字

手把手教你,通过HAL库实现STM32的ADC的DMA读取

目录1.CUBEMx设置1.1新建工程1.2芯片配置1.2.1时钟配置 1.2.2系统调试配置 1.3ADC配置1.3.1ParameterSettings配置 1.3.2DMASettings配置1.4工程配置 2.程序完善2.1完善main函数 2.2调试3.总结1.CUBEMx设置1.1新建工程1.2芯片配置1.2.1时钟配置 在1处输入72按回车,系统会自动将其他的时钟调整为相对应的配置。 1.2.2系统调试配置为了使生成的程序可以进行在线调试,重新点击1处的Pinout&Configuration,点击SYS,在Debug处点击SerialWire。 1.3ADC配置此处我们将14路

AXI-DMA

     AXI-DMA:实现数据从PS内存到PL的高速传输。            Zynq芯片有4个高速接口HP口,接口时序是AXI时序,需要通过AXI的时序把数据写入到HP口,HP口实际是跟ARM的DDR3的控制器互联的,这样的话,就能把FPGA这一侧的数据写入到ARM的内存里面去,这个过程叫做DMA。        DMA介绍:        DMA直接存储器访问,无需CPU介入,提高数据的访问速率。因为CPU一个总线周期最多对总线进行一次读写操作,对于CPU处理器,如果要把内存中A地址的数据搬移到B地址,需要先将A地址的数据取出并放入寄存器,再从寄存器取出数据放入B地址,需要花费两个

STM32的ADC+DMA采集

目录前言一、ADC配置思路二、DMA配置思路三、ADC+DMA程序实现1.标准库版本1.1配置相关IO口。1.2配置ADC1.3配置DMA1.4开始ADC+DMA采集2.HAL库版本2.1cubemx配置2.2代码移植2.3结果前言本篇记录关于32的ADC的DMA采集,包含ADC外设配置思路、DMA配置思路,以及标准库和HAL库两个版本的程序实现。一、ADC配置思路ADC配置需要考虑哪些呢?首先最先想到的是应该是它需要IO做模拟输入,它有分辨率,采样时间等等的要求,若是多个ADC通道采集,那么还需要考虑不同通道的顺序转换,因为几个通道共用一个ADC外设的DR寄存器。按照惯例,要使用片上外设,首

FPGA开发(4)——AXI_LITE总线协议

一、AXI总线简介对于axi总线的学习我主要是参考了赛灵思的ug1037文档以及arm的INI0022D手册,对其中的内容做了总结。AXI是amba总线的一种,包含三种,axifull、axilite和axistream。AXI工作:axi接口包含了五组通道,分别是读地址、写地址、读数据、写数据以及写响应。数据可以在主机和从机中双向传输,AXI4支持最大256突发读写,AXI-lite只不支持突发读写。1、axi支持数据突发传输,读和写通道可同时工作。Axi-lite则不支持突发传输,axi-stream可支持任意突发长度传输2、其次,axi和axi-lite是地址映射的,axi-stream

AXI协议详解(10)-非对齐传输

非对齐传输本章介绍AXI协议如何处理未对齐的传输。它包含以下部分:•未对齐的传输•示例10.1关于未对齐传输AXI协议使用基于突发的寻址,这意味着每个事务由多个数据传输组成。通常,每个数据传输都与传输大小对齐。例如,32位宽的传输通常与四字节边界对齐。但是,有时需要在未对齐的地址处开始突发。对于由宽度大于一个字节的数据传输组成的任何突发,必须访问的第一个字节可能与自然数据宽度边界不对齐。例如,从0x1002字节地址开始的32位(四字节)数据包与32位边界不对齐。AXI协议使Master能够使用低阶地址线为突发发送未对齐的起始地址。低位地址线上的信息必须与字节通道选通上包含的信息一致。注意:AX