Taula de continguts:

Seleccioneu la interfície SD per ESP32: 12 passos (amb imatges)
Seleccioneu la interfície SD per ESP32: 12 passos (amb imatges)

Vídeo: Seleccioneu la interfície SD per ESP32: 12 passos (amb imatges)

Vídeo: Seleccioneu la interfície SD per ESP32: 12 passos (amb imatges)
Vídeo: MKS Robin Nano v2.0 - motherboard basics for 3d Printing 2024, Desembre
Anonim
Seleccioneu Interfície SD per a ESP32
Seleccioneu Interfície SD per a ESP32

Aquest instructable mostra alguna cosa sobre com seleccionar una interfície SD per al vostre projecte ESP32.

Pas 1: interfície SD

A la biblioteca SD Arduino original, SD Interface utilitza el mode de transferència de bus SD SPI.

La SD té en realitat més mode de transferència:

  • Mode de bus SPI: ESP32 té més d’un bus SPI, es pot personalitzar mentre s’inicialitza
  • Mode de bus SD de 1 bit / 4 bits: ESP32 dedica una altra biblioteca anomenada SD_MMC per implementar l'API de mode de bus SD
  • Mode SD UHS-II: ESP32 no compatible

Ref.:

www.arduino.cc/ca/referència/SD

ca.wikipedia.org/wiki/SD_card

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

Pas 2: Assignació de pins ESPIO GPIO

Aquests són els mapes de pins ESPIO GP32 per defecte:

Pin de la targeta SD Pin microSD Nom Bus SD de 4 bits Bus SD d'1 bit Bus SPI (pins pins HSPI / VSP)
1 2 D3 13 - SS (15/5)
2 3 CMD 15 15 MOSI (13/23)
3 - VSS GND GND GND
4 4 VDD 3,3V 3,3V 3,3V
5 5 CLK 14 14 SCK (14/18)
6 6 VSS GND GND GND
7 7 D0 2 2 MISO (12/19)
8 8 D1 4 - -
9 1 D2 12 - -

El mapatge de pins GPIO del bus SD d'1 bit / 4 bits no es pot canviar.

Simpla trucada SD_MMC begin () al mode inicial de bus SD de 4 bits:

SD_MMC.begin ();

El mode de bus SD de 1 bit es pot seleccionar amb el mètode SD_MMC begin (), p.

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

Es pot seleccionar el bus SPI (HSPI o VSPI) mentre es crea la instància SPIClass, per exemple.

SPIClass spi = SPIClass (HSPI);

Com podeu veure, els pins de bus SD de 1 bit / 4 bits comparteixen pins amb HSPI, però el mapatge dels pins de la targeta SD no és el mateix. Per tant, si el maquinari està connectat segons el mapa de pins del bus SD, no pot utilitzar directament els pins natius HSPI. Els pins GPIO es poden substituir en el mètode SPIClass begin (), p.

SPIClass spi = SPIClass (HSPI);

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

I també la biblioteca SD pot anul·lar el pin SS, el bus SPI i la freqüència del bus al mètode SD begin (), per exemple.

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

Pas 3: Requisits d'extracció de SD

Si voleu utilitzar el mode de bus SD de 4 bits, seguiu els requisits d'explotació ESP32 SD, especialment:

  • Conflictes extrets a GPIO13
  • Conflictes entre Bootstrap i SDIO a DAT2

Ref.:

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

Pas 4: diversos maquinaris

Diversos maquinaris
Diversos maquinaris

Els ESP32 tenen un munt de kit de desenvolupament i placa de desenvolupament, alguns d’ells tenen ranura per a targetes MicroSD incorporada.

Aquí hi ha alguns exemples a la meva mà:

  • TTGO T-Watch, es va connectar als pins GPIO 2, 13, 14 i 15 segons el mode de bus SD de 1 bit, de manera que pot utilitzar el mode de bus SD de 1 bit i el mode de bus SPI
  • M5Stack Series, es va connectar als pins GPIO 4, 18, 19 i 23 segons els pins natius de VSPI, de manera que pot utilitzar la configuració de biblioteca SD predeterminada [SD.begin (4)]
  • ODROID-GO, es va connectar als pins GPIO 18, 19, 22 i 23 segons els pins natius de VSPI, de manera que pot utilitzar la configuració de biblioteca SD predeterminada [SD.begin (22)]
  • ESP32-CAM, es va connectar als pins GPIO 2, 4, 12, 13, 14 i 15 segons el mode de bus SD de 4 bits, de manera que pot utilitzar tot el mode de bus SD de 4 bits / 1 bit i el mode de bus SPI
  • Taula de desenvolupament TTGO T8, es va connectar als pins GPIO 2, 13, 14 i 15 segons el mode de bus SD de 1 bit, de manera que pot utilitzar el mode de bus SD de 1 bit i el mode 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

