Inhaltsverzeichnis:

SD-Schnittstelle für ESP32 auswählen - Gunook
SD-Schnittstelle für ESP32 auswählen - Gunook

Video: SD-Schnittstelle für ESP32 auswählen - Gunook

Video: SD-Schnittstelle für ESP32 auswählen - Gunook
Video: ESP32 SD Card Interfacing Fast! 2024, November
Anonim
Wählen Sie die SD-Schnittstelle für ESP32
Wählen Sie die SD-Schnittstelle für ESP32

Diese Anleitungen zeigen etwas über die Auswahl einer SD-Schnittstelle für Ihr ESP32-Projekt.

Schritt 1: SD-Schnittstelle

In der ursprünglichen Arduino SD-Bibliothek verwendet die SD-Schnittstelle den SD-SPI-Busübertragungsmodus.

SD haben tatsächlich mehr Übertragungsmodus:

  • SPI-Bus-Modus: ESP32 hat mehr als 1 SPI-Bus, er kann während der Initialisierung angepasst werden
  • 1-Bit/4-Bit-SD-Busmodus: ESP32 widmet eine weitere Bibliothek namens SD_MMC der Implementierung der SD-Busmodus-API
  • SD UHS-II-Modus: ESP32 wird nicht unterstützt

Ref.:

www.arduino.cc/de/referenz/SD

en.wikipedia.org/wiki/SD_card

docs.espressif.com/projects/esp-idf/en/lat…

Schritt 2: ESP32 GPIO-Pins-Zuordnung

Hier sind die standardmäßigen ESP32 GPIO-Pins-Zuordnungen:

SD-Karten-Pin MicroSD-Pin Name 4-Bit-SD-Bus 1-Bit-SD-Bus SPI-Bus (HSPI / VSPInative-Pins)
1 2 D3 13 - SS (15 / 5)
2 3 CMD 15 15 MOSI (13 / 23)
3 - VSS Masse Masse Masse
4 4 VDD 3.3V 3.3V 3.3V
5 5 CLK 14 14 SCK (14 / 18)
6 6 VSS Masse Masse Masse
7 7 D0 2 2 MISO (12 / 19)
8 8 D1 4 - -
9 1 D2 12 - -

Die Zuordnung der GPIO-Pins des 1-Bit/4-Bit-SD-Busses kann nicht geändert werden.

Einfacher Aufruf von SD_MMC begin() zum anfänglichen 4-Bit-SD-Busmodus:

SD_MMC.begin();

Der 1-Bit-SD-Busmodus kann bei der Methode SD_MMC begin() ausgewählt werden, z.

SD_MMC.begin("/cdcard", true);

Der SPI-Bus (HSPI oder VSPI) kann beim Erstellen der SPIClass-Instanz ausgewählt werden, z.

SPI-Klasse spi = SPI-Klasse (HSPI);

Wie Sie sehen können, teilen sich 1-Bit / 4-Bit-SD-Bus-Pin-Pins mit HSPI, aber die Zuordnung der SD-Karten-Pins ist nicht gleich. Wenn also die Hardware gemäß der SD-Bus-Pinzuordnung angeschlossen ist, kann sie keine nativen HSPI-Pins verwenden. Die GPIO-Pins können mit der Methode SPIClass begin() überschrieben werden, z.

SPI-Klasse spi = SPI-Klasse (HSPI);

spi.begin(14 /* SCK */, 2 /* MISO */, 15 /* MOSI */, 13 /* SS */);

Und auch die SD-Bibliothek kann den SS-Pin, den SPI-Bus und die Busfrequenz bei der SD-Methode begin() überschreiben, z.

SD.begin(13 /* SS */, spi, 80000000);

Schritt 3: SD-Pull-up-Anforderungen

Wenn Sie den 4-Bit-SD-Bus-Modus verwenden möchten, befolgen Sie bitte unbedingt die ESP32-SD-Pull-up-Anforderungen, insbesondere:

  • Pull-up-Konflikte auf GPIO13
  • Konflikte zwischen Bootstrap und SDIO auf DAT2

Ref.:

docs.espressif.com/projects/esp-idf/en/lat…

Schritt 4: Verschiedene Hardware

Verschiedene Hardware
Verschiedene Hardware

ESP32 hat jede Menge Dev-Kit und Dev-Board, einige von ihnen haben einen eingebauten MicroSD-Kartensteckplatz.

