2014-01-05 05:10 PM
Hi,
I am working on a couple of projects that incorporate USB Mass Storage, i am using an STM32F103RB MCU and the micro SD card is connected via SPI.The maximum transfer rate i am getting is around 85 kB/sec.I am trying to determine where the bottleneck is. Would there be anything in the USB side of things that would limit the USB Mass Storage data transfer on the STM32F103?What is the maximum practical data transfer that I could expect over USB for Mass Storage via SPI on the STM32F103?I have tested various different micro SD cards and they all have the same transfer rate so i am pretty sure the micro sd card is not the bottleneck. #spi-mass-storage2014-01-05 05:25 PM
It doesn't take much to benchmark the SD/SPI performance locally by wrapping it with a file system like FatFs, then you'd know what the ceiling is. My recollection is the F1 performance is pretty lame, the SDIO of the F2/F4 is significantly faster, and USB FS might yield 800 KBps reading. That the F1 is an order of magnitude slow wouldn't surprise me. If I find time later in the week I might rack up my F107 board with a full size SD/MMC card slot.
2014-01-05 06:06 PM
Hi Clive, thanks for the reply. I also have a project for the STM32F107 USB Mass Storage via SPI, and the transfer rate over USB i am getting is around 240-250 kB/second. The STM32F107 has different USB hardware i.e. USB_OTG but I am unsure if this would be causing the bottleneck on the STM32F103? Both USB devices are rated at Full Speed
2014-01-06 01:54 AM
Hi
I do not think you have understood what clive1 is saying There are 2 ways to access SD cards : SPI - single bit serial access (is this called F1 clive?) nibble serial access (is this called F2/4 clive?) Obviously, using 4 bit access is going to be faster than single bit access. This SD card access and has nothing to do with USB speed! (unless I have missunderstood clive's info) There are 2 data links to test - USB and SD card access2014-01-06 02:25 AM
I think he was referring to the F1 meaning F10x series of MCU (i.e. STM32F103 and STM32F107) and F2 meaning F20x etc etc. The MCU's i am using only have SPI they dont have SDIO.