Start a new topic

limits of data tx for _4FM_send and _4FM receive data

hello every one,

I need to receive the data from my FIFO, I am able to receive the lesser number of data for example 1024 byte, 512 bytes etc.

but since at one occasion my scanning number of data are too large and I need to take them at once, hence I saved them in a bigg FIFO and then try to receive it, but cannot.

My data is around 200 KBytes 80 MBytes now and can exceed in maximum case to 1.5 MBytes. Of course it can be achieved through splitting data, but the target for my design is to reduce the time of the system process.

Is it possible to fetch this amount of data through DMA from _4FM_Receive data command?



Dear Jaffry,

_4FM_ReceiveData can receive up to 8MB in one call, this is the maximum value. The size should be multiple of 128 bytes.

In order to get 80MB, you will need to call 10 times _4FM_ReceiveData with 8MB as transfer size. Note that _4FM_ReceiveData will only returns when all the bytes were received. Typically if you ask for 8MB, the function returns when 8MB was actually received or before if the timeout value is reached.

Best Regards,

hi again

Do you know of the relation of the time out and then number of bytes to read.

For example wrt the 4DSP PCIe DMA communication.  It is because. I have stored data in my fifo (I call it DMAout FIFO) hence I have verified the number of data to be (as multiple of 128 bytes) more than ([font=Verdana]8192*2) [/font]bytes, but I am at maximum able to read the 4096 bytes only. For example I tried to read (16384*2) bytes, . Note that in the DMAout FIFO I have almost 40,000 words, (10 KB FIFO) and I wanted to read that.

I even set the timeout value to 8000 ms to but unable to read more than 8192*2 byte datas.

Dear Jaffry,

This must be a bug in your firmware, one way or another. Look at the memory test (sipmemtest) it does read/write GBs using 8MB bursts without any issues. This software runs on memory FIFOs so I believe.

As an extra pointer, 4kB is the size of the data FIFOs in the host interface. This is normal you can always read/write 4kB even if you would simply loopback in/out data wormhole of the host interface star.

I assume your FIFO implementation is simply not working.

I hope that helps,
thank you

Yes I am looking into my design as now I also suspect that I found my data to be less in few numbers than 40000 data, (which was expected number )  but anyways, the data that I get to the PC is right(although it is some part of what I wanted, hence I think FIFO implementation is fine but not perfect. I will look into it and hopefully it will work fine.

thanks for suggestion.
Perfect, Jaffry! Have a nice day!
This topic is being closed because the issue is considered as resolved by 4DSP. Feel free to create a new topic for any further inquiries.