Hier sind einige Beispiele in meiner Hand:

  • TTGO T-Watch, es ist an die GPIO-Pins 2, 13, 14 und 15 gemäß dem 1-Bit-SD-Busmodus angeschlossen, sodass es den 1-Bit-SD-Busmodus und den SPI-Busmodus verwenden kann
  • M5Stack-Serie, die gemäß den nativen VSPI-Pins mit den GPIO-Pins 4, 18, 19 und 23 verbunden ist, sodass die Standardeinstellungen der SD-Bibliothek verwendet werden können [SD.begin(4)]
  • ODROID-GO, es ist gemäß den nativen VSPI-Pins mit den GPIO-Pins 18, 19, 22 und 23 verbunden, sodass es die Standardeinstellungen der SD-Bibliothek verwenden kann [SD.begin(22)]
  • ESP32-CAM, es ist gemäß dem 4-Bit-SD-Busmodus an die GPIO-Pins 2, 4, 12, 13, 14 und 15 angeschlossen, sodass es alle 4-Bit / 1-Bit-SD-Busmodi und den SPI-Busmodus verwenden kann
  • TTGO T8-Entwicklungsplatine, die gemäß dem 1-Bit-SD-Busmodus an die GPIO-Pins 2, 13, 14 und 15 angeschlossen ist, sodass sie den 1-Bit-SD-Busmodus und den SPI-Busmodus verwenden kann

www.lilygo.cn/prod_view.aspx?Id=1123

docs.m5stack.com/

wiki.odroid.com/odroid_go/odroid_go

wiki.ai-thinker.com/esp32-cam

github.com/LilyGO/TTGO-T8-ESP32

Schritt 5: SD-Kartensteckplatz Breakout Board

Breakout-Board für SD-Kartensteckplatz
Breakout-Board für SD-Kartensteckplatz
Breakout-Board für SD-Kartensteckplatz
Breakout-Board für SD-Kartensteckplatz

Die Entwicklungsplatine mit integriertem MicroSD-Kartensteckplatz ist möglicherweise nicht mit allen Pins verbunden und die meisten können den 4-Bit-SD-Busmodus nicht verwenden. Ein individuelles Breakout-Board für SD-Kartensteckplätze bietet eine bessere Flexibilität.

Gleichzeitig brechen viele LCD-Breakout-Boards auch einen SD-Kartensteckplatz in voller Größe aus. Die meisten von ihnen brechen jedoch nur die SPI-Modus-Pins aus. Es reicht nicht aus, ihn als 4-Bit-SD-Bus-Modus zu verwenden, aber Sie können ihn durch diese Verbindungszuordnung immer noch als 1-Bit-SD-Bus-Modus verwenden:

LCD -> ESP32

SD_CS -> null SD_MOSI -> 15 SD_MISO -> 2 SD_SCK -> 14

Schritt 6: Trennen Sie GPIO 2 während des Programms

Trennen Sie GPIO 2 während des Programmierens
Trennen Sie GPIO 2 während des Programmierens

Die 4-Bit-SD-Bus-Modus-Verbindung führt dazu, dass ESP32 nicht in den Programmmodus wechselt. Bitte denken Sie daran, den GPIO 2 vom SD-Kartensteckplatz-Breakout-Board DAT0 zu trennen, bevor Sie ein neues Programm hochladen.

Schritt 7: Benchmark

Benchmark
Benchmark
Benchmark
Benchmark

Ich habe ein einfaches Arduino-Programm für den Benchmark geschrieben:

github.com/moononournation/ESP32_SD_Benchm…

Hier die Hardware für den Benchmark:

ESP32

NodeMCU ESP32-32S V1.1 (WROOM-32)

SD-Kartensteckplatz

Ein MicroSD-Kartensteckplatz-Breakout-Board

SD-Karte

Ich habe eine SanDisk 8 GB MicroSD und eine alte 128 MB MicroSD in der Hand.

Schritt 8: SD_MMC 4-Bit-Modus-Benchmark

SanDisk 8 GB MicroSD

20:27:46.000 -> Test schreiben /test_1k.bin

