cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
3,900 Views
Registered: ‎10-28-2016

AXI DMA simple mode issues

Hi everyone!

 

I'm trying to perform a pretty big (streaming) data transfer (~ 4MBytes) from an ADC to DDR using a custom IP and the AXI DMA S2MM port. I'm learning how to use the AXI DMA core. I'm using it in simple interrupt mode (no SG) and I've got a few questions.

 

1. There's a problem when I run the simple mode with interrupts example (xaxidma_example_simple_intr). If I set maximum packet length (MAX_PKT_LEN in code) to a number higher than 0x3FFF (i.e. 0x4000) everything hangs (DMA hangs). Why is this happening? Is there a maximum packet size?

 

2. Now, about my own design: my custom IP asserts tlast when a determined number of packets are sent and, when this happens, DMA stops getting data from my custom IP. As I have read in these forums, that's the way it works. But... Is there any way to resume the DMA and make it keep getting data again instantly without losing any data?

 

3. I would like to perform data transfers of, at least, 4MB without losing any word of my data. Is it possible using simple mode? Could you give me any advices to achieve this aim properly?

 

 

Thank you!

Have a nice day!

John Churches

0 Kudos
2 Replies
Highlighted
Participant
Participant
3,043 Views
Registered: ‎05-28-2017

If you have not figured out why, or for anyone finding this question in the future, I found out why recently.

 

dma.PNG

 

This parameter specifies the DMA buffer size.  It defaults to 14 bits or 16KB or 0x4000.

Highlighted
Visitor
Visitor
727 Views
Registered: ‎05-29-2019

Hi John,

 

I am working on a similar project as you are and would like to know if you got your system working.

0 Kudos