ZYNQ踩坑日记3 AXI_DMA 传输问题——再续

       关于使用AXI_DMA使用的问题,我实现的功能是使用AXI_DMA采集ADC数据写入DDR,每次数据包128个,数据包大小64bit,但是AXI总线在LAST信号拉高之后,并没有立即拉低READY信号,而是又接收了4个时钟数据然后拉低,并且这4个时钟数据并没有写入DDR,仍然存在DMA的缓冲数组中,在下一次传输开始时,这4个时钟数据会最开始写入,然后重复这个过程。

        在xilinx官网的axi dma production guide PG021文档中有一句话

        Note: In the absence of any setup (that is, before it is programmed to run), AXI DMA will pull the s_axis_s2mm_tready signal Low after taking in four beats of streaming data. This will throttle the input data stream. To have a minimum amount of throttling, ensure that the AXI DMA is set up to run much before the actual data arrives.

        简单翻译一下为:在没有任何设置的情况下(即在其被编程运行之前),AXI DMA 在接收了四个节拍的流数据后,会将 s_axis_s2mm_tready 信号拉低。这将限制输入数据流。为了尽量减少节流,确保 AXI DMA 在实际数据到达之前就已经设置好并运行。

        之前理解是AXI DMA在初始化后会接收四个节拍的流数据,然后后面就不需要接收四个节拍的流数据,在xilinx

ZYNQ平台上进行DMA环路测试,首先需要熟悉DMA控制器的工作原理以及如何在VIVADO中进行硬件设计和配置。为了帮助你深入理解这一过程,推荐你查看《ZYNQ DMA与VDMA应用开发实战指南》。这份资料将为你提供从基础概念到实际操作的全面指导。 参考资源链接:[ZYNQ DMA与VDMA应用开发实战指南](https://wenku.csdn.net/doc/1fmtanfebq) 配置AXI_DMA_LOOP的步骤大致如下: 1. 创建一个新的VIVADO工程,并选择对应的ZYNQ平台。 2. 在VIVADO中设计硬件逻辑,包括AXI DMA IP核的集成。 3. 根据AXI协议设置DMA IP核的相关参数,包括传输类型、数据宽度和传输方向等。 4. 连接DMA IP核到AXI接口,并确保所有必要的信号都已正确连接。 5. 配置软件平台,包括操作系统的安装和驱动程序的加载。 6. 编写测试程序,通过软件来初始化DMA传输,并设置好源地址和目标地址。 7. 运行环路测试程序,观察数据是否正确地在指定的源地址和目标地址之间传输。 在《ZYNQ DMA与VDMA应用开发实战指南》中,你可以找到更加详细的操作步骤和代码示例,帮助你更好地理解和实践DMA环路测试。此外,该教程还提供了关于如何进行硬件调试和软件编程的深入讨论,以及在遇到问题时的优化策略,确保你能够全面掌握DMAZYNQ平台上的应用。 参考资源链接:[ZYNQ DMA与VDMA应用开发实战指南](https://wenku.csdn.net/doc/1fmtanfebq)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值