Tabla de contenido:
- Paso 1: interfaz SD
- Paso 2: Asignación de pines GPIO ESP32
- Paso 3: requisitos de pull-up SD
- Paso 4: Hardware diverso
- Paso 5: Placa de conexión de la ranura para tarjeta SD
- Paso 6: desconecte GPIO 2 durante el programa
- Paso 7: Benchmark
- Paso 8: Benchmark del modo SD_MMC de 4 bits
- Paso 9: Benchmark del modo de 1 bit SD_MMC
- Paso 10: Modo SD SPI en HSPI Bus Benchmark
- Paso 11: Modo SD SPI en VSPI Bus Benchmark
- Paso 12: redondeo
Video: Seleccione la interfaz SD para ESP32: 12 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Estos instructivos muestran algo sobre cómo seleccionar una interfaz SD para su proyecto ESP32.
Paso 1: interfaz SD
En la biblioteca SD de Arduino original, la interfaz SD está utilizando el modo de transferencia de bus SD SPI.
SD en realidad tiene más modo de transferencia:
- Modo de bus SPI: ESP32 tiene más de 1 bus SPI, se puede personalizar durante la inicialización
- Modo de bus SD de 1 bit / 4 bits: ESP32 dedica otra biblioteca llamada SD_MMC para implementar la API del modo de bus SD
- Modo SD UHS-II: ESP32 no compatible
Árbitro.:
www.arduino.cc/en/reference/SD
en.wikipedia.org/wiki/SD_card
docs.espressif.com/projects/esp-idf/en/lat…
Paso 2: Asignación de pines GPIO ESP32
Aquí está la asignación de pines GPIO ESP32 predeterminada:
Pin de la tarjeta SD | Pin microSD | Nombre | Bus SD de 4 bits | Bus SD de 1 bit | Bus SPI (pines HSPI / VSPInative) |
1 | 2 | D3 | 13 | - | SS (15/5) |
2 | 3 | CMD | 15 | 15 | MOSI (13/23) |
3 | - | VSS | GND | GND | GND |
4 | 4 | VDD | 3,3 V | 3,3 V | 3,3 V |
5 | 5 | CLK | 14 | 14 | SCK (14/18) |
6 | 6 | VSS | GND | GND | GND |
7 | 7 | D0 | 2 | 2 | MISO (19/12) |
8 | 8 | D1 | 4 | - | - |
9 | 1 | D2 | 12 | - | - |
La asignación de pines GPIO del bus SD de 1 bit / 4 bits no se puede cambiar.
Llamada simple SD_MMC begin () al modo de bus SD de 4 bits inicial:
SD_MMC.begin ();
El modo de bus SD de 1 bit se puede seleccionar en el método SD_MMC begin (), p. Ej.
SD_MMC.begin ("/ cdcard", verdadero);
El bus SPI (HSPI o VSPI) se puede seleccionar mientras se crea la instancia de SPIClass, p. Ej.
SPIClass spi = SPIClass (HSPI);
Como puede ver, los pines del bus SD de 1 bit / 4 bits comparten pines con HSPI, pero la asignación de pines de la tarjeta SD no es la misma. Entonces, si el hardware está conectado de acuerdo con el mapa de pines del bus SD, no puede usar pines nativos HSPI directamente. Los pines GPIO se pueden anular en el método begin () de SPIClass, p. Ej.
SPIClass spi = SPIClass (HSPI);
spi.begin (14 / * SCK * /, 2 / * MISO * /, 15 / * MOSI * /, 13 / * SS * /);
Y también la biblioteca SD puede anular el pin SS, el bus SPI y la frecuencia del bus en el método SD begin (), p. Ej.
SD.begin (13 / * SS * /, spi, 80000000);
Paso 3: requisitos de pull-up SD
Si desea utilizar el modo de bus SD de 4 bits, siga los requisitos de extracción de SD ESP32, especialmente:
- Conflictos de pull-up en GPIO13
- Conflictos entre Bootstrap y SDIO en DAT2
Árbitro.:
docs.espressif.com/projects/esp-idf/en/lat…
Paso 4: Hardware diverso
ESP32 tiene toneladas de kit de desarrollo y placa de desarrollo, algunos de ellos tienen una ranura para tarjeta MicroSD incorporada.
Aquí hay un ejemplo en mi mano:
- TTGO T-Watch, se conectó a los pines GPIO 2, 13, 14 y 15 de acuerdo con el modo de bus SD de 1 bit, por lo que puede usar el modo de bus SD de 1 bit y el modo de bus SPI
- Serie M5Stack, se conectó a los pines GPIO 4, 18, 19 y 23 de acuerdo con los pines nativos de VSPI, por lo que puede usar la configuración predeterminada de la biblioteca SD [SD.begin (4)]
- ODROID-GO, se conectó a los pines GPIO 18, 19, 22 y 23 de acuerdo con los pines nativos de VSPI, por lo que puede usar la configuración predeterminada de la biblioteca SD [SD.begin (22)]
- ESP32-CAM, se conectó a los pines GPIO 2, 4, 12, 13, 14 y 15 de acuerdo con el modo de bus SD de 4 bits, por lo que puede usar todo el modo de bus SD de 4 bits / 1 bit y el modo de bus SPI
- Placa de desarrollo TTGO T8, se conectó a los pines GPIO 2, 13, 14 y 15 de acuerdo con el modo de bus SD de 1 bit, por lo que puede usar el modo de bus SD de 1 bit y el modo de bus SPI
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
Paso 5: Placa de conexión de la ranura para tarjeta SD
Es posible que la placa de desarrollo con ranura para tarjeta MicroSD incorporada no conecte todos los pines y la mayoría no pueda usar el modo de bus SD de 4 bits. Una placa de conexión de ranura para tarjeta SD individual proporciona una mayor flexibilidad.
Al mismo tiempo, muchas placas de conexión LCD también disponen de una ranura para tarjetas SD de tamaño completo. Sin embargo, la mayoría de ellos solo rompen los pines del modo SPI. No es suficiente usarlo como modo de bus SD de 4 bits, pero aún puede usarlo como modo de bus SD de 1 bit mediante esta asignación de conexión:
LCD -> ESP32
SD_CS -> nada SD_MOSI -> 15 SD_MISO -> 2 SD_SCK -> 14
Paso 6: desconecte GPIO 2 durante el programa
La conexión del modo de bus SD de 4 bits hace que ESP32 no pueda ingresar al modo de programa. Recuerde desconectar el GPIO 2 de la placa de conexión DAT0 de la ranura de la tarjeta SD antes de cargar un nuevo programa.
Paso 7: Benchmark
He escrito un programa Arduino simple para el punto de referencia:
github.com/moononournation/ESP32_SD_Benchm…
Aquí está el hardware para el punto de referencia:
ESP32
NodeMCU ESP32-32S V1.1 (WROOM-32)
Ranura para tarjetas SD
Una placa de conexión de ranura para tarjeta MicroSD
Tarjeta SD
Tengo una SanDisk MicroSD de 8 GB y una vieja MicroSD de 128 MB en la mano.
Paso 8: Benchmark del modo SD_MMC de 4 bits
SanDisk 8 GB MicroSD
20: 27: 46.000 -> Escritura de prueba /test_1k.bin
20: 27: 59.399 -> Archivo de escritura usado: 13404 ms, 312.914368 KB / s 20: 27: 59.399 -> Escritura de prueba /test_2k.bin 20: 28: 17.248 -> Archivo de escritura usado: 17834 ms, 235.185822 KB / s 20: 28: 17.248 -> Escritura de prueba /test_4k.bin 20: 28: 21.122 -> Archivo de escritura utilizado: 3873 ms, 1082.959961 KB / s 20: 28: 21.122 -> Escritura de prueba /test_8k.bin 20: 28: 23.147 -> Archivo de escritura usado: 2024 ms, 2072.284668 KB / s 20: 28: 23.147 -> Prueba de escritura /test_16k.bin 20: 28: 27.237 -> Archivo de escritura usado: 4097 ms, 1023.750061 KB / s 20: 28: 27.237 -> Prueba write /test_32k.bin 20: 28: 30.088 -> Archivo de escritura usado: 2842 ms, 1475.828247 KB / s 20: 28: 30.088 -> Escritura de prueba /test_64k.bin 20: 28: 31.882 -> Archivo de escritura usado: 1811 ms, 2316.015381 KB / s 20: 28: 31.882 -> Lectura de prueba /test_1k.bin 20: 28: 35.422 -> Archivo de lectura utilizado: 3520 ms, 1191.563599 KB / s 20: 28: 35.422 -> Lectura de prueba /test_2k.bin 20: 28: 38.813 -> Archivo de lectura usado: 3389 ms, 1237.622925 KB / s 20: 28: 38.813 -> Lectura de prueba /test_4k.bin 20: 28: 42.273 -> Archivo de lectura usado: 3474 ms, 1207.341431 KB / s 20:28: 42.273 -> Prueba de lectura /test_8k.bin 20: 28: 45.752 - > Leer archivo usado: 3487 ms, 1202.840210 KB / s 20: 28: 45.752 -> Prueba de lectura /test_16k.bin 20: 28: 48.988 -> Leer archivo usado: 3213 ms, 1305.416748 KB / s 20: 28: 48.988 -> Lectura de prueba /test_32k.bin 20: 28: 52.077 -> Archivo de lectura utilizado: 3093 ms, 1356.063354 KB / s 20: 28: 52.077 -> Lectura de prueba /test_64k.bin 20: 28: 55.141 -> Archivo de lectura utilizado: 3080 ms, 1361.786987 KB / s
MicroSD de 128 MB antiguo
20: 30: 43.309 -> E (274) sdmmc_sd: sdmmc_check_scr: send_scr devolvió 0x109
20: 30: 43.309 -> Fallo en el montaje de la tarjeta
Paso 9: Benchmark del modo de 1 bit SD_MMC
SanDisk 8 GB MicroSD
20: 31: 45.194 -> Escritura de prueba /test_1k.bin
20: 31: 59.506 -> Archivo de escritura usado: 14325 ms, 292.796082 KB / s 20: 31: 59.506 -> Prueba de escritura /test_2k.bin 20: 32: 17.686 -> Archivo de escritura usado: 18163 ms, 230.925735 KB / s 20: 32: 17.686 -> Escritura de prueba /test_4k.bin 20: 32: 21.291 -> Archivo de escritura utilizado: 3611 ms, 1161.535278 KB / s 20: 32: 21.291 -> Escritura de prueba /test_8k.bin 20: 32: 23.939 -> Archivo de escritura usado: 2652 ms, 1581.562622 KB / s 20: 32: 23.939 -> Prueba de escritura /test_16k.bin 20: 32: 28.397 -> Archivo de escritura usado: 4448 ms, 942.964050 KB / s 20: 32: 28.397 -> Prueba write /test_32k.bin 20: 32: 31.835 -> Archivo de escritura usado: 3429 ms, 1223.185791 KB / s 20: 32: 31.835 -> Escritura de prueba /test_64k.bin 20: 32: 33.882 -> Archivo de escritura usado: 2058 ms, 2038.048584 KB / s 20: 32: 33.882 -> Lectura de prueba /test_1k.bin 20: 32: 38.031 -> Archivo de lectura utilizado: 4146 ms, 1011.650757 KB / s 20: 32: 38.031 -> Lectura de prueba /test_2k.bin 20: 32: 42.062 -> Archivo de lectura utilizado: 4019 ms, 1043.618774 KB / s 20: 32: 42.062 -> Lectura de prueba /test_4k.bin 20: 32: 46.170 -> Archivo de lectura utilizado: 4106 ms, 1021.506104 KB / s 20:32: 46.170 -> Prueba de lectura /test_8k.bin 20: 32: 50.288 -> Leer archivo usado: 4121 ms, 1017.787903 KB / s 20: 32: 50.288 -> Prueba de lectura /test_16k.bin 20: 32: 54.112 -> Leer archivo usado: 3840 ms, 1092.266724 KB / s 20: 32: 54.112 -> Prueba leer /test_32k.bin 20: 32: 57.840 -> Leer archivo usado: 3739 ms, 1121.771606 KB / s 20: 32: 57.840 -> Prueba leer /test_64k.bin 20: 33: 01.568 -> Leer archivo usado: 3711 ms, 1130.235474 KB / s
MicroSD de 128 MB antiguo
20: 33: 27.366 -> Escritura de prueba /test_1k.bin
20: 33: 42.386 -> Archivo de escritura usado: 15020 ms, 279.247925 KB / s 20: 33: 42.386 -> Escritura de prueba /test_2k.bin 20: 33: 57.927 -> Archivo de escritura usado: 15515 ms, 270.338654 KB / s 20: 33: 57.927 -> Escritura de prueba /test_4k.bin 20: 34: 13.108 -> Archivo de escritura utilizado: 15195 ms, 276.031860 KB / s 20: 34: 13.108 -> Escritura de prueba /test_8k.bin 20: 34: 28.162 -> Archivo de escritura usado: 15048 ms, 278.728333 KB / s 20: 34: 28.162 -> Prueba de escritura /test_16k.bin 20: 34: 43.287 -> Archivo de escritura usado: 15142 ms, 276.998016 KB / s 20: 34: 43.287 -> Prueba write /test_32k.bin 20: 34: 58.278 -> Archivo de escritura usado: 14964 ms, 280.292969 KB / s 20: 34: 58.278 -> Escritura de prueba /test_64k.bin 20: 35: 13.370 -> Archivo de escritura usado: 15101 ms, 277.750092 KB / s 20: 35: 13.370 -> Lectura de prueba /test_1k.bin 20: 35: 17.563 -> Archivo de lectura utilizado: 4197 ms, 999.357666 KB / s 20: 35: 17.563 -> Lectura de prueba /test_2k.bin 20: 35: 21.746 -> Archivo de lectura utilizado: 4191 ms, 1000.788330 KB / s 20: 35: 21.746 -> Lectura de prueba /test_4k.bin 20: 35: 25.942 -> Archivo de lectura utilizado: 4181 ms, 1003.182007 KB / s 20:35: 25.942 -> Prueba de lectura /test_8k.bin 20: 35: 30.101 -> Leer archivo usado: 4176 ms, 1004.383118 KB / s 20: 35: 30.101 -> Prueba de lectura /test_16k.bin 20: 35: 34.279 -> Leer archivo usado: 4174 ms, 1004.864380 KB / s 20: 35: 34.279 -> Prueba leer /test_32k.bin 20: 35: 38.462 -> Leer archivo usado: 4173 ms, 1005.105225 KB / s 20: 35: 38.462 -> Prueba leer /test_64k.bin 20: 35: 42.612 -> Leer archivo usado: 4173 ms, 1005.105225 KB / s
Paso 10: Modo SD SPI en HSPI Bus Benchmark
SanDisk 8 GB MicroSD
08: 41: 19.703 -> Escritura de prueba /test_1k.bin
08: 41: 53.458 -> Archivo de escritura usado: 33743 ms, 124.301453 KB / s 08: 41: 53.458 -> Prueba de escritura /test_2k.bin 08: 42: 10.000 -> Archivo de escritura usado: 16540 ms, 253.585495 KB / s 08: 42: 10.000 -> Escritura de prueba /test_4k.bin 08: 42: 17.269 -> Archivo de escritura utilizado: 7298 ms, 574.719666 KB / s 08: 42: 17.308 -> Escritura de prueba /test_8k.bin 08: 42: 22.640 -> Archivo de escritura usado: 5345 ms, 784.715454 KB / s 08: 42: 22.640 -> Prueba de escritura /test_16k.bin 08: 42: 32.285 -> Archivo de escritura usado: 9662 ms, 434.103088 KB / s 08: 42: 32.285 -> Prueba write /test_32k.bin 08: 42: 36.659 -> Archivo de escritura usado: 4355 ms, 963.100830 KB / s 08: 42: 36.659 -> Prueba de escritura /test_64k.bin 08: 42: 39.594 -> Archivo de escritura usado: 2949 ms, 1422.280151 KB / s 08: 42: 39.594 -> Lectura de prueba /test_1k.bin 08: 42: 44.774 -> Archivo de lectura utilizado: 5192 ms, 807.839783 KB / s 08: 42: 44.774 -> Lectura de prueba /test_2k.bin 08: 42: 49.969 -> Archivo de lectura utilizado: 5189 ms, 808.306824 KB / s 08: 42: 49.969 -> Lectura de prueba /test_4k.bin 08: 42: 55.123 -> Archivo de lectura utilizado: 5161 ms, 812.692139 KB / s 08:42: 55.158 -> Prueba de lectura /test_8k.bin 08: 43: 00.300 -> Leer archivo utilizado: 5176 ms, 810.336914 KB / s 08: 43: 00.334 -> Lectura de prueba /test_16k.bin 08: 43: 05.277 -> Archivo de lectura utilizado: 4948 ms, 847.676636 KB / s 08: 43: 05.277 -> Lectura de prueba /test_32k.bin 08: 43: 10.028 -> Archivo de lectura utilizado: 4773 ms, 878.756348 KB / s 08: 43: 10.028 -> Lectura de prueba /test_64k.bin 08: 43: 14.760 -> Archivo de lectura utilizado: 4731 ms, 886.557617 KB / s
MicroSD de 128 MB antiguo
08: 43: 47.777 -> Escritura de prueba /test_1k.bin
08: 44: 04.148 -> Archivo de escritura usado: 16390 ms, 255.906281 KB / s 08: 44: 04.183 -> Prueba de escritura /test_2k.bin 08: 44: 20.648 -> Archivo de escritura usado: 16494 ms, 254.292709 KB / s 08: 44: 20.648 -> Escritura de prueba /test_4k.bin 08: 44: 36.674 -> Archivo de escritura utilizado: 16001 ms, 262.127625 KB / s 08: 44: 36.674 -> Escritura de prueba /test_8k.bin 08: 44: 52.849 -> Archivo de escritura usado: 16175 ms, 259.307831 KB / s 08: 44: 52.849 -> Prueba de escritura /test_16k.bin 08: 45: 09.225 -> Archivo de escritura usado: 16397 ms, 255.797043 KB / s 08: 45: 09.225 -> Prueba write /test_32k.bin 08: 45: 25.363 -> Archivo de escritura usado: 16143 ms, 259.821838 KB / s 08: 45: 25.397 -> Prueba de escritura /test_64k.bin 08: 45: 41.632 -> Archivo de escritura usado: 16263 ms, 257.904694 KB / s 08: 45: 41.632 -> Lectura de prueba /test_1k.bin 08: 45: 46.488 -> Archivo de lectura utilizado: 4856 ms, 863.736389 KB / s 08: 45: 46.488 -> Lectura de prueba /test_2k.bin 08: 45: 51.332 -> Archivo de lectura usado: 4840 ms, 866.591736 KB / s 08: 45: 51.332 -> Prueba de lectura /test_4k.bin 08: 45: 56.163 -> Archivo de lectura usado: 4834 ms, 867.667358 KB / s 08:45: 56.163 -> Lectura de prueba /test_8k.bin 08: 46: 00.998 -> R archivo ead usado: 4827 ms, 868.925598 KB / s 08: 46: 00.998 -> Prueba de lectura /test_16k.bin 08: 46: 05.808 -> Archivo de lectura usado: 4825 ms, 869.285828 KB / s 08: 46: 05.843 -> Prueba leer /test_32k.bin 08: 46: 10.637 -> Leer archivo usado: 4824 ms, 869.466003 KB / s 08: 46: 10.637 -> Prueba leer /test_64k.bin 08: 46: 15.478 -> Leer archivo usado: 4825 ms, 869.285828 KB / s
Paso 11: Modo SD SPI en VSPI Bus Benchmark
SanDisk 8 GB MicroSD
08: 54: 17.412 -> Escritura de prueba /test_1k.bin
08: 54: 48.398 -> Archivo de escritura usado: 30994 ms, 135.326324 KB / s 08: 54: 48.398 -> Prueba de escritura /test_2k.bin 08: 55: 06.079 -> Archivo de escritura usado: 17677 ms, 237.274658 KB / s 08: 55: 06.079 -> Escritura de prueba /test_4k.bin 08: 55: 13.357 -> Archivo de escritura utilizado: 7274 ms, 576.615906 KB / s 08: 55: 13.357 -> Escritura de prueba /test_8k.bin 08: 55: 18.691 -> Archivo de escritura usado: 5323 ms, 787.958679 KB / s 08: 55: 18.691 -> Prueba de escritura /test_16k.bin 08: 55: 28.336 -> Archivo de escritura usado: 9669 ms, 433.788818 KB / s 08: 55: 28.336 -> Prueba write /test_32k.bin 08: 55: 32.646 -> Archivo de escritura usado: 4309 ms, 973.382202 KB / s 08: 55: 32.646 -> Prueba de escritura /test_64k.bin 08: 55: 35.551 -> Archivo de escritura usado: 2915 ms, 1438.869263 KB / s 08: 55: 35.584 -> Lectura de prueba /test_1k.bin 08: 55: 40.745 -> Archivo de lectura utilizado: 5183 ms, 809.242554 KB / s 08: 55: 40.745 -> Lectura de prueba /test_2k.bin 08: 55: 45.916 -> Archivo de lectura utilizado: 5182 ms, 809.398682 KB / s 08: 55: 45.949 -> Lectura de prueba /test_4k.bin 08: 55: 51.091 -> Archivo de lectura utilizado: 5162 ms, 812.534668 KB / s 08:55: 51.091 -> Prueba de lectura /test_8k.bin 08: 55: 56.257 -> Leer archivo utilizado: 5177 ms, 810.180420 KB / s 08: 55: 56.293 -> Lectura de prueba /test_16k.bin 08: 56: 01.244 -> Archivo de lectura utilizado: 4956 ms, 846.308289 KB / s 08: 56: 01.244 -> Lectura de prueba /test_32k.bin 08: 56: 06.006 -> Archivo de lectura utilizado: 4764 ms, 880.416443 KB / s 08: 56: 06.006 -> Lectura de prueba /test_64k.bin 08: 56: 10.716 -> Archivo de lectura utilizado: 4728 ms, 887.120117 KB / s
MicroSD de 128 MB antiguo
08: 51: 01.939 -> Escritura de prueba /test_1k.bin
08: 51: 18.358 -> Archivo de escritura usado: 16422 ms, 255.407623 KB / s 08: 51: 18.358 -> Prueba de escritura /test_2k.bin 08: 51: 34.529 -> Archivo de escritura usado: 16173 ms, 259.339874 KB / s 08: 51: 34.529 -> Escritura de prueba /test_4k.bin 08: 51: 50.911 -> Archivo de escritura utilizado: 16372 ms, 256.187653 KB / s 08: 51: 50.911 -> Escritura de prueba /test_8k.bin 08: 52: 07.056 -> Archivo de escritura usado: 16137 ms, 259.918457 KB / s 08: 52: 07.056 -> Prueba de escritura /test_16k.bin 08: 52: 23.383 -> Archivo de escritura usado: 16351 ms, 256.516663 KB / s 08: 52: 23.383 -> Prueba write /test_32k.bin 08: 52: 39.533 -> Archivo de escritura usado: 16128 ms, 260.063507 KB / s 08: 52: 39.533 -> Escritura de prueba /test_64k.bin 08: 52: 55.764 -> Archivo de escritura usado: 16250 ms, 258.111023 KB / s 08: 52: 55.764 -> Lectura de prueba /test_1k.bin 08: 53: 00.645 -> Archivo de lectura utilizado: 4855 ms, 863.914307 KB / s 08: 53: 00.645 -> Lectura de prueba /test_2k.bin 08: 53: 05.459 -> Archivo de lectura utilizado: 4839 ms, 866.770813 KB / s 08: 53: 05.459 -> Lectura de prueba /test_4k.bin 08: 53: 10.306 -> Archivo de lectura utilizado: 4833 ms, 867.846863 KB / s 08:53: 10.306 -> Lectura de prueba /test_8k.bin 08: 53: 15.127 -> R ead archivo usado: 4827 ms, 868.925598 KB / s 08: 53: 15.127 -> Prueba de lectura /test_16k.bin 08: 53: 19.963 -> Leer archivo usado: 4826 ms, 869.105652 KB / s 08: 53: 19.963 -> Prueba leer /test_32k.bin 08: 53: 24.758 -> Leer archivo usado: 4824 ms, 869.466003 KB / s 08: 53: 24.792 -> Prueba leer /test_64k.bin 08: 53: 29.592 -> Leer archivo usado: 4824 ms, 869.466003 KB / s
Paso 12: redondeo
El modo de bus SD de 4 bits tiene el mejor rendimiento, el modo de bus SD de 1 bit es aproximadamente un 20% más lento y el modo SPI es aproximadamente un 50% más lento. Una de las razones principales es que la capa de protocolo SD_MMC no implementa ningún tipo de bloqueo, pero SPI sí. Y también el modo de bus SD de 4 bits tiene líneas de datos dobles, por lo que en teoría duplica la velocidad. Pero mi antigua MicroSD no puede admitir el modo de bus SD de 4 bits.
Recomendaré el modo de bus SD de 1 bit en la mayoría de los casos, porque:
- Buen rendimiento
- mejor compatibilidad con tarjetas SD
- requisitos de dominadas SD más flexibles
- solo se requieren 3 pines GPIO
- configuración de código menor
- muchos kits de desarrollo, placa de desarrollo y placa de conexión pueden usar este modo
Recomendado:
Interfaz analógica para osciloscopio: 6 pasos (con imágenes)
Interfaz analógica para osciloscopio: en casa tengo algunas tarjetas de sonido USB baratas, que se pueden comprar en Banggood, Aliexpress, Ebay u otras tiendas en línea globales por algunos dólares. Me preguntaba para qué interesantes puedo usarlos y decidí intentar hacer un visor de PC de baja frecuencia con
Introducción a la interfaz del sensor I2C - Interfaz de su MMA8451 usando ESP32s: 8 pasos
Introducción a la interfaz del sensor I2C - Interfaz de su MMA8451 usando ESP32s: en este tutorial, aprenderá todo sobre cómo iniciar, conectar y hacer que el dispositivo I2C (acelerómetro) funcione con el controlador (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
Gesture Hawk: Robot controlado por gestos con la mano utilizando una interfaz basada en procesamiento de imágenes: 13 pasos (con imágenes)
Gesture Hawk: robot controlado por gestos con la mano que utiliza una interfaz basada en procesamiento de imágenes: Gesture Hawk se presentó en TechEvince 4.0 como una sencilla interfaz hombre-máquina basada en el procesamiento de imágenes. Su utilidad radica en el hecho de que no se requieren sensores adicionales o wearables excepto un guante para controlar el automóvil robótico que funciona en diferentes
Tutorial para la interfaz RGB Led WS2812B con Arduino UNO: 7 pasos (con imágenes)
Tutorial para la interfaz RGB Led WS2812B con Arduino UNO: este tutorial le enseñará algunos conceptos básicos sobre el uso de Sparkfun RGB Led WS2812B con Arduino UNO
Tutorial para la interfaz HX711 con barra recta de celda de carga de 50 kg: 10 pasos (con imágenes)
Tutorial para la interfaz HX711 con barra recta de celda de carga de 50 kg: MÓDULO BALACE HX711 Descripción: Este módulo utiliza 24 convertidores A / D de alta precisión. Este chip está diseñado para escala y diseño electrónicos de alta precisión, tiene dos canales de entrada analógica, ganancia programable de 128 amplificadores integrados. El circuito de entrada