FPGA-PS-DMA

米联客例程:03PL发数据到PS方案(DMA)

想完成pl端数据放到ps端指定的ddr地址。

参考文章:AXI DMA详解与应用篇 |第一讲-腾讯云开发者社区-腾讯云 (tencent.com)

问题1:为什么发完16次传输之后就不再传输了?

问题1.1:他是怎么传输的?

答1.1:ps端初始化系统、gpio、中断、DMA后(开启dma中断),拉高gpio_start;pl端数据开始发送,dmaAXI_DMA_control发出中断信号给到ps端;ps端收到中断信号进入回调函数。

答1:因为在传完16次传输后有 DMA_Intr_Init(&AxiDma,0); 函数初始化了中断。此时的DMA_Intr出去disable的状态。需要在合适位置调用 DMA_Intr_Enable(&Intc,&AxiDma); //使能DMA中断  函数。问题2:例程中pl端中断信号由米联客自己的IP核ui_axisbufw产生,怎么自由控制中断?(发送完定长数据例程中为1M个数据,axis_last信号被置高后axi-dma发出中断)

答2:别去自由控制,让IP核自己控制输出中断就行。数据传输不够会补零发送

问题3:怎么从接收固定字长变接收不固定字长?

答3:固定字长就行,先试试补零后的数据能不能直接拿去升级程序。

插入:IP核ui_axisbufw的使用:1、引脚介绍  2、备注

ui_rstn:复位引脚低有效,由ps端控制;

W_FS_i:状态机发送一包数据的使能引脚,ps端控制;

W_wclk_i:写数据端(pl端)时钟;

axis_clk:axi时钟;

W_wren_i:写入fifo使能引脚;

W_data_i:写入的数据;

ui_axisbufw ip核自带一个可设定大小的fifo,在例程中深度设置为8Mb。

问题4:为什么dma在传小于10971字节数据时,s2mm_introut引脚有中断输出;大于10971字节时则没有?

答4:因为dma是Direct Register模式,该模式下传输的数据需要满足dma的突发长度(2^n,最小是2)因此需要对输入数据进行补长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值