Pas 5: Tauler SD Breakout Slot

Tauler SD Breakout Slot
Tauler SD Breakout Slot
Tauler SD Breakout Slot
Tauler SD Breakout Slot

És possible que la targeta de desenvolupament amb ranura de targeta MicroSD integrada no connecti tots els pins i la majoria no pugui utilitzar el mode de bus SD de 4 bits. Un tauler de separació de ranura de targeta SD individual proporciona una millor flexibilitat.

Al mateix temps, molts taulers LCD de ruptura també presenten una ranura per a targetes SD de mida completa. Tanmateix, la majoria d’ells només trenquen els pins del mode SPI. No n’hi ha prou d’utilitzar-lo com a mode de bus SD de 4 bits, però encara podeu utilitzar-lo com a mode de bus SD de 1 bit mitjançant aquest mapatge de connexions:

LCD -> ESP32

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

Pas 6: desenganxeu GPIO 2 mentre esteu programat

Separeu el programa GPIO 2 While
Separeu el programa GPIO 2 While

La connexió de mode de bus SD de 4 bits fa que ESP32 no pugui entrar al mode de programa. Recordeu que heu de desprendre el GPIO 2 del tauler de separació de la ranura de la targeta SD DAT0 abans de penjar el programa nou.

Pas 7: punt de referència

Punt de referència
Punt de referència
Punt de referència
Punt de referència

He escrit un senzill programa Arduino per al punt de referència:

github.com/moononournation/ESP32_SD_Benchm…

Aquí teniu el maquinari per al punt de referència:

ESP32

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

Ranura per a targeta SD

Una placa de separació de ranures per a targetes MicroSD

Targeta SD

Tinc un SanDisk de 8 GB MicroSD i un vell MicroSD de 128 MB a la mà.

Pas 8: benchmark de mode SD_MMC de 4 bits

SanDisk 8 GB MicroSD

20: 27: 46.000 -> Prova d'escriptura /t_1_1.bin

20: 27: 59.399 -> Fitxer d'escriptura utilitzat: 13404 ms, 312.914368 KB / s 20: 27: 59.399 -> Prova d'escriptura /test_2k.bin 20: 28: 17.248 -> Fitxer d'escriptura utilitzat: 17834 ms, 235.185822 KB / s 20: 28: 17.248 -> Prova d'escriptura /test_4k.bin 20: 28: 21.122 -> Fitxer d'escriptura utilitzat: 3873 ms, 1082.959961 KB / s 20: 28: 21.122 -> Prova d'escriptura /test_8k.bin 20: 28: 23.147 -> Fitxer d'escriptura utilitzat: 2024 ms, 2072.284668 KB / s 20: 28: 23.147 -> Prova d'escriptura /test_16k.bin 20: 28: 27.237 -> Fitxer d'escriptura utilitzat: 4097 ms, 1023.750061 KB / s 20: 28: 27.237 -> Prova write /test_32k.bin 20: 28: 30.088 -> Fitxer d'escriptura utilitzat: 2842 ms, 1475.828247 KB / s 20: 28: 30.088 -> Test write /test_64k.bin 20: 28: 31.882 -> Fitxer d'escriptura utilitzat: 1811 ms, 2316.015381 KB / s 20: 28: 31.882 -> Prova de lectura / test_1k.bin 20: 28: 35.422 -> Llegir fitxer utilitzat: 3520 ms, 1191.563599 KB / s 20: 28: 35.422 -> Prova de lectura /test_2k.bin 20: 28: 38.813 -> Llegir fitxer utilitzat: 3389 ms, 1237.622925 KB / s 20: 28: 38.813 -> Prova de lectura /test_4k.bin 20: 28: 42.273 -> Llegir fitxer utilitzat: 3474 ms, 1207.341431 KB / s 20:28: 42.273 -> Prova de lectura /test_8k.bin 20: 28: 45.752 - > Llegir fitxer utilitzat: 3487 ms, 1202.840210 KB / s 20: 28: 45.752 -> Llegir prova /test_16k.bin 20: 28: 48.988 -> Llegir fitxer utilitzat: 3213 ms, 1305.416748 KB / s 20: 28: 48.988 -> Prova de lectura /test_32k.bin 20: 28: 52.077 -> Llegiu fitxer utilitzat: 3093 ms, 1356.063354 KB / s 20: 28: 52.077 -> Prova de lectura /test_64k.bin 20: 28: 55.141 -> Llegiu fitxer utilitzat: 3080 ms, 1361,786987 KB / s

