Inhaltsverzeichnis:
- Schritt 1: SD-Schnittstelle
- Schritt 2: ESP32 GPIO-Pins-Zuordnung
- Schritt 3: SD-Pull-up-Anforderungen
- Schritt 4: Verschiedene Hardware
- Schritt 5: SD-Kartensteckplatz Breakout Board
- Schritt 6: Trennen Sie GPIO 2 während des Programms
- Schritt 7: Benchmark
- Schritt 8: SD_MMC 4-Bit-Modus-Benchmark
- Schritt 9: SD_MMC 1-Bit-Modus-Benchmark
- Schritt 10: SD-SPI-Modus beim HSPI-Bus-Benchmark
- Schritt 11: SD-SPI-Modus beim VSPI-Bus-Benchmark
- Schritt 12: Aufrunden
Video: SD-Schnittstelle für ESP32 auswählen - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
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
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
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
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
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:
Arduino Auto-Rückfahrwarnsystem - Schritt für Schritt: 4 Schritte
Arduino Auto-Rückfahrwarnsystem | Schritt für Schritt: In diesem Projekt entwerfe ich eine einfache Arduino-Auto-Rückwärts-Parksensorschaltung mit Arduino UNO und dem Ultraschallsensor HC-SR04. Dieses Arduino-basierte Car-Reverse-Warnsystem kann für eine autonome Navigation, Roboter-Ranging und andere Entfernungsr
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): 3 Schritte
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): Manchmal korrigiert die Autokorrektur möglicherweise etwas, das Sie nicht korrigieren möchten, z. Textabkürzungen beginnen sich in Großbuchstaben zu setzen (imo korrigieren zum Beispiel zu IMO). So erzwingen Sie, dass die Korrektur eines Wortes oder einer Phrase beendet wird, ohne aut zu deaktivieren
Interessante Programmieranleitung für Designer - Bringen Sie Ihr Bild zum Laufen (Teil 2): 8 Schritte
Interessante Programmieranleitung für Designer – Bringen Sie Ihr Bild zum Laufen (Teil 2): Mathematik scheint für die meisten von Ihnen nutzlos zu sein. Die in unserem täglichen Leben am häufigsten verwendete ist einfach Addieren, Subtrahieren, Multiplizieren und Dividieren. Es ist jedoch ganz anders, wenn Sie mit Programm erstellen können. Je mehr Sie wissen, desto mehr wundervolle Ergebnisse werden Sie erhalten
Installieren des Windows-Subsystems für Linux (WSL): 3 Schritte
Installieren des Windows-Subsystems für Linux (WSL): Diese Anleitung soll Benutzern helfen, das Windows-Subsystem für Linux auf ihrem Windows 10-Computer zu installieren. Die spezifische Linux-Distribution, die dieser Befehlssatz verwendet, heißt Ubuntu. Schauen Sie hier für eine Übersicht über die verschiedenen Linux
So erstellen Sie eine UML für Java in Microsoft Visio: 4 Schritte
So erstellen Sie eine UML für Java in Microsoft Visio: Das Erstellen einer UML kann zunächst etwas einschüchternd wirken. Es gibt viele komplizierte Notationsstile, und es kann sich anfühlen, als gäbe es keine guten Ressourcen, um eine lesbare und genaue UML zu formatieren. Microsoft Visio macht jedoch das Erstellen einer UML-Qu