cancel
Showing results for 
Search instead for 
Did you mean: 

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

sheyong5499
Associate II
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

3 REPLIES 3
slimen
Senior
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

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 Up vote any posts that you find helpful, it shows what's working..
sheyong5499
Associate II
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