This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

USB MSC R/W speed on C5535 is low

Hi Support team,

    Our customer did the USB MSC R/W speed benchmark with class 10 SD card on C5535 and the result is low. The speed of sequential write is 0.97 MB/s and the speed of sequential read is 2.35 MB/s. Is that our expectation?

  • Hi Sherman,

    There are two examples for the USB Highspeed MSC examples in the CSL. One is using the CPU to copy data from the USB FIFO. That example is slow. The other example is using the CDMA to copy data from USB FIFO which is relatively fast. Which example are you using for the measurement?

    In the CDMA example, we only use one CDMA descriptor which can only submit 512 byte packet at a time. In the past, we were able to increase the CDMA descriptors to 16 which allow to submit 8KB of data at a time. Along with the 8KB read buffer for the SD card, we were able to achieve ~10MB/s on read. We can certainly share the improved USB MSC code with you.

    Best regards,

    Ming

  • Hi Ming,
      Thanks for the reply. I did the test on my site and I'm using "csl_3.01" and "CSL_USB_MSC_dmaExample" of ccs_v5.0. The result is still very low as bellow. (unit: KB) Please kindly share the code of 16 descriptors. Thanks a lot.

  • Hi Ming,

         Have any update for this issue? Have you ever tried  "csl_3.01"?

     

    BRs,

    Sherman

  • Hi Ming,

    Could you please share the code? How did you modify the USB MSC DMA example to allow for 16 descriptors?

  • Hi Ming,

    I'm going to re-request this.  If there some code repository somewhere that this can be found? I'm sure I'm not the only one that would like to see how this is done.

    Could you please share the code? How did you modify the USB MSC DMA example to allow for 16 descriptors?

  • Hi John and Sherman,

    Attached please find the modified code to speed up the USB MSC on SD card (IN only, from DSP to USB Host). The code changes were made long time ago. It is based on the CSL 2.10 and the projects are still for CCS 3.3. I do not have time to migrate the changes into the latest CSL and CCS 5 or 6. You may have to do it by yourselves. The code is not part of the CSL formal release, therefore, take it as it is. There will be no support for this code.

    In this zip file, there are two USB projects: example 4 and exmple 6. Please ignore example 6 and focus on example 4. It is the USB MSC using CDMA. Please read the readme.tx under USB_Example4_6_PG2.0_20100823_001\VC5505_CSL\CCS_v3.3_Examples\usb\example4 folder. Pay attention to the CSL_MMCSD_MULTISECT_TXFER macro. All the multiple descriptor relted changes are embraced by this macro.

    Thank you very much for your patience.

    Best regards,USB_Example4_6_PG2.0_20100823_001.zip

    Ming