AnsweredAssumed Answered

New, stable and working FAT/SD implementation and EMI filtering errors

Question asked by bonelli on Sep 16, 2015

I'm happy to share something I found last week:
(see "Read SD card with FatFs on STM32F4xx devices by Tilen Majerle (Quick and easy implementation for STM32F4-Discovery)")

This code use SDIO, FATFS, and DMA. It seems to be well-written and stable. I obtained very good results (WR : 7MB/s, RD : 10MB/s @ 24MHz SDIO). I tested it using the STM32F407 disco and daughter board.

Now I'm tring to get it working on my custom hardware. The hardware changes are:
- Lines are definitely shorter, there is no connectors between the CPU and the SD card
- I use a EMIF06-MSD02N16 as EMI protection
- I don't use any pull-up R since the EMIF integrate them (activating the RPU don't to solve the problem described below).

What I see is that the fatfs is working only with very slow SDIO clocks:
- >=8MHz does not work (f_mount error)
- 4-6MHz not stable (f_mount ok, f_write not stable)
- 1MHz seems to be stable

I checked the CLK/CMD/DATn lines with a scope with low-capacitances actives probes. Theses lines seems to be ok at 1MHz. Clock is ok at 8MHz.

My olders projets using SD card with SPI bus mode and EMIF device also have issues with high speed SPI clocks even with very well designed PCBs (despite I got good results with home-made 2 layers PCB, high speed SPI ***without*** EMIF).

So my conclusion at this point is that the EMIF device is not recommendable.

Does other peoples notice issues with this device? Any other solution to do ESD/EMI filtering at 24MHz SDIO?

Thank you