ESP32: "Ошибка: SD-карта не найдена или не инициализирована" с использованием SD.begin()

Я работаю над проектом с ESP32, где хочу считывать/записывать данные на SD-карту. Однако я постоянно получаю следующую ошибку в серийном мониторе:

Initializing the SD card...
Error: SD card not found or not initialized.

Моя конфигурация:

  • Плата: ESP32 WROOM 32
  • Модуль: Стандартный модуль для SD-карт
  • SD-карта: MicroSD, отформатированная в FAT32

Подключение оборудования (ESP32 ↔ модуль SD):

  • MISO → GPIO 19
  • MOSI → GPIO 23
  • SCK (CLK) → GPIO 18
  • CS (Chip Select) → GPIO 5
  • VCC → 3.3V
  • GND → GND

введите сюда описание изображения

#include "FS.h"
#include "SD.h"
#include "SPI.h"

#define SD_MISO 19
#define SD_MOSI 23
#define SD_SCLK 18
#define SD_CS 5  // Chip Select (CS)

void setup() {
  Serial.begin(115200);
  delay(1000);

  Serial.println("Initializing the SD card...");
  if (!SD.begin(SD_CS, SPI, 4000000)) {  // SPI speed: 4 MHz
    Serial.println("Error: SD card not found or not initialized.");
    return;
  }

  Serial.println("SD card successfully initialized!");
}

void loop() {
  // Nothing here
}

Что я проверил на данный момент:

  • SD-карта правильно отформатирована в FAT32.
  • Физические соединения правильные и надежно подключены.
  • Я пробовал подавать на модуль SD-карты напряжение 5 В вместо 3,3 В, но проблема сохраняется.
  • Я еще не заменил SD-карту на другую, чтобы исключить ее неисправность. Однако она распознается компьютером.
  • Я не пробовал снижать скорость SPI, но это не решило проблему.

Почему моя SD-карта не распознается ESP32? Есть ли какие-то ограничения или проблемы с контактами SPI ESP32? Может ли проблема быть связана с самим SD-модулем или библиотекой SD?

Есть ли у вас инструменты или методы, которые вы могли бы порекомендовать для устранения этой проблемы? Заранее спасибо за помощь!


Ответы (0 шт):