以下是SD NAND在SDIO和SPI模式下的详细接线对比及连接方式:
连接7根信号线 + 电源地:
SDIO模式特点:
最高传输速度:50MHz(理论100MB/s)
需要ESP32的SDMMC控制器支持
所有数据线必须连接
适合高速读写(视频/大文件)
连接4根信号线 + 电源地:
SPI模式特点:
最高传输速度:20MHz(实测约6MB/s)
使用标准SPI接口
只需4根信号线
适合低速应用(日志存储/配置存储)
#include "driver/sdmmc_host.h"#include "sdmmc_cmd.h"void init_sdio() { sdmmc_host_t host = SDMMC_HOST_DEFAULT(); sdmmc_slot_config_t slot = SDMMC_SLOT_CONFIG_DEFAULT(); // 配置引脚 slot.width = 4; // 4-bit模式 slot.clk = GPIO_NUM_14; slot.cmd = GPIO_NUM_15; slot.d0 = GPIO_NUM_2; slot.d1 = GPIO_NUM_4; slot.d2 = GPIO_NUM_12; slot.d3 = GPIO_NUM_13; sdmmc_card_t* card; esp_err_t ret = sdmmc_card_init(&host, &slot, &card); if (ret != ESP_OK) { printf("SDIO初始化失败"); }}
#include <SPI.h>#include <SD.h>#define CS_PIN 5void setup() { SPI.begin(18, 19, 23, CS_PIN); // SCK, MISO, MOSI, CS if (!SD.begin(CS_PIN)) { Serial.println("初始化失败"); }}
优先选SDIO模式当:
需要高速读写(>10MB/s)
使用ESP32-S3等支持50MHz SDIO的芯片
硬件引脚充足
选SPI模式当:
项目需要跨平台兼容
硬件引脚受限
速度要求不高(<2MB/s)
使用ESP8266等无SDIO控制器的芯片
关键注意:
两种模式不可热切换,需硬件固定接线方式
SD卡需格式化为FAT32文件系统
上电时保持CS为高电平(SPI模式)
电源必须稳定3.3V(最大电流200mA)
下一篇:没有了!