Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

USB superspeed peripherals

Not applicable





I am trying to create a C# application that saves data into a text file when the fx3 is interfacing with a FPGA.


Using the XferData function from CyUSB.dll, i can only get  transfer rates less then 10MB/s (saving into SSD) while your Streamer application show a throughput around 180MB/s.


What is wrong?


Thank you!

1 Reply
Not applicable





XferData is an Synchronous (Blocking) API. i.e. It performs synchronous (i.e. blocking)  IO operations and does not return until the transaction completes or the endpoint's TimeOut has elapsed.


Whereas, stremaer application uses Asynchronous APIs (BEginxferData, WaitForXfer, FinishXferData). BeginDataXfer is an advanced method for performing  asynchronous IO.  This method sets-up all the parameters for a data transfer,  initiates the transfer, and immediately returns, not waiting for the transfer  to complete. You are seeinng better throughput with streaer mostly due to this. What is the packtes per Xfer and xfers to Queue that you have selected in streamer app?




You can find details in the CyUSB.NET Programmer's manual, when you install the SuperSpeed USBSuite.