cancel
Showing results for 
Search instead for 
Did you mean: 

Driver support for MultiMediaCard(MMC)

salexku
Associate
Posted on July 06, 2014 at 09:20

Hello,

I'm currently working on a data logger project that records raw sensor data to a flash memory. As the writing speed is the most crucial parameter in the design (> 10 MB/s) , my plan was to use an MMCplus(MultiMediaCard Plus) card with 8-bit wide interface and 48MHz clock speed. However, after going through the STM32Cube/STM32F4xx_DSP_StdPeriph_Lib drivers it seems that they lack support for MMC. Is this indeed that case or am I missing something?

After testing the existing SD drivers with a few class 10 SD cards it seems that it is hard to reach the 10MB/s mark with a 24MHz/4-bit interface (raw data, no file system).

Has anyone had any sucess reaching those high speeds on SD cards?

I am working with the STM32F427VI on a custom PCB.

Thank you in advance,

Alex
1 REPLY 1
Posted on July 06, 2014 at 13:21

Writing speed is impacted by several factors, the speed of the card, the size of the data written, and the clock speed of the interface.

Most cards aren't particularly fast, and the specs print on the package are usually optimistic.

Writing 512 byte sectors will kill you, I'd suggest a minimum of 32 KB. Consider caching and lazy writing for FAT/DIR structures.

The interface at 24 MHz is going to provide an upper limit of 12 MBps (4-bit mode). It's possible to clock higher, 37.5 MHz is the highest documented as workaround for the errata in BYPASS mode, which does work on some cards, but this precludes the use of USB.

It might be possible to negotiate to 8-bit mode, the example code nominally supports SD, and SDHC in 1 and 4-bit modes, with newer code finally supporting >2GB properly.

Considered NAND memory off the FSMC? Or CompactFlash?
Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..