Hi, Jake, please see the attached picture. Last night, I found that it might be limited by the burst length of DMA I used. I'd like to know if it is possible to transfer any length of data to SDRAM if I disable burst mode of DMA.
In the picture, the "ad_buf" is my own module, a source buffer which generate data continuously. I'm trying to transfer data in "ad_buf" to my PC using Ethernet. Since my board only support 10/100 Mbps, the "ad_buf" has the data rate of 160 Mbps or higher, I plan to store the data as much on the SDRAM as possible using DMA, and then transfer the data in SDRAM to PC using Ethernet. Though some data will lost, a block of data in SDRAM I get is supposed to be continuous and error-free. Now, I met another problem: when I call dma transfer function and udp function serval times, the Ethernet controller cannot autonegotiate successfully or no data will transfer to PC when it autonegotiate successfully. I'm considering the reason is interrupt confliction. I'm not sure about this. Could you please give me some ideas? Thank you very much!