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?
Есть ли у вас инструменты или методы, которые вы могли бы порекомендовать для устранения этой проблемы? Заранее спасибо за помощь!