20:27:59.399 -> Verwendete Schreibdatei: 13404 ms, 312.914368 KB/s 20:27:59.399 -> Testschreibe /test_2k.bin 20:28:17.248 -> Verwendete Schreibdatei: 17834 ms, 235.185822 KB/s 20:28:17.248 -> Testschreiben /test_4k.bin 20:28:21.122 -> Verwendete Schreibdatei: 3873 ms, 1082.959961 KB/s 20:28:21.122 -> Testschreiben /test_8k.bin 20:28:23.147 -> Verwendete Schreibdatei: 2024 ms, 2072.284668 KB/s 20:28:23.147 -> Testschreiben /test_16k.bin 20:28:27.237 -> Verwendete Schreibdatei: 4097 ms, 1023.750061 KB/s 20:28:27.237 -> Test write /test_32k.bin 20:28:30.088 -> Verwendete Schreibdatei: 2842 ms, 1475.828247 KB/s 20:28:30.088 -> Testschreibe /test_64k.bin 20:28:31.882 -> Verwendete Schreibdatei: 1811 ms, 2316.015381 KB/s 20:28:31.882 -> Test lesen /test_1k.bin 20:28:35.422 -> Lesen verwendete Datei: 3520 ms, 1191.563599 KB/s 20:28:35.422 -> Test lesen /test_2k.bin 20: 28:38.813 -> Verwendete Lesedatei: 3389 ms, 1237.622925 KB/s 20:28:38.813 -> Testlese /test_4k.bin 20:28:42.273 -> Verwendete Lesedatei: 3474 ms, 1207.341431 KB/s 20:28:42.273 -> Test lesen /test_8k.bin 20:28:45.752 - > Verwendete Datei lesen: 3487 ms, 1202.840210 KB/s 20:28:45.752 -> Test lesen /test_16k.bin 20:28:48.988 -> Verwendete Datei lesen: 3213 ms, 1305.416748 KB/s 20:28:48.988 -> Test lesen /test_32k.bin 20:28:52.077 -> Verwendete Datei lesen: 3093 ms, 1356.063354 KB/s 20:28:52.077 -> Test lesen /test_64k.bin 20:28:55.141 -> Verwendete Datei lesen: 3080 ms, 1361.786987 KB/s

Alte 128 MB MicroSD

20:30:43.309 -> E (274) sdmmc_sd: sdmmc_check_scr: send_scr hat 0x109 zurückgegeben

20:30:43.309 -> Kartenmontage fehlgeschlagen

Schritt 9: SD_MMC 1-Bit-Modus-Benchmark

SanDisk 8 GB MicroSD

20:31:45.194 -> Test schreiben /test_1k.bin

20:31:59.506 -> Verwendete Schreibdatei: 14325 ms, 292.796082 KB/s 20:31:59.506 -> Testschreibe /test_2k.bin 20:32:17.686 -> Verwendete Schreibdatei: 18163 ms, 230.925735 KB/s 20:32:17.686 -> Testschreiben /test_4k.bin 20:32:21.291 -> Verwendete Schreibdatei: 3611 ms, 1161.535278 KB/s 20:32:21.291 -> Testschreiben /test_8k.bin 20:32:23.939 -> Verwendete Schreibdatei: 2652 ms, 1581.562622 KB/s 20:32:23.939 -> Testschreiben /test_16k.bin 20:32:28.397 -> Verwendete Schreibdatei: 4448 ms, 942.964050 KB/s 20:32:28.397 -> Test write /test_32k.bin 20:32:31.835 -> Verwendete Schreibdatei: 3429 ms, 1223.185791 KB/s 20:32:31.835 -> Testschreibe /test_64k.bin 20:32:33.882 -> Verwendete Schreibdatei: 2058 ms, 2038.048584 KB/s 20:32:33.882 -> Test lesen /test_1k.bin 20:32:38.031 -> Lesen verwendete Datei: 4146 ms, 1011.650757 KB/s 20:32:38.031 -> Test lesen /test_2k.bin 20: 32:42.062 -> Verwendete Lesedatei: 4019 ms, 1043.618774 KB/s 20:32:42.062 -> Testlese /test_4k.bin 20:32:46.170 -> Verwendete Lesedatei: 4106 ms, 1021.506104 KB/s 20:32:46.170 -> Test lesen /test_8k.bin 20:32:50.288 -> Verwendete Lesedatei: 4121 ms, 1017.787903 KB/s 20:32:50.288 -> Test gelesen /test_16k.bin 20:32:54.112 -> Verwendete Lesedatei: 3840 ms, 1092.266724 KB/s 20:32:54.112 -> Test lesen /test_32k.bin 20:32:57.840 -> Verwendete Datei lesen: 3739 ms, 1121.771606 KB/s 20:32:57.840 -> Test lesen /test_64k.bin 20:33:01.568 -> Verwendete Datei lesen: 3711 ms, 1130.235474 KB/s

