I already asked a question about dma modes as the below link.
I got some help (thanks to travisfcollins) but still I cannot figure out some basic structure I should use.
I explain the jobs I have done until now again here. I set a timer in the Xilinx SDK and once the timer triggers the interrupt, Rx and Tx along with their dmas are enabled to send and receive data (just one time) and then I will disable all of them until the next interrupt. Rx and TX are connected by a RF cable on the board. Tx source dma is configured as stream and its destination as MM (Memory Mapped). Rx source dma is MM and its destination is stream. Now, I want to remove the timer and do the same thing. It means I need the dma not to interrupt CPU (to avoid any missing data) and I was thinking this means send/receive data in a cyclic scheme with 2D transfer enabled.
Since our group did some designs either in Vivado or Xilinx SDK I cannot switch to iio (as mentioned in my previous posted question) at this stage. I will explain the problem I have below and I do appreciate it if anybody could help me to find out the solution.
I am a beginner in this area and I plan to stream data from Rx to FPGA and then by using Ethernet send them to PC continuously with the highest possible speed. I am thinking, for Rx I should use the AXI stream mode as source and AXI MM as destination. However, data should be written into the memory one after another to make sure no data will be missed and this means utilizing a 2D transfer is a must. My first question is that whether AXI Stream as source and 2D transfer are the right choices? I read from (https://wiki.analog.com/resources/fpga/docs/axi_dmac#cyclic_transfers) that AXI Stream dose not care about 2D transfer if my understanding is right. I tried this but I did not get any data in 2D form. So, Do I need to use MM as source dma to be able to use 2D transfer? Also, I need to do the same process over and over as mentioned above, so I could use the cyclic mode because it is repeating automatically. But actually I am not sure if these all modes are working together at the same time. I could not find enough information in web, please let me know if anyone can introduce some online docs.
Would you please help me to find the dma modes and give me some hits to find the right direction?
You can queue up a transfer to the DMAC in advance so it will switch smoothly when it finished the first transfer.
Suppose you have two buffers A and B,
First you commit the A that will start immediately…