How to modify firmware to get better performance of high speed?

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

cross mob
Anonymous
Not applicable

I recently purchased EZ-USB FX3 CYUSB3KIT-001 development kit. I use Microsoft's routine USBSamp as a USB driver, and i have written an applications. Now i use Cypress's firmware USBBulkSourceSink to test the application and driver, but communication rates up to only 4M/s or so .This rate is far from the high-speed(60M/s).Then I noticed some tips of firmware:

   

"The default example is not optimized for performance in USB 3.0, in order to get better performance the following changes has to be done.

   

1. Have only 1 endpoint (IN or OUT) .This avoids any USB host bandwidth issues.

   

2. Update the "Max. no. of packets in a Burst" field (1 to 15) in the "Super Speed Endpoint Companion Descriptor" in cyfxbulkdscr.c.

   

3. In cyfxbulksrcsink.c change the dmaCfg.size by factor of ("Max. no. of packets in a Burst" field in the "Super Speed Endpoint Companion Descriptor" + 1) for USB 3.0. The performance will be better if this is twice the size of the burst ie.  (2 * ("Max. no. of packets in a Burst" field in the "Super Speed Endpoint Companion Descriptor" + 1)). When making these changes, make sure that there is enough memory available for buffering.

   

4. In cyfxbulksrcsink.c change epCfg.burstLen to "Max. no. of packets in a Burst" field in the "Super Speed Endpoint Companion Descriptor" + 1, before calling CyU3PSetEpConfig."

   

So I try this method,but i am failed! Downloading the program is unsuccessful! I do not know why!

   

For my example : Max. No. Of packets in a Burst value is set to 15,

   

              dmaCfg.size value is set to 32,

   

              epCfg.burstLen value is set to 16.

   

Where is wrong in this example ? How should i set up the firmware to improve communication rate?  Thank you !

0 Likes
1 Reply