Alte 128 MB MicroSD

20:33:27.366 -> Test schreiben /test_1k.bin

20:33:42.386 -> Verwendete Schreibdatei: 15020 ms, 279.247925 KB/s 20:33:42.386 -> Testschreibe /test_2k.bin 20:33:57.927 -> Verwendete Schreibdatei: 15515 ms, 270.338654 KB/s 20:33:57.927 -> Testschreiben /test_4k.bin 20:34:13.108 -> Verwendete Schreibdatei: 15195 ms, 276.031860 KB/s 20:34:13.108 -> Testschreiben /test_8k.bin 20:34:28.162 -> Verwendete Schreibdatei: 15048 ms, 278.728333 KB/s 20:34:28.162 -> Testschreiben /test_16k.bin 20:34:43.287 -> Verwendete Schreibdatei: 15142 ms, 276.998016 KB/s 20:34:43.287 -> Test write /test_32k.bin 20:34:58.278 -> Verwendete Schreibdatei: 14964 ms, 280.292969 KB/s 20:34:58.278 -> Testschreibe /test_64k.bin 20:35:13.370 -> Verwendete Schreibdatei: 15101 ms, 277.750092 KB/s 20:35:13.370 -> Test lesen /test_1k.bin 20:35:17.563 -> Lesen verwendete Datei: 4197 ms, 999.357666 KB/s 20:35:17.563 -> Test lesen /test_2k.bin 20: 35:21.746 -> Verwendete Lesedatei: 4191 ms, 1000.788330 KB/s 20:35:21.746 -> Testlese /test_4k.bin 20:35:25.942 -> Verwendete Lesedatei: 4181 ms, 1003.182007 KB/s 20:35:25.942 -> Test lesen /test_8k.bin 20:35:30.101 -> Verwendete Lesedatei: 4176 ms, 1004.383118 KB/s 20:35:30.101 -> Test gelesen /test_16k.bin 20:35:34.279 -> Verwendete Lesedatei: 4174 ms, 1004.864380 KB/s 20:35:34.279 -> Test lesen /test_32k.bin 20:35:38.462 -> Verwendete Datei lesen: 4173 ms, 1005.105225 KB/s 20:35:38.462 -> Test lesen /test_64k.bin 20:35:42.612 -> Verwendete Datei lesen: 4173 ms, 1005.105225 KB/s

Schritt 10: SD-SPI-Modus beim HSPI-Bus-Benchmark

SanDisk 8 GB MicroSD

08:41:19.703 -> Test schreiben /test_1k.bin

08:41:53.458 -> Verwendete Schreibdatei: 33743 ms, 124.301453 KB/s 08:41:53.458 -> Testschreibe /test_2k.bin 08:42:10.000 -> Verwendete Schreibdatei: 16540 ms, 253.585495 KB/s 08:42:10.000 -> Testschreiben /test_4k.bin 08:42:17.269 -> Verwendete Schreibdatei: 7298 ms, 574.719666 KB/s 08:42:17.308 -> Testschreiben /test_8k.bin 08:42:22.640 -> Verwendete Schreibdatei: 5345 ms, 784.715454 KB/s 08:42:22.640 -> Testschreiben /test_16k.bin 08:42:32.285 -> Verwendete Schreibdatei: 9662 ms, 434.103088 KB/s 08:42:32.285 -> Test write /test_32k.bin 08:42:36.659 -> Verwendete Schreibdatei: 4355 ms, 963.100830 KB/s 08:42:36.659 -> Testschreibe /test_64k.bin 08:42:39.594 -> Verwendete Schreibdatei: 2949 ms, 1422.280151 KB/s 08:42:39.594 -> Test lesen /test_1k.bin 08:42:44.774 -> Lesen verwendete Datei: 5192 ms, 807.839783 KB/s 08:42:44.774 -> Test lesen /test_2k.bin 08: 42:49.969 -> Verwendete Datei lesen: 5189 ms, 808.306824 KB/s 08:42:49.969 -> Test lesen /test_4k.bin 08:42:55.123 -> Verwendete Datei lesen: 5161 ms, 812.692139 KB/s 08:42:55.158 -> Test lesen /test_8k.bin 08:43:00.300 -> Lesen Verwendete Datei: 5176 ms, 810.336914 KB/s 08:43:00.334 -> Test lesen /test_16k.bin 08:43:05.277 -> Verwendete Datei lesen: 4948 ms, 847.676636 KB/s 08:43:05.277 -> Test lesen /test_32k.bin 08:43:10.028 -> Verwendete Datei lesen: 4773 ms, 878.756348 KB/s 08:43:10.028 -> Test lesen /test_64k.bin 08:43:14.760 -> Verwendete Datei lesen: 4731 ms, 886.557617 KB/s

