Topic: limits of data tx for _4FM_send and _4FM receive data  (Read 6337 times)

Jaffry December 03, 2013, 06:19 AM

  • Member
  • *
  • Posts: 126
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?


thanks


Jaffry

arnaudNL December 03, 2013, 07:44 AM (#1)

  • 4DSP Staff (EU)
  • Administrator
  • Member
  • *****
  • Posts: 7110
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,
Arnaud



Jaffry December 04, 2013, 01:04 AM (#2)

  • Member
  • *
  • Posts: 126
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 (8192*2) 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.


thanks

arnaudNL December 04, 2013, 04:55 AM (#3)

  • 4DSP Staff (EU)
  • Administrator
  • Member
  • *****
  • Posts: 7110
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,
Arnaud

Jaffry December 04, 2013, 05:03 AM (#4)

  • Member
  • *
  • Posts: 126
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.
bests,
jaffry

arnaudNL December 04, 2013, 06:03 AM (#5)

  • 4DSP Staff (EU)
  • Administrator
  • Member
  • *****
  • Posts: 7110
Perfect, Jaffry! Have a nice day!

arnaudNL December 04, 2013, 06:10 AM (#6)

  • 4DSP Staff (EU)
  • Administrator
  • Member
  • *****
  • Posts: 7110
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.