Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
I am trying to measure the FX2LP USB chip througput in bulk mode. In order to do so, I have modified bulk example firmware so it continiously fills the two output endpoints (0x86, 0x88) with 512 data bytes. I have also changed the BulkLoop C# application to read the data from those two endpoints. I have measured the time between start and stop commands and the number of bytes I was able to read from the device in this time. My result was about 0.8 MBytes/s, but I was expecting much higher throughput.
I am using Win7-64. How can I verify that the system operates in high speed and not in fast speed (0.8MBytes/s seems like fast speed mode to me)? Is there another possible reason for such low speed?
I've seen speeds upto 40MBps. Use the streamer application and cystream firmware that come as part of SuiteUSB for the measurement.
The device would report its capability through descriptors, FX2LP would report USB2.0 support so if it is enumerated as full-speed you should see a pop-up with a message similar to device capable of operating at higher speeds you might want to switch the device to a high-speed capable port.
I have found out that the bottlenack was the embedded part - filling the endpoints. Removing the endpoints filling by the CPU and just submitting to USB (filled with junk) increased the throughput to 16MBytes/s which is quite good.