Skip to main content
sheyong5499
Associate
October 25, 2016
Question

Performance of STM32F7 USB Mass Storage (MSC) <-> DMA <-> SD

  • October 25, 2016
  • 3 replies
  • 922 views
Posted on October 25, 2016 at 11:50

Hello everyone,

I am implementing a SD card-reader like device on my custom board with STM32F756 with SW4STM32 (AC6).

Up to this date, I have successfully completed a working link to read/write file from the PC to SD card via my custom board with 4-bit SDIO & DMA. However, my problem here is the PERFORMANCE.

The read/write speed are so low:

Read from SD card: 1.35MB/s

Write to SD card:  158KB/s

 

I have ruled out SD card issue as it is a Class 4 SDHC which I can read @ 22MB/s and write @4.25MB/s using a common SD card reader off the shelf.

Both my USB, SDIO clocks are set to the highest possible with the block size at 512. 

  1. Any idea where should I look into for performance improvement?

  2. Anyone has tried using it on the official development board - STM32756G-EVAL or STM32746-EVAL? and how is the performance?

Do share your experience :) Thank you

    This topic has been closed for replies.

    3 replies

    slimen
    Visitor II
    October 25, 2016
    Posted on October 25, 2016 at 19:51

    Hello,

    Refer to this

    http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-expansion-software/x-cube-32f7perf.html

     about STM32F7 performance, it may help you.

    Regards

    Tesla DeLorean
    Guru
    October 25, 2016
    Posted on October 25, 2016 at 20:14

    Not sure that would go anywhere to explain the level of suck being reported here...

    The read side suggests it is using USB-HS, the write numbers suggest it is writing single sectors.

    I'd instrument and understand the write patterns at the SDIO layer.

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    sheyong5499
    Associate
    October 26, 2016
    Posted on October 26, 2016 at 10:14

    Some updates:

    I have probed the SD Clock to make sure it is running at 48MHz

    Setup another test focusing on SD write by creating and write a big 10MB file into the SD card directly from the MCU without the activation of USB. 

    The result I got was so bad, it just passed 100KB/s 

    Is is possible to be caused by the skew? or the trace capacitance/ inductance/ impedance? To be honest, I wasn't giving too much attention to the layout design at this prototyping board stage.

    Regards,

    sy.t