1 Reply Latest reply on Aug 14, 2016 9:45 AM by Madhu Lakshmipathy

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

    694428961_1641016

      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 !