Getting SPI-based MicroSD card adapter working with Seed

Just to add to this: place the inline resistance (try 20 - 200 Ohms) at the driving side of the signal lines.

If you imagine the wire as a capacitor, you want this inline resistance to limit the current that this capacitor is charged with in order to reduce the ringing.

1 Like

Thanks for the explanation, @recursinging. For my application, higher speeds aren’t needed, what I really need is more flash. After getting my test code running, I added FatFS to my real code and was 5KB over limit. Guess I need to go back to trying to figure out why my QSPI-based patch storage scheme very occasionally wipes clean. :frowning:

Keep an eye on this PR, when it’s merged, there will be more program space available.

Until then, if you’re close to the 128k limit, try compiling with -0s - it might reduce the size just enough.

The slower speed and the addition of some 20 Ohm resistors seems to have remedied the problem for me, as well. Thanks!

1 Like

Hi everyone.
I had no issue with my Pod and no issue with my breadboard too!
The troubles came when I added the SD card reader with daisy on a protoboard. Changing the GPIO speed did the trick.
I should try to add some 20R on the way too!

„discovered the QSPI flash memory peripheral on the Daisy. Ended up using that for patch storage“

Hi, @Elby I am currently trying to get multiple presets to work with the persistent storage. got a „one preset“ system working, but all attempts on multiple presets are failing.

maybe can you share your code, how you get multiple presets working?

thanks!

Hi all, anyone tried a SPI sdcard with FatFSInterface / FATFS? I don’t see a way to config FatFSInterface to use a SPI device. Am I missing something?

I tapped-out and bought and switched to using a 1 bit SDIO interface. After finding out that declaring FIL fil as a local (storing it in stack space) will elicit infinite FR_DISK_ERRs from f_open, and moving it to global scope, everything works as expected. Onto more interesting code…

Was the problem actually caused by the variable being on the stack, or caused by the variable going out of scope?