Alte 128 MB MicroSD

08:43:47.777 -> Test schreiben /test_1k.bin

08:44:04.148 -> Verwendete Schreibdatei: 16390 ms, 255.906281 KB/s 08:44:04.183 -> Testschreibe /test_2k.bin 08:44:20.648 -> Verwendete Schreibdatei: 16494 ms, 254.292709 KB/s 08:44:20.648 -> Testschreiben /test_4k.bin 08:44:36.674 -> Verwendete Schreibdatei: 16001 ms, 262.127625 KB/s 08:44:36.674 -> Testschreiben /test_8k.bin 08:44:52.849 -> Verwendete Schreibdatei: 16175 ms, 259.307831 KB/s 08:44:52.849 -> Test schreiben /test_16k.bin 08:45:09.225 -> Verwendete Schreibdatei: 16397 ms, 255.797043 KB/s 08:45:09.225 -> Test schreiben /test_32k.bin 08:45:25.363 -> Verwendete Schreibdatei: 16143 ms, 259.821838 KB/s 08:45:25.397 -> Testschreibe /test_64k.bin 08:45:41.632 -> Verwendete Schreibdatei: 16263 ms, 257.904694 KB/s 08:45:41.632 -> Test lesen /test_1k.bin 08:45:46.488 -> Lesen verwendete Datei: 4856 ms, 863.736389 KB/s 08:45:46.488 -> Test lesen /test_2k.bin 08: 45:51.332 -> Verwendete Datei lesen: 4840 ms, 866.591736 KB/s 08:45:51.332 -> Test lesen /test_4k.bin 08:45:56.163 -> Verwendete Datei lesen: 4834 ms, 867.667358 KB/s 08:45:56.163 -> Test lesen /test_8k.bin 08:46:00.998 -> R Verwendete Lesedatei: 4827 ms, 868.925598 KB/s 08:46:00.998 -> Test gelesen /test_16k.bin 08:46:05.808 -> Verwendete Lesedatei: 4825 ms, 869.285828 KB/s 08:46:05.843 -> Test /test_32k.bin lesen 08:46:10.637 -> Verwendete Datei lesen: 4824 ms, 869.466003 KB/s 08:46:10.637 -> Test lesen /test_64k.bin 08:46:15.478 -> Verwendete Datei lesen: 4825 ms, 869.285828 KB/s

Schritt 11: SD-SPI-Modus beim VSPI-Bus-Benchmark

SanDisk 8 GB MicroSD

08:54:17.412 -> Test schreiben /test_1k.bin

08:54:48.398 -> Verwendete Schreibdatei: 30994 ms, 135.326324 KB/s 08:54:48.398 -> Testschreibe /test_2k.bin 08:55:06.079 -> Verwendete Schreibdatei: 17677 ms, 237.274658 KB/s 08:55:06.079 -> Testschreiben /test_4k.bin 08:55:13.357 -> Verwendete Schreibdatei: 7274 ms, 576.615906 KB/s 08:55:13.357 -> Testschreiben /test_8k.bin 08:55:18.691 -> Verwendete Schreibdatei: 5323 ms, 787.958679 KB/s 08:55:18.691 -> Testschreiben /test_16k.bin 08:55:28.336 -> Verwendete Schreibdatei: 9669 ms, 433.788818 KB/s 08:55:28.336 -> Test schreiben /test_32k.bin 08:55:32.646 -> Verwendete Schreibdatei: 4309 ms, 973.382202 KB/s 08:55:32.646 -> Testschreibe /test_64k.bin 08:55:35.551 -> Verwendete Schreibdatei: 2915 ms, 1438.869263 KB/s 08:55:35.584 -> Test lesen /test_1k.bin 08:55:40.745 -> Lesen verwendete Datei: 5183 ms, 809.242554 KB/s 08:55:40.745 -> Test lesen /test_2k.bin 08: 55:45.916 -> Verwendete Datei lesen: 5182 ms, 809.398682 KB/s 08:55:45.949 -> Test lesen /test_4k.bin 08:55:51.091 -> Verwendete Datei lesen: 5162 ms, 812.534668 KB/s 08:55:51.091 -> Test lesen /test_8k.bin 08:55:56.257 -> Lesen Verwendete Datei: 5177 ms, 810.180420 KB/s 08:55:56.293 -> Test lesen /test_16k.bin 08:56:01.244 -> Verwendete Datei lesen: 4956 ms, 846.308289 KB/s 08:56:01.244 -> Test lesen /test_32k.bin 08:56:06.006 -> Verwendete Datei lesen: 4764 ms, 880.416443 KB/s 08:56:06.006 -> Test lesen /test_64k.bin 08:56:10.716 -> Verwendete Datei lesen: 4728 ms, 887.120117 KB/s

Alte 128 MB MicroSD

08:51:01.939 -> Test schreiben /test_1k.bin

08:51:18.358 -> Verwendete Schreibdatei: 16422 ms, 255.407623 KB/s 08:51:18.358 -> Testschreibe /test_2k.bin 08:51:34.529 -> Verwendete Schreibdatei: 16173 ms, 259.339874 KB/s 08:51:34.529 -> Testschreiben /test_4k.bin 08:51:50.911 -> Verwendete Schreibdatei: 16372 ms, 256.187653 KB/s 08:51:50.911 -> Testschreiben /test_8k.bin 08:52:07.056 -> Verwendete Schreibdatei: 16137 ms, 259.918457 KB/s 08:52:07.056 -> Testschreiben /test_16k.bin 08:52:23.383 -> Verwendete Schreibdatei: 16351 ms, 256.516663 KB/s 08:52:23.383 -> Test schreiben /test_32k.bin 08:52:39.533 -> Verwendete Schreibdatei: 16128 ms, 260.063507 KB/s 08:52:39.533 -> Testschreibe /test_64k.bin 08:52:55.764 -> Verwendete Schreibdatei: 16250 ms, 258.111023 KB/s 08:52:55.764 -> Test lesen /test_1k.bin 08:53:00.645 -> Lesen verwendete Datei: 4855 ms, 863.914307 KB/s 08:53:00.645 -> Test lesen /test_2k.bin 08: 53:05.459 -> Verwendete Datei lesen: 4839 ms, 866.770813 KB/s 08:53:05.459 -> Test lesen /test_4k.bin 08:53:10.306 -> Verwendete Datei lesen: 4833 ms, 867.846863 KB/s 08:53:10.306 -> Test lesen /test_8k.bin 08:53:15.127 -> R Verwendete Lesedatei: 4827 ms, 868.925598 KB/s 08:53:15.127 -> Test gelesen /test_16k.bin 08:53:19.963 -> Verwendete Lesedatei: 4826 ms, 869.105652 KB/s 08:53:19.963 -> Test /test_32k.bin lesen 08:53:24.758 -> Verwendete Datei lesen: 4824 ms, 869.466003 KB/s 08:53:24.792 -> Test lesen /test_64k.bin 08:53:29.592 -> Verwendete Datei lesen: 4824 ms, 869.466003 KB/s

Schritt 12: Aufrunden

Der 4-Bit-SD-Bus-Modus hat die beste Leistung, der 1-Bit-SD-Bus-Modus ist etwa 20 % langsamer und der SPI-Modus ist etwa 50 % langsamer. Einer der Hauptgründe dafür ist, dass die SD_MMC-Protokollschicht keine Art von Sperrung implementiert, SPI jedoch. Und auch der 4-Bit-SD-Busmodus hat doppelte Datenleitungen, also theoretisch die doppelte Geschwindigkeit. Aber meine alte MicroSD kann den 4-Bit-SD-Bus-Modus nicht unterstützen.

Ich werde in den meisten Fällen den 1-Bit-SD-Bus-Modus empfehlen, weil:

  • gute Leistung
  • bessere SD-Kartenkompatibilität
  • lockerere SD-Pull-up-Anforderungen
  • nur 3 GPIO-Pins erforderlich
  • kleinere Codekonfiguration
  • Viele Dev-Kits, Dev-Boards und Breakout-Boards können diesen Modus verwenden

Empfohlen: