-
Notifications
You must be signed in to change notification settings - Fork 518
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
99 changed files
with
4,281 additions
and
1,529 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
// RP2040 PIO SDIO setup and test. | ||
/* | ||
This example requires a SDIO Card socket with the following six lines. | ||
CLK - A clock signal sent to the card by the MCU. | ||
CMD - A bidirectional line for for commands and responses. | ||
DAT[0:3] - Four bidirectional lines for data transfer. | ||
CLK and CMD can be connected to any GPIO pins. DAT[0:3] can be connected | ||
to any four consecutive GPIO pins in the order DAT0, DAT1, DAT2, DAT3. | ||
For testing, I use several RP2040/RP3350 boards. | ||
The Adafruit Metro RP2040 which has a builtin SDIO socket. | ||
https://learn.adafruit.com/adafruit-metro-rp2040 | ||
I use this SD socket breakout board for other boards. | ||
https://learn.adafruit.com/adafruit-microsd-spi-sdio | ||
Wires should be short since signals can be as faster than 50 MHz. | ||
*/ | ||
#define DISABLE_FS_H_WARNING // Disable warning for type File not defined. | ||
#include "SdFat.h" | ||
//------------------------------------------------------------------------------ | ||
// Example GPIO definitions I use for debug. Edit for your setup. | ||
// Run this example as is to print the symbol for your variant. | ||
// | ||
#if defined(ARDUINO_ADAFRUIT_METRO_RP2040) | ||
#define RP_CLK_GPIO 18 | ||
#define RP_CMD_GPIO 19 | ||
#define RP_DAT0_GPIO 20 // DAT1: GPIO21, DAT2: GPIO22, DAT3: GPIO23. | ||
#elif defined(ARDUINO_RASPBERRY_PI_PICO) || defined(ARDUINO_RASPBERRY_PI_PICO_2) | ||
#define RP_CLK_GPIO 16 | ||
#define RP_CMD_GPIO 17 | ||
#define RP_DAT0_GPIO 18 // DAT1: GPIO19, DAT2: GPIO20, DAT3: GPIO21. | ||
#elif defined(ARDUINO_ADAFRUIT_FEATHER_RP2350_HSTX) | ||
#define RP_CLK_GPIO 11 | ||
#define RP_CMD_GPIO 10 | ||
#define RP_DAT0_GPIO 22 // DAT1: GPIO23, DAT2: GPIO24, DAT3: GPIO25. | ||
#endif // defined(ARDUINO_ADAFRUIT_METRO_RP2040)) | ||
|
||
#if defined(RP_CLK_GPIO) && defined(RP_CMD_GPIO) && defined(RP_DAT0_GPIO) | ||
#define SD_CONFIG SdioConfig(RP_CLK_GPIO, RP_CMD_GPIO, RP_DAT0_GPIO) | ||
#else // defined(RP_CLK_GPIO) && defined(RP_CMD_GPIO) && defined(RP_DAT0_GPIO) | ||
#warning "Undefined SD_CONFIG. Run this program for the Variant Symbol." | ||
#endif // defined(RP_CLK_GPIO) && defined(RP_CMD_GPIO) && defined(RP_DAT0_GPIO) | ||
//------------------------------------------------------------------------------ | ||
// Class File is not defined by SdFat since the RP2040 system defines it. | ||
// 1 for FAT16/FAT32, 2 for exFAT, 3 for FAT16/FAT32 and exFAT. | ||
#define SD_FAT_TYPE 3 | ||
|
||
#if SD_FAT_TYPE == 1 | ||
SdFat32 sd; | ||
File32 file; | ||
#elif SD_FAT_TYPE == 2 | ||
SdExFat sd; | ||
ExFile file; | ||
#elif SD_FAT_TYPE == 3 | ||
SdFs sd; | ||
FsFile file; | ||
#else // SD_FAT_TYPE | ||
#error Invalid SD_FAT_TYPE | ||
#endif // SD_FAT_TYPE | ||
|
||
void setup() { | ||
Serial.begin(9600); | ||
while (!Serial) { | ||
yield(); | ||
} | ||
Serial.println("Type any character to start\n"); | ||
while (!Serial.available()) { | ||
yield(); | ||
} | ||
Serial.print("Variant Symbol: "); | ||
Serial.print("ARDUINO_"); | ||
Serial.println(BOARD_NAME); | ||
Serial.println(); | ||
#if defined(SD_CONFIG) | ||
if (!sd.begin(SD_CONFIG)) { | ||
sd.initErrorHalt(&Serial); | ||
} | ||
Serial.println("Card successfully initialized."); | ||
Serial.println("\nls:"); | ||
sd.ls(LS_A | LS_DATE | LS_SIZE); // Add LS_R for recursive list. | ||
Serial.println("\nDone! Try the bench example next."); | ||
#else // #if defined(SD_CONFIG) | ||
Serial.println("Error: SD_CONFIG undefined for your board."); | ||
Serial.println("Define RP_CLK_GPIO, RP_CMD_GPIO, and RP_DAT0_GPIO above."); | ||
#endif | ||
} | ||
|
||
void loop() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.