Mục lục:

Chọn Giao diện SD cho ESP32: 12 Bước (với Hình ảnh)
Chọn Giao diện SD cho ESP32: 12 Bước (với Hình ảnh)

Video: Chọn Giao diện SD cho ESP32: 12 Bước (với Hình ảnh)

Video: Chọn Giao diện SD cho ESP32: 12 Bước (với Hình ảnh)
Video: Fix các lỗi trong giao diện Winform C# Winform App - Arduino(Esp32) 2024, Tháng mười một
Anonim
Chọn Giao diện SD cho ESP32
Chọn Giao diện SD cho ESP32

Các chỉ dẫn này cho thấy điều gì đó về việc chọn giao diện SD cho dự án ESP32 của bạn.

Bước 1: Giao diện SD

Trong thư viện Arduino SD gốc, Giao diện SD đang sử dụng chế độ truyền bus SD SPI.

SD thực sự có nhiều chế độ truyền hơn:

  • Chế độ xe buýt SPI: ESP32 có nhiều hơn 1 xe buýt SPI, nó có thể tùy chỉnh trong khi khởi tạo
  • Chế độ bus SD 1 bit / 4 bit: ESP32 dành một thư viện khác được gọi là SD_MMC để triển khai API chế độ bus SD
  • Chế độ SD UHS-II: Không hỗ trợ ESP32

Tham chiếu:

www.arduino.cc/en/reference/SD

en.wikipedia.org/wiki/SD_card

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

Bước 2: Ánh xạ các chân GPIO của ESP32

Dưới đây là ánh xạ chân GPIO ESP32 mặc định:

Chân thẻ SD Chân MicroSD Tên Bus 4 bit SD Xe buýt SD 1 bit Xe buýt SPI (chân 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,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 - -

Không thể thay đổi ánh xạ các chân GPIO của bus SD 1-bit / 4-bit.

Gọi đơn giản SD_MMC begin () đến chế độ bus SD 4 bit ban đầu:

SD_MMC.begin ();

Chế độ bus SD 1 bit có thể được chọn ở phương thức begin () SD_MMC, ví dụ:

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

Có thể chọn bus SPI (HSPI hoặc VSPI) trong khi tạo phiên bản SPIClass, ví dụ:

SPIClass spi = SPIClass (HSPI);

Như bạn có thể thấy chân chia sẻ chân bus SD 1-bit / 4-bit với HSPI nhưng ánh xạ chân thẻ SD không giống nhau. Vì vậy, nếu phần cứng được kết nối theo bản đồ chân bus SD, nó không thể sử dụng trực tiếp các chân gốc HSPI. Các chân GPIO có thể được ghi đè tại phương thức SPIClass begin (), ví dụ:

SPIClass spi = SPIClass (HSPI);

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

Và thư viện SD cũng có thể ghi đè chân SS, bus SPI và tần số bus ở phương thức SD begin (), ví dụ:

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

Bước 3: Yêu cầu kéo lên SD

Nếu bạn muốn sử dụng chế độ bus SD 4 bit, vui lòng tuân theo Yêu cầu kéo lên của ESP32 SD, đặc biệt là:

  • Xung đột kéo lên trên GPIO13
  • Xung đột giữa Bootstrap và SDIO trên DAT2

Tham chiếu:

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

Bước 4: Phần cứng khác nhau

Phần cứng khác nhau
Phần cứng khác nhau

ESP32 có rất nhiều bộ dành cho nhà phát triển và bảng nhà phát triển, một số trong số chúng có khe cắm thẻ nhớ MicroSD tích hợp.

Dưới đây là một số ví dụ trong tay của tôi:

  • TTGO T-Watch, nó được kết nối với các chân GPIO 2, 13, 14 và 15 theo chế độ bus SD 1 bit, vì vậy nó có thể sử dụng chế độ bus SD 1 bit và chế độ bus SPI
  • Dòng M5Stack, nó được kết nối với các chân GPIO 4, 18, 19 và 23 theo các chân VSPI gốc, vì vậy nó có thể sử dụng cài đặt thư viện SD mặc định [SD.begin (4)]
  • ODROID-GO, nó được kết nối với các chân GPIO 18, 19, 22 và 23 theo các chân VSPI gốc, vì vậy nó có thể sử dụng cài đặt thư viện SD mặc định [SD.begin (22)]
  • ESP32-CAM, nó được kết nối với các chân GPIO 2, 4, 12, 13, 14 và 15 theo chế độ bus SD 4 bit, vì vậy nó có thể sử dụng tất cả chế độ bus SD 4 bit / 1 bit và chế độ bus SPI
  • Bo mạch nhà phát triển TTGO T8, nó kết nối với các chân GPIO 2, 13, 14 và 15 theo chế độ bus SD 1 bit, vì vậy nó có thể sử dụng chế độ bus SD 1 bit và chế độ 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

Bước 5: Bảng phân tích khe cắm thẻ SD

Bảng đột phá khe cắm thẻ SD
Bảng đột phá khe cắm thẻ SD
Bảng đột phá khe cắm thẻ SD
Bảng đột phá khe cắm thẻ SD

Bảng phát triển có khe cắm thẻ MicroSD tích hợp có thể không kết nối tất cả các chân và hầu hết không thể sử dụng chế độ bus SD 4 bit. Một bảng đột phá khe cắm thẻ SD cá nhân cung cấp tính linh hoạt tốt hơn.

Đồng thời, nhiều bo mạch màn hình LCD cũng phá vỡ một khe cắm thẻ nhớ SD kích thước đầy đủ. Tuy nhiên, hầu hết chúng chỉ phá vỡ các chân chế độ SPI. Nó không đủ để sử dụng ở chế độ bus SD 4 bit, nhưng bạn vẫn có thể sử dụng nó ở chế độ bus SD 1 bit bằng cách ánh xạ kết nối này:

LCD -> ESP32

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

Bước 6: Tách chương trình GPIO 2 trong khi

Tách chương trình GPIO 2 trong khi
Tách chương trình GPIO 2 trong khi

Kết nối chế độ bus SD 4 bit làm cho ESP32 không vào được chế độ chương trình. Hãy nhớ tháo GPIO 2 khỏi bo mạch phá vỡ khe cắm thẻ SD DAT0 trước khi tải lên chương trình mới.

Bước 7: Điểm chuẩn

Điểm chuẩn
Điểm chuẩn
Điểm chuẩn
Điểm chuẩn

Tôi đã viết một chương trình Arduino đơn giản cho điểm chuẩn:

github.com/moononournation/ESP32_SD_Benchm…

Dưới đây là phần cứng cho điểm chuẩn:

ESP32

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

Khe cắm thẻ SD

Một bảng đột phá khe cắm thẻ nhớ MicroSD

Thẻ SD

Tôi có một MicroSD SanDisk 8 GB và một MicroSD 128 MB cũ trong tay.

Bước 8: Điểm chuẩn chế độ 4 bit SD_MMC

SanDisk 8 GB MicroSD

20: 27: 46.000 -> Viết thử /test_1k.bin

20: 27: 59.399 -> Ghi tệp được sử dụng: 13404 ms, 312,914368 KB / s 20: 27: 59.399 -> Kiểm tra ghi /test_2k.bin 20: 28: 17.248 -> Ghi tệp được sử dụng: 17834 ms, 235.185822 KB / s 20: 28: 17.248 -> Kiểm tra ghi /test_4k.bin 20: 28: 21.122 -> Ghi tệp được sử dụng: 3873 ms, 1082.959961 KB / s 20: 28: 21.122 -> Kiểm tra ghi /test_8k.bin 20: 28: 23.147 -> Ghi tệp được sử dụng: 2024 ms, 2072.284668 KB / s 20: 28: 23.147 -> Kiểm tra ghi /test_16k.bin 20: 28: 27.237 -> Ghi tệp được sử dụng: 4097 ms, 1023.750061 KB / s 20: 28: 27.237 -> Kiểm tra write /test_32k.bin 20: 28: 30.088 -> Write file used: 2842 ms, 1475.828247 KB / s 20: 28: 30.088 -> Test write /test_64k.bin 20: 28: 31.882 -> Write file used: 1811 ms, 2316.015381 KB / s 20: 28: 31.882 -> Kiểm tra đọc /test_1k.bin 20: 28: 35.422 -> Đọc tệp được sử dụng: 3520 ms, 1191.563599 KB / s 20: 28: 35.422 -> Kiểm tra đọc /test_2k.bin 20: 28: 38.813 -> Đọc tệp được sử dụng: 3389 ms, 1237.622925 KB / s 20: 28: 38.813 -> Kiểm tra đọc /test_4k.bin 20: 28: 42.273 -> Đọc tệp đã sử dụng: 3474 ms, 1207.341431 KB / s 20:28: 42.273 -> Đọc thử /test_8k.bin 20: 28: 45.752 - > Đọc tệp được sử dụng: 3487 ms, 1202.840210 KB / s 20: 28: 45.752 -> Kiểm tra đọc /test_16k.bin 20: 28: 48.988 -> Đọc tệp được sử dụng: 3213 ms, 1305.416748 KB / s 20: 28: 48,988 -> Kiểm tra đọc /test_32k.bin 20: 28: 52.077 -> Đọc tệp được sử dụng: 3093 ms, 1356.063354 KB / s 20: 28: 52.077 -> Kiểm tra đọc /test_64k.bin 20: 28: 55.141 -> Đọc tệp được sử dụng: 3080 ms, 1361,786987 KB / s

MicroSD 128 MB cũ

20: 30: 43.309 -> E (274) sdmmc_sd: sdmmc_check_scr: send_scr trả về 0x109

20: 30: 43.309 -> Gắn thẻ không thành công

Bước 9: Điểm chuẩn chế độ 1-bit SD_MMC

SanDisk 8 GB MicroSD

20: 31: 45.194 -> Viết thử /test_1k.bin

20: 31: 59.506 -> Ghi tệp được sử dụng: 14325 ms, 292.796082 KB / s 20: 31: 59.506 -> Kiểm tra ghi /test_2k.bin 20: 32: 17.686 -> Ghi tệp được sử dụng: 18163 ms, 230,925735 KB / s 20: 32: 17.686 -> Kiểm tra ghi /test_4k.bin 20: 32: 21.291 -> Ghi tệp được sử dụng: 3611 ms, 1161.535278 KB / s 20: 32: 21.291 -> Kiểm tra ghi /test_8k.bin 20: 32: 23.939 -> Ghi tệp được sử dụng: 2652 ms, 1581.562622 KB / s 20: 32: 23.939 -> Kiểm tra ghi /test_16k.bin 20: 32: 28.397 -> Ghi tệp đã sử dụng: 4448 ms, 942.964050 KB / s 20: 32: 28.397 -> Kiểm tra write /test_32k.bin 20: 32: 31.835 -> Write file used: 3429 ms, 1223.185791 KB / s 20: 32: 31.835 -> Test write /test_64k.bin 20: 32: 33.882 -> Write file used: 2058 ms, 2038.048584 KB / s 20: 32: 33.882 -> Kiểm tra đọc /test_1k.bin 20: 32: 38.031 -> Đọc tệp được sử dụng: 4146 ms, 1011.650757 KB / s 20: 32: 38.031 -> Kiểm tra đọc /test_2k.bin 20: 32: 42.062 -> Đọc tệp được sử dụng: 4019 ms, 1043.618774 KB / s 20: 32: 42.062 -> Kiểm tra đọc /test_4k.bin 20: 32: 46.170 -> Đọc tệp được sử dụng: 4106 ms, 1021.506104 KB / s 20:32: 46.170 -> Đọc thử /test_8k.bin 20: 32: 50.288 -> Đọc tệp được sử dụng: 4121 ms, 1017.787903 KB / s 20: 32: 50.288 -> Kiểm tra đọc /test_16k.bin 20: 32: 54.112 -> Đọc tệp được sử dụng: 3840 ms, 1092.266724 KB / s 20: 32: 54.112 -> Kiểm tra read /test_32k.bin 20: 32: 57.840 -> Đọc tệp được sử dụng: 3739 ms, 1121.771606 KB / s 20: 32: 57.840 -> Đọc thử /test_64k.bin 20: 33: 01.568 -> Đọc tệp được sử dụng: 3711 ms, 1130.235474 KB / s

MicroSD 128 MB cũ

20: 33: 27.366 -> Viết thử /test_1k.bin

20: 33: 42.386 -> Ghi tệp được sử dụng: 15020 ms, 279.247925 KB / s 20: 33: 42.386 -> Kiểm tra ghi /test_2k.bin 20: 33: 57.927 -> Ghi tệp được sử dụng: 15515 ms, 270.338654 KB / s 20: 33: 57.927 -> Kiểm tra ghi /test_4k.bin 20: 34: 13.108 -> Ghi tệp được sử dụng: 15195 ms, 276.031860 KB / s 20: 34: 13.108 -> Kiểm tra ghi /test_8k.bin 20: 34: 28.162 -> Ghi tệp được sử dụng: 15048 ms, 278.728333 KB / s 20: 34: 28.162 -> Kiểm tra ghi /test_16k.bin 20: 34: 43.287 -> Ghi tệp được sử dụng: 15142 ms, 276.998016 KB / s 20: 34: 43.287 -> Kiểm tra write /test_32k.bin 20: 34: 58.278 -> Write file used: 14964 ms, 280.292969 KB / s 20: 34: 58.278 -> Test write /test_64k.bin 20: 35: 13.370 -> Write file used: 15101 ms, 277.750092 KB / s 20: 35: 13.370 -> Kiểm tra đọc /test_1k.bin 20: 35: 17.563 -> Đọc tệp được sử dụng: 4197 ms, 999.357666 KB / s 20: 35: 17.563 -> Kiểm tra đọc /test_2k.bin 20: 35: 21.746 -> Đọc tệp đã sử dụng: 4191 ms, 1000.788330 KB / s 20: 35: 21.746 -> Kiểm tra đọc /test_4k.bin 20: 35: 25.942 -> Đọc tệp đã sử dụng: 4181 ms, 1003.182007 KB / s 20:35: 25.942 -> Đọc thử /test_8k.bin 20: 35: 30.101 -> Đọc tệp được sử dụng: 4176 ms, 1004.383118 KB / s 20: 35: 30.101 -> Kiểm tra đọc /test_16k.bin 20: 35: 34.279 -> Đọc tệp được sử dụng: 4174 ms, 1004.864380 KB / s 20: 35: 34.279 -> Kiểm tra read /test_32k.bin 20: 35: 38.462 -> Đọc tệp được sử dụng: 4173 ms, 1005.105225 KB / s 20: 35: 38.462 -> Kiểm tra đọc /test_64k.bin 20: 35: 42.612 -> Đọc tệp được sử dụng: 4173 ms, 1005.105225 KB / s

Bước 10: Chế độ SD SPI tại HSPI Bus Benchmark

SanDisk 8 GB MicroSD

08: 41: 19.703 -> Viết thử /test_1k.bin

08: 41: 53.458 -> Ghi tệp được sử dụng: 33743 ms, 124.301453 KB / s 08: 41: 53.458 -> Kiểm tra ghi /test_2k.bin 08: 42: 10.000 -> Ghi tệp đã sử dụng: 16540 ms, 253.585495 KB / s 08: 42: 10.000 -> Kiểm tra ghi /test_4k.bin 08: 42: 17.269 -> Ghi tệp được sử dụng: 7298 ms, 574.719666 KB / s 08: 42: 17.308 -> Kiểm tra ghi /test_8k.bin 08: 42: 22.640 -> Ghi tệp được sử dụng: 5345 ms, 784.715454 KB / s 08: 42: 22.640 -> Kiểm tra ghi /test_16k.bin 08: 42: 32.285 -> Ghi tệp đã sử dụng: 9662 ms, 434.103088 KB / s 08: 42: 32.285 -> Kiểm tra write /test_32k.bin 08: 42: 36.659 -> Write file used: 4355 ms, 963.100830 KB / s 08: 42: 36.659 -> Test write /test_64k.bin 08: 42: 39.594 -> Write file used: 2949 ms, 1422.280151 KB / s 08: 42: 39.594 -> Kiểm tra đọc /test_1k.bin 08: 42: 44.774 -> Đọc tệp được sử dụng: 5192 ms, 807.839783 KB / s 08: 42: 44.774 -> Kiểm tra đọc /test_2k.bin 08: 42: 49.969 -> Đọc tệp được sử dụng: 5189 ms, 808.306824 KB / s 08: 42: 49.969 -> Kiểm tra đọc /test_4k.bin 08: 42: 55.123 -> Đọc tệp đã sử dụng: 5161 ms, 812.692139 KB / s 08:42: 55.158 -> Đọc thử /test_8k.bin 08: 43: 00.300 -> Đọc tệp được sử dụng: 5176 ms, 810.336914 KB / s 08: 43: 00.334 -> Kiểm tra đọc /test_16k.bin 08: 43: 05.277 -> Đọc tệp được sử dụng: 4948 ms, 847.676636 KB / s 08: 43: 05.277 -> Kiểm tra đọc /test_32k.bin 08: 43: 10.028 -> Đọc tệp được sử dụng: 4773 ms, 878.756348 KB / s 08: 43: 10.028 -> Đọc thử /test_64k.bin 08: 43: 14.760 -> Đọc tệp được sử dụng: 4731 ms, 886.557617 KB / s

MicroSD 128 MB cũ

08: 43: 47.777 -> Viết thử /test_1k.bin

08: 44: 04.148 -> Ghi tệp được sử dụng: 16390 ms, 255.906281 KB / s 08: 44: 04.183 -> Kiểm tra ghi /test_2k.bin 08: 44: 20.648 -> Ghi tệp được sử dụng: 16494 ms, 254.292709 KB / s 08: 44: 20.648 -> Kiểm tra ghi /test_4k.bin 08: 44: 36.674 -> Ghi tệp được sử dụng: 16001 ms, 262.127625 KB / s 08: 44: 36.674 -> Kiểm tra ghi /test_8k.bin 08: 44: 52.849 -> Ghi tệp được sử dụng: 16175 ms, 259.307831 KB / s 08: 44: 52.849 -> Kiểm tra ghi /test_16k.bin 08: 45: 09.225 -> Ghi tệp đã sử dụng: 16397 ms, 255.797043 KB / s 08: 45: 09.225 -> Kiểm tra write /test_32k.bin 08: 45: 25.363 -> Write file used: 16143 ms, 259.821838 KB / s 08: 45: 25.397 -> Test write /test_64k.bin 08: 45: 41.632 -> Write file used: 16263 ms, 257.904694 KB / s 08: 45: 41.632 -> Kiểm tra đọc /test_1k.bin 08: 45: 46.488 -> Đọc tệp được sử dụng: 4856 ms, 863.736389 KB / s 08: 45: 46.488 -> Kiểm tra đọc /test_2k.bin 08: 45: 51.332 -> Đọc tệp được sử dụng: 4840 ms, 866.591736 KB / s 08: 45: 51.332 -> Kiểm tra đọc /test_4k.bin 08: 45: 56.163 -> Đọc tệp đã sử dụng: 4834 ms, 867.667358 KB / s 08:45: 56.163 -> Đọc thử /test_8k.bin 08: 46: 00.998 -> R tệp ead được sử dụng: 4827 ms, 868.925598 KB / s 08: 46: 00.998 -> Kiểm tra đọc /test_16k.bin 08: 46: 05.808 -> Đọc tệp được sử dụng: 4825 ms, 869.285828 KB / s 08: 46: 05.843 -> Kiểm tra read /test_32k.bin 08: 46: 10.637 -> Đọc tệp được sử dụng: 4824 ms, 869.466003 KB / s 08: 46: 10.637 -> Kiểm tra đọc /test_64k.bin 08: 46: 15.478 -> Đọc tệp được sử dụng: 4825 ms, 869.285828 KB / s

Bước 11: Chế độ SD SPI tại VSPI Bus Benchmark

SanDisk 8 GB MicroSD

08: 54: 17.412 -> Viết thử /test_1k.bin

08: 54: 48.398 -> Ghi tệp được sử dụng: 30994 ms, 135.326324 KB / s 08: 54: 48.398 -> Kiểm tra ghi /test_2k.bin 08: 55: 06.079 -> Ghi tệp đã sử dụng: 17677 ms, 237.274658 KB / s 08: 55: 06.079 -> Kiểm tra ghi /test_4k.bin 08: 55: 13.357 -> Ghi tệp được sử dụng: 7274 ms, 576.615906 KB / s 08: 55: 13.357 -> Kiểm tra ghi /test_8k.bin 08: 55: 18.691 -> Ghi tệp được sử dụng: 5323 ms, 787.958679 KB / s 08: 55: 18.691 -> Kiểm tra ghi /test_16k.bin 08: 55: 28.336 -> Ghi tệp đã sử dụng: 9669 ms, 433.788818 KB / s 08: 55: 28.336 -> Kiểm tra write /test_32k.bin 08: 55: 32.646 -> Write file used: 4309 ms, 973.382202 KB / s 08: 55: 32.646 -> Test write /test_64k.bin 08: 55: 35.551 -> Write file used: 2915 ms, 1438.869263 KB / s 08: 55: 35.584 -> Kiểm tra đọc /test_1k.bin 08: 55: 40.745 -> Đọc tệp được sử dụng: 5183 ms, 809.242554 KB / s 08: 55: 40.745 -> Kiểm tra đọc /test_2k.bin 08: 55: 45.916 -> Đọc tệp được sử dụng: 5182 ms, 809.398682 KB / s 08: 55: 45.949 -> Kiểm tra đọc /test_4k.bin 08: 55: 51.091 -> Đọc tệp đã sử dụng: 5162 ms, 812.534668 KB / s 08:55: 51.091 -> Đọc thử /test_8k.bin 08: 55: 56.257 -> Đọc tệp được sử dụng: 5177 ms, 810.180420 KB / s 08: 55: 56.293 -> Đọc thử /test_16k.bin 08: 56: 01.244 -> Đọc tệp được sử dụng: 4956 ms, 846.308289 KB / s 08: 56: 01.244 -> Đọc thử /test_32k.bin 08: 56: 06.006 -> Đọc tệp được sử dụng: 4764 ms, 880.416443 KB / s 08: 56: 06.006 -> Đọc thử /test_64k.bin 08: 56: 10.716 -> Đọc tệp được sử dụng: 4728 ms, 887.120117 KB / s

MicroSD 128 MB cũ

08: 51: 01.939 -> Viết thử /test_1k.bin

08: 51: 18.358 -> Ghi tệp được sử dụng: 16422 ms, 255.407623 KB / s 08: 51: 18.358 -> Kiểm tra ghi /test_2k.bin 08: 51: 34.529 -> Ghi tệp được sử dụng: 16173 ms, 259.339874 KB / s 08: 51: 34.529 -> Kiểm tra ghi /test_4k.bin 08: 51: 50.911 -> Ghi tệp được sử dụng: 16372 ms, 256.187653 KB / s 08: 51: 50.911 -> Kiểm tra ghi /test_8k.bin 08: 52: 07.056 -> Ghi tệp được sử dụng: 16137 ms, 259.918457 KB / s 08: 52: 07.056 -> Kiểm tra ghi /test_16k.bin 08: 52: 23.383 -> Ghi tệp được sử dụng: 16351 ms, 256.516663 KB / s 08: 52: 23.383 -> Kiểm tra write /test_32k.bin 08: 52: 39.533 -> Write file used: 16128 ms, 260.063507 KB / s 08: 52: 39.533 -> Test write /test_64k.bin 08: 52: 55.764 -> Write file used: 16250 ms, 258.111023 KB / s 08: 52: 55.764 -> Kiểm tra đọc /test_1k.bin 08: 53: 00.645 -> Đọc tệp được sử dụng: 4855 ms, 863.914307 KB / s 08: 53: 00.645 -> Kiểm tra đọc /test_2k.bin 08: 53: 05.459 -> Đọc tệp được sử dụng: 4839 ms, 866.770813 KB / s 08: 53: 05.459 -> Đọc thử /test_4k.bin 08: 53: 10.306 -> Đọc tệp đã sử dụng: 4833 ms, 867.846863 KB / s 08:53: 10.306 -> Đọc thử /test_8k.bin 08: 53: 15.127 -> R tệp ead được sử dụng: 4827 ms, 868.925598 KB / s 08: 53: 15.127 -> Kiểm tra đọc /test_16k.bin 08: 53: 19.963 -> Đọc tệp được sử dụng: 4826 ms, 869.105652 KB / s 08: 53: 19.963 -> Kiểm tra read /test_32k.bin 08: 53: 24.758 -> Đọc tệp được sử dụng: 4824 ms, 869.466003 KB / s 08: 53: 24.792 -> Đọc thử /test_64k.bin 08: 53: 29.592 -> Đọc tệp được sử dụng: 4824 ms, 869.466003 KB / s

Bước 12: Làm tròn

Chế độ bus SD 4 bit có hiệu suất tốt nhất, chế độ bus SD 1 bit chậm hơn khoảng 20% và chế độ SPI chậm hơn khoảng 50%. Một trong những lý do chính là lớp giao thức SD_MMC không thực hiện bất kỳ loại khóa nào nhưng SPI thì có. Và chế độ bus SD 4-bit cũng có đường truyền dữ liệu gấp đôi nên về mặt lý thuyết sẽ tăng gấp đôi tốc độ. Nhưng thẻ nhớ MicroSD cũ của tôi không thể hỗ trợ chế độ bus SD 4 bit.

Tôi sẽ đề xuất chế độ bus SD 1 bit trong hầu hết các trường hợp, bởi vì:

  • hiệu suất tốt
  • khả năng tương thích thẻ SD tốt hơn
  • nới lỏng các yêu cầu kéo lên SD
  • chỉ cần 3 chân GPIO
  • cấu hình mã thấp hơn
  • nhiều dev kit, dev board và breakout board có thể sử dụng chế độ này

Đề xuất: