-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SdFat with SDIO support. #73
Comments
Great! Good news for the Arduino / PlatformIO users. I've retrofitted Arduino compatibility to this library, but prior to that I had never used Arduino, so it was an afterthought. |
Arduino is not for serious projects. I have tried to isolate the core of SdFat so I can use it on systems like ChibiOS. I see you also have used STM32 chips also. I had hope for Arduino in 2008 when I first tried it but it never evolved as I expected. The Arduino guys make lots of money catering to to their huge crowd so it makes good business sense. |
I noticed the
This library actually started as a port from a project on Cypress PSoC, followed by a port from FreeRTOS+FAT to FatFs, when the Pico first came out. Then the PSoC project migrated to STM32. I have learned a lot and found a lot of bugs by open sourcing the code and maintaining it multiple platforms. When I started the PSoC project, years ago, PSoC Creator made it really difficult to use C++, so even though I previously had used C++ daily for 12 years I did everything in straight C. Also, that seemed appropriate for an embedded library; consistent with the Pico SDK. But, SdFat shows me what I was missing. Meanwhile, STM32CubeIDE makes it less painful to use C++, and some is creeping back into my larger applications. |
I've been thinking that 1-bit SDIO could be a nice alternative for highly pin-constrained projects, like in Hardware design with RP2040. I'll have to study your PioSdioCard.pio. There is pico_sd_card, "but the code is very much a prototype". You'd need no SPI and only three pins: SCK, CMD, and D0, and the pin assignments would be very flexible. I guess performance would be similar to SPI. |
I did a PIO SPI that I could clock at high MHz and got the same rates as 1-bit SDIO - it is really simple. I will look for the code. |
Here is an "as is" copy of my PIO SPI tests for SdFat for RP2040 from about a year ago. Very rough - in development. The zip has the library and a version of bench setup for a Adafruit Metro 2040. I ran it today with this result:
|
This is not an issue, Just to let you know I finally posted a beta version of SdFat with RP2040/RP2350 support here.
My main goal was Arduino users with small transfers. Here are some results from the bench example.
Pico 2 small 64 byte transfers 150 MHz:
Here is the result with 512 byte transfers that avoid cache copies:
Pico 2 512 byte transfers at 150 MHz
Finally large transfers and overclocking.
Pico 2 large transfers at 250 MHz
The text was updated successfully, but these errors were encountered: