cancel
Showing results for 
Search instead for 
Did you mean: 

Why file transfer speed of USB HS MSC example code is very slow?

Kavana shree
Associate II

I am doing a project using STM32H753 controller. When I flash USB HS MSC example code and transfer files , speed is very slow. It seems no difference between FS and HS modes. A large compressed files ​do not get transferred. Please help.

7 REPLIES 7

Ultimately going to be constrained by speed of underlying flash memory subsystem and size of contiguous blocks being written.

If it fails it is likely because the block storage method hasn't been adequately validated. ​

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Thank you for the reply.

I have checked the example​ code in the STM32H753 EVAL board. MAX speed at which file gets transfered is 355KB/s. The EVAL Board has 4bit wide SD card and USB 2.0 port. So what is the expected throughput in HS mode?

Full Speed should be able to sustain 700 KBps, haven't benched High Speed.

The underlying SDIO/SDMMC should be able to write between 5-10 MBps. You should benchmark the stand-alone performance as that's going to give you a ceiling.

For USB instrument so you can see the maximum block counts.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

How do I test and benchmark the standalone performance? Even in FS mode I am not achieving more than 355KB|s . What has gone wrong?

You'd read and write block(s) while timing the operation, and use that to quantify the speed of operation. Ideally you'd also use a scheme where you validate the data patterns read and written across the media.

SPEEDTST.001
32768000 Bytes, 347893959 Cycles
 18.84 MBps Read  (FatFs)
  1739 ms
 18.84 MBps SysTick Sanity
32768000 Bytes, 347653950 Cycles
 18.85 MBps Read  (FatFs)
  1738 ms
 18.85 MBps SysTick Sanity

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Sir,

​​

I carried the speed test to USB HS MSC. It is very slow not even 1% of the achievable speed. What are the bottleneck software components​ because of which the speed is curtailed?

Can anyone share me the clock configuration for USB MSC in HS mode?

Does writing multiple blocks improve speed over writing single block? If yes how to write multiple blocks?