MicroSD antiga de 128 MB

20: 30: 43.309 -> E (274) sdmmc_sd: sdmmc_check_scr: send_scr va retornar 0x109

20: 30: 43.309 -> Error de muntatge de la targeta

Pas 9: benchmark de mode SD_MMC a 1 bit

SanDisk 8 GB MicroSD

20: 31: 45.194 -> Prova d'escriptura / test_1k.bin

20: 31: 59.506 -> Fitxer d'escriptura utilitzat: 14325 ms, 292.796082 KB / s 20: 31: 59.506 -> Prova d'escriptura /test_2k.bin 20: 32: 17.686 -> Fitxer d'escriptura utilitzat: 18163 ms, 230.925735 KB / s 20: 32: 17.686 -> Prova d'escriptura /test_4k.bin 20: 32: 21.291 -> Fitxer d'escriptura utilitzat: 3611 ms, 1161.535278 KB / s 20: 32: 21.291 -> Prova d'escriptura /test_8k.bin 20: 32: 23.939 -> Fitxer d'escriptura utilitzat: 2652 ms, 1581,562622 KB / s 20: 32: 23.939 -> Prova d'escriptura /test_16k.bin 20: 32: 28.397 -> Fitxer d'escriptura utilitzat: 4448 ms, 942.964050 KB / s 20: 32: 28.397 -> Prova write /test_32k.bin 20: 32: 31.835 -> Fitxer d'escriptura utilitzat: 3429 ms, 1223.185791 KB / s 20: 32: 31.835 -> Test write /test_64k.bin 20: 32: 33.882 -> Fitxer d'escriptura utilitzat: 2058 ms, 2038.048584 KB / s 20: 32: 33.882 -> Prova de lectura /test_1k.bin 20: 32: 38.031 -> Llegir fitxer utilitzat: 4146 ms, 1011.650757 KB / s 20: 32: 38.031 -> Prova de lectura /test_2k.bin 20: 32: 42.062 -> Llegir fitxer utilitzat: 4019 ms, 1043.618774 KB / s 20: 32: 42.062 -> Prova de lectura /test_4k.bin 20: 32: 46.170 -> Llegir fitxer utilitzat: 4106 ms, 1021.506104 KB / s 20:32: 46.170 -> Prova de lectura /test_8k.bin 20: 32: 50.288 -> Llegiu el fitxer utilitzat: 4121 ms, 1017.787903 KB / s 20: 32: 50.288 -> Prova de lectura /test_16k.bin 20: 32: 54.112 -> Llegiu el fitxer utilitzat: 3840 ms, 1092.266724 KB / s 20: 32: 54.112 -> Prova llegir /test_32k.bin 20: 32: 57.840 -> Llegir fitxer utilitzat: 3739 ms, 1121.771606 KB / s 20: 32: 57.840 -> Llegir prova /test_64k.bin 20: 33: 01.568 -> Llegir fitxer utilitzat: 3711 ms, 1130.235474 KB / s

MicroSD antiga de 128 MB

20: 33: 27.366 -> Prova d'escriptura / test_1k.bin

20: 33: 42.386 -> Fitxer d'escriptura utilitzat: 15020 ms, 279.247925 KB / s 20: 33: 42.386 -> Prova d'escriptura /test_2k.bin 20: 33: 57.927 -> Fitxer d'escriptura utilitzat: 15515 ms, 270.338654 KB / s 20: 33: 57.927 -> Prova d'escriptura /test_4k.bin 20: 34: 13.108 -> Fitxer d'escriptura utilitzat: 15195 ms, 276.031860 KB / s 20: 34: 13.108 -> Prova d'escriptura /test_8k.bin 20: 34: 28.162 -> Fitxer d'escriptura utilitzat: 15048 ms, 278.728333 KB / s 20: 34: 28.162 -> Prova d'escriptura /test_16k.bin 20: 34: 43.287 -> Fitxer d'escriptura utilitzat: 15142 ms, 276.998016 KB / s 20: 34: 43.287 -> Prova write /test_32k.bin 20: 34: 58.278 -> Fitxer d'escriptura utilitzat: 14964 ms, 280.292969 KB / s 20: 34: 58.278 -> Test write /test_64k.bin 20: 35: 13.370 -> Fitxer d'escriptura utilitzat: 15101 ms, 277.750092 KB / s 20: 35: 13.370 -> Prova de lectura / test_1k.bin 20: 35: 17.563 -> Llegir fitxer utilitzat: 4197 ms, 999.357666 KB / s 20: 35: 17.563 -> Prova de lectura /test_2k.bin 20: 35: 21.746 -> Llegir fitxer utilitzat: 4191 ms, 1000.788330 KB / s 20: 35: 21.746 -> Prova de lectura /test_4k.bin 20: 35: 25.942 -> Llegir fitxer utilitzat: 4181 ms, 1003.182007 KB / s 20:35: 25.942 -> Prova de lectura /test_8k.bin 20: 35: 30.101 -> Llegir fitxer utilitzat: 4176 ms, 1004.383118 KB / s 20: 35: 30.101 -> Llegir prova /test_16k.bin 20: 35: 34.279 -> Llegir fitxer utilitzat: 4174 ms, 1004.864380 KB / s 20: 35: 34.279 -> Prova llegir /test_32k.bin 20: 35: 38.462 -> Llegir fitxer utilitzat: 4173 ms, 1005.105225 KB / s 20: 35: 38.462 -> Llegir prova /test_64k.bin 20: 35: 42.612 -> Llegir fitxer utilitzat: 4173 ms, 1005,105225 KB / s

Pas 10: mode SD SPI a HSPI Bus Benchmark

SanDisk 8 GB MicroSD

08: 41: 19.703 -> Prova d'escriptura / test_1k.bin

08: 41: 53.458 -> Fitxer d'escriptura utilitzat: 33743 ms, 124.301453 KB / s 08: 41: 53.458 -> Prova d'escriptura /test_2k.bin 08: 42: 10.000 -> Fitxer d'escriptura utilitzat: 16540 ms, 253.585495 KB / s 08: 42: 10.000 -> Prova d'escriptura /test_4k.bin 08: 42: 17.269 -> Fitxer d'escriptura utilitzat: 7298 ms, 574.719666 KB / s 08: 42: 17.308 -> Prova d'escriptura /test_8k.bin 08: 42: 22.640 -> Fitxer d'escriptura utilitzat: 5345 ms, 784.715454 KB / s 08: 42: 22.640 -> Prova d'escriptura /test_16k.bin 08: 42: 32.285 -> Fitxer d'escriptura utilitzat: 9662 ms, 434.103088 KB / s 08: 42: 32.285 -> Prova write /test_32k.bin 08: 42: 36.659 -> Fitxer d'escriptura utilitzat: 4355 ms, 963.100830 KB / s 08: 42: 36.659 -> Test d'escriptura /test_64k.bin 08: 42: 39.594 -> Fitxer d'escriptura utilitzat: 2949 ms, 1422.280151 KB / s 08: 42: 39.594 -> Prova de lectura / test_1k.bin 08: 42: 44.774 -> Llegiu fitxer utilitzat: 5192 ms, 807.839783 KB / s 08: 42: 44.774 -> Prova de lectura / test_2k.bin 08: 42: 49.969 -> Llegir fitxer utilitzat: 5189 ms, 808.306824 KB / s 08: 42: 49.969 -> Prova de lectura /test_4k.bin 08: 42: 55.123 -> Llegir fitxer utilitzat: 5161 ms, 812.692139 KB / s 08:42: 55.158 -> Prova de lectura /test_8k.bin 08: 43: 00.300 -> Lectura fitxer utilitzat: 5176 ms, 810.336914 KB / s 08: 43: 00.334 -> Prova de lectura /test_16k.bin 08: 43: 05.277 -> Llegiu fitxer utilitzat: 4948 ms, 847.676636 KB / s 08: 43: 05.277 -> Prova de lectura /test_32k.bin 08: 43: 10.028 -> Llegir fitxer utilitzat: 4773 ms, 878.756348 KB / s 08: 43: 10.028 -> Prova de lectura /test_64k.bin 08: 43: 14.760 -> Llegir fitxer utilitzat: 4731 ms, 886.557617 KB / s

MicroSD antiga de 128 MB

08: 43: 47.777 -> Prova d'escriptura / test_1k.bin

08: 44: 04.148 -> Fitxer d’escriptura utilitzat: 16390 ms, 255.906281 KB / s 08: 44: 04.183 -> Prova d’escriptura /test_2k.bin 08: 44: 20.648 -> Fitxer d’escriptura utilitzat: 16494 ms, 254.292709 KB / s 08: 44: 20.648 -> Prova d'escriptura /test_4k.bin 08: 44: 36.674 -> Fitxer d'escriptura utilitzat: 16001 ms, 262.127625 KB / s 08: 44: 36.674 -> Prova d'escriptura /test_8k.bin 08: 44: 52.849 -> Fitxer d'escriptura utilitzat: 16175 ms, 259.307831 KB / s 08: 44: 52.849 -> Prova d'escriptura /test_16k.bin 08: 45: 09.225 -> Fitxer d'escriptura utilitzat: 16397 ms, 255.797043 KB / s 08: 45: 09.225 -> Prova write /test_32k.bin 08: 45: 25.363 -> Fitxer d'escriptura utilitzat: 16143 ms, 259.821838 KB / s 08: 45: 25.397 -> Test write /test_64k.bin 08: 45: 41.632 -> Fitxer d'escriptura utilitzat: 16263 ms, 257.904694 KB / s 08: 45: 41.632 -> Prova de lectura / test_1k.bin 08: 45: 46.488 -> Llegir fitxer utilitzat: 4856 ms, 863.736389 KB / s 08: 45: 46.488 -> Prova de lectura / test_2k.bin 08: 45: 51.332 -> Llegir fitxer utilitzat: 4840 ms, 866.591736 KB / s 08: 45: 51.332 -> Prova de lectura /test_4k.bin 08: 45: 56.163 -> Llegir fitxer utilitzat: 4834 ms, 867.667358 KB / s 08:45: 56.163 -> Prova llegida /test_8k.bin 08: 46: 00.998 -> R ead fitxer utilitzat: 4827 ms, 868.925598 KB / s 08: 46: 00.998 -> Prova llegida /test_16k.bin 08: 46: 05.808 -> Llegiu fitxer utilitzat: 4825 ms, 869.285828 KB / s 08: 46: 05.843 -> Prova llegir /test_32k.bin 08: 46: 10.637 -> Llegir fitxer utilitzat: 4824 ms, 869.466003 KB / s 08: 46: 10.637 -> Llegir prova /test_64k.bin 08: 46: 15.478 -> Llegir fitxer utilitzat: 4825 ms, 869.285828 KB / s

Pas 11: mode SD SPI a la referència de bus VSPI

SanDisk 8 GB MicroSD

08: 54: 17.412 -> Prova d'escriptura / test_1k.bin

08: 54: 48.398 -> Fitxer d'escriptura utilitzat: 30994 ms, 135.326324 KB / s 08: 54: 48.398 -> Prova d'escriptura /test_2k.bin 08: 55: 06.079 -> Fitxer d'escriptura utilitzat: 17677 ms, 237.274658 KB / s 08: 55: 06.079 -> Prova d'escriptura /test_4k.bin 08: 55: 13.357 -> Fitxer d'escriptura utilitzat: 7274 ms, 576.615906 KB / s 08: 55: 13.357 -> Prova d'escriptura /test_8k.bin 08: 55: 18.691 -> Fitxer d'escriptura utilitzat: 5323 ms, 787.958679 KB / s 08: 55: 18.691 -> Prova d'escriptura /test_16k.bin 08: 55: 28.336 -> Fitxer d'escriptura utilitzat: 9669 ms, 433.788818 KB / s 08: 55: 28.336 -> Prova write /test_32k.bin 08: 55: 32.646 -> Fitxer d'escriptura utilitzat: 4309 ms, 973.382202 KB / s 08: 55: 32.646 -> Test write /test_64k.bin 08: 55: 35.551 -> Fitxer d'escriptura utilitzat: 2915 ms, 1438.869263 KB / s 08: 55: 35.584 -> Prova de lectura /test_1k.bin 08: 55: 40.745 -> Llegiu fitxer utilitzat: 5183 ms, 809.242554 KB / s 08: 55: 40.745 -> Prova de lectura /test_2k.bin 08: 55: 45.916 -> Llegiu el fitxer utilitzat: 5182 ms, 809.398682 KB / s 08: 55: 45.949 -> Llegiu la prova /test_4k.bin 08: 55: 51.091 -> Llegiu el fitxer utilitzat: 5162 ms, 812.534668 KB / s 08:55: 51.091 -> Prova de lectura /test_8k.bin 08: 55: 56.257 -> Lectura fitxer utilitzat: 5177 ms, 810.180420 KB / s 08: 55: 56.293 -> Prova de lectura /test_16k.bin 08: 56: 01.244 -> Llegiu fitxer utilitzat: 4956 ms, 846.308289 KB / s 08: 56: 01.244 -> Prova de lectura /test_32k.bin 08: 56: 06.006 -> Llegir fitxer utilitzat: 4764 ms, 880.416443 KB / s 08: 56: 06.006 -> Prova de lectura /test_64k.bin 08: 56: 10.716 -> Llegir fitxer utilitzat: 4728 ms, 887.120117 KB / s

MicroSD antiga de 128 MB

08: 51: 01.939 -> Prova d'escriptura /test_1k.bin

08: 51: 18.358 -> Fitxer d'escriptura utilitzat: 16422 ms, 255.407623 KB / s 08: 51: 18.358 -> Prova d'escriptura /test_2k.bin 08: 51: 34.529 -> Fitxer d'escriptura utilitzat: 16173 ms, 259.339874 KB / s 08: 51: 34.529 -> Prova d'escriptura /test_4k.bin 08: 51: 50.911 -> Fitxer d'escriptura utilitzat: 16372 ms, 256.187653 KB / s 08: 51: 50.911 -> Prova d'escriptura /test_8k.bin 08: 52: 07.056 -> Fitxer d'escriptura utilitzat: 16137 ms, 259.918457 KB / s 08: 52: 07.056 -> Prova d'escriptura /test_16k.bin 08: 52: 23.383 -> Fitxer d'escriptura utilitzat: 16351 ms, 256.516663 KB / s 08: 52: 23.383 -> Prova write /test_32k.bin 08: 52: 39.533 -> Fitxer d'escriptura utilitzat: 16128 ms, 260.063507 KB / s 08: 52: 39.533 -> Test write /test_64k.bin 08: 52: 55.764 -> Fitxer d'escriptura utilitzat: 16250 ms, 258.111023 KB / s 08: 52: 55.764 -> Prova de lectura / test_1k.bin 08: 53: 00.645 -> Llegir fitxer utilitzat: 4855 ms, 863.914307 KB / s 08: 53: 00.645 -> Prova de lectura / test_2k.bin 08: 53: 05.459 -> Llegir fitxer utilitzat: 4839 ms, 866.770813 KB / s 08: 53: 05.459 -> Llegir prova /test_4k.bin 08: 53: 10.306 -> Llegir fitxer utilitzat: 4833 ms, 867.846863 KB / s 08:53: 10.306 -> Prova llegida /test_8k.bin 08: 53: 15.127 -> R ead fitxer utilitzat: 4827 ms, 868.925598 KB / s 08: 53: 15.127 -> Prova llegida /test_16k.bin 08: 53: 19.963 -> Llegiu fitxer utilitzat: 4826 ms, 869.105652 KB / s 08: 53: 19.963 -> Prova read /test_32k.bin 08: 53: 24.758 -> Llegiu el fitxer utilitzat: 4824 ms, 869.466003 KB / s 08: 53: 24.792 -> Prova de lectura /test_64k.bin 08: 53: 29.592 -> Llegiu el fitxer utilitzat: 4824 ms, 869,466003 KB / s

Pas 12: arrodoneix cap amunt

El mode de bus SD de 4 bits té el millor rendiment, el mode de bus SD d’1 bit és al voltant d’un 20% més lent i el mode SPI al voltant d’un 50% més lent. Un dels motius principals és que la capa de protocol SD_MMC no implementa cap tipus de bloqueig, però sí SPI. I també el mode de bus SD de 4 bits té línies de dades dobles, de manera que teòricament el doble de velocitat. Però la meva antiga MicroSD no pot suportar el mode de bus SD de 4 bits.

Recomanaré el mode de bus SD de 1 bit en la majoria dels casos, perquè:

  • bon rendiment
  • millor compatibilitat amb la targeta SD
  • requisits SD Pull-up més solts
  • només es necessiten 3 pins GPIO
  • configuració de codi menor
  • molts equips de desenvolupament, taulers de desenvolupament i taulers poden utilitzar aquest mode

Recomanat: