Hallo,
ich möchte gerne mit einem ESP32-Wroom-32 und ESP-IDF Daten von einer
SD-Karte lesen.
Dazu habe ich einen mikroSD-Karten-Modul wo man über SPI kommunizieren
kann.
Verbunden habe ich das Modul an HSPI und mit dem 3,3 V vom ESP-Board.
Jetzt habe ich das Beispiel sdspi (esp-idf-v5.4) genommen und die Pins
aus der Konfig angepasst. Dennoch bekomme ich einen Fehler
1
I (317) main_task: Started on CPU0
2
I (327) main_task: Calling app_main()
3
I (327) example: CONFIG_EXAMPLE_FORMAT_IF_MOUNT_FAILED: 1
4
I (327) example: CONFIG_EXAMPLE_DEBUG_PIN_CONNECTIONS: FALSE
Obelix X. schrieb:> Was ist bei dir anders als in folgendem Guide?>> https://randomnerdtutorials.com/esp32-microsd-card-arduino/
Anders ist:
1) ich benutze ESP-IDF und nicht Arduino
2) ich benutze die Pins für HSPI und nicht VSPI (die Pins sind aber für
HSPI konfiguriert, siehe Log)
3) meine SD-Karte ist nur 512 MB groß
Angeschlossen habe ich es
SD-Card-Reader -> ESP32-Wroom-32
GND -> GND
VCC -> 3V3
CS -> GPIO15
MOSI -> GPIO13
CLK -> GPIO14
MISO -> GPIO12
Harald K. schrieb:> Ja, und?>> Die Fehlermeldung ist sehr ausführlich und gibt Hinweise, was Du Dir> ansehen solltest.>> Hast Du irgendwas davon berücksichtigt?
die erste Fehlermeldung sagt mir, dass keine SD-Karte drinn ist.
Die ist aber eingelegt.
Die zweite sagt, dass ein pull-up resistor vorhanden sein soll.
Da lese ich aber immer unterschiedliches. In den ganzen Tutorials ist
nirgends ein Widerstand eingesetzt.
Von wo nach wo (und wie groß) müsste dieser denn sein?
Chandler B. schrieb:> Von wo nach wo (und wie groß) müsste dieser denn sein?
Eine der Fehlermeldungen verweist auf "readme.md". Hast Du da
reingesehen?
(Ich kann das nicht für Dich, weil ich da erst mal rauskramen müsste,
was auch immer Du Dir da für Libraries zusammengeklickt hast)
Harald K. schrieb:> Chandler B. schrieb:>> Von wo nach wo (und wie groß) müsste dieser denn sein?>> Eine der Fehlermeldungen verweist auf "readme.md". Hast Du da> reingesehen?>> (Ich kann das nicht für Dich, weil ich da erst mal rauskramen müsste,> was auch immer Du Dir da für Libraries zusammengeklickt hast)
Zusammengeklickt habe ich nichts. Ich habe eins zu eins das Beispiel
genommen und die Pins angepasst.
1
Although it is possible to connect an SD card breakout adapter, keep in mind that connections using breakout cables are often unreliable and have poor signal integrity. You may need to use lower clock frequency when working with SD card breakout adapters.
If your host and slave device are on separate boards, replace one of them with a board that has pull-ups. For the list of Espressif's development boards with pull-ups, go to Development Boards.
5
6
Attach external pull-ups by connecting each pin which requires a pull-up to VDD via a 10 kΩ resistor.
aber auch mit 10kOhm bekomme ich die selben Fehler
Damit hatte ich auch gekämpft:
SD_MMC.h benutzt den ESP32 MMC Code, ist etwas schneller.
SD.h ist allgemeiner und benutzt standarmässig HSPI, kann aber eine
grössere Anzahl dateien gleichzitig öffnen(wenn konfiguriert).
Wichtig ist das immer die richtige von 4 internen SPI Engines verwendet
wird, Nummer 1 und 2 werden Intern benutzt.
Hier meine Test mit auskommmentieten Fehlern.
1
//#define VSPI 3 //SPI 3 bus normally attached to pins 5, 18, 19 and 23, but can be matrixed to any pins
2
SPIClass SD_SPI = SPIClass(VSPI); // Neither HSPI nor VSPI=CYD seem to work
3
//SPIClass SD_SPI = SPIClass(BOARD_SDCARD_MISO,BOARD_SDCARD_SCK,BOARD_SDCARD_MOSI,BOARD_SDCARD_CS); // Neither HSPI nor VSPI seem to work
SD_MMC 1-bit mode bei ESP32 funtioniert nur bei feste pinbelegung ! Da
kan mann nicht ueber die pin matrix andere pins auswahlen ! Nur folgende
pins functionieren :
#define SDCARD_SS 13
#define SDCARD_CLK 14
#define SDCARD_MOSI 15
#define SDCARD_MISO 2
SD_CARD_MISO wird nicht genutzt, soll aber mit ein pullup initialisiert
werden.
Oder du verwendet SPI mode, dort sind die pins frei wahlbar.
Siehe auch
https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/sdmmc_host.html
Harald K. schrieb:> Chandler B. schrieb:>> aber auch mit 10kOhm bekomme ich die selben Fehler>> Zeig ein Bild Deines Aufbaus. Tüddeldraht auf dem Frickelboard?
Ich habe den Reader mit jumperkabel direkt mit dem ESP verbunden.
Rüdiger B. schrieb:> Dir ist klar das der Reader auf 5 Volt läuft und der ESP32 mit 3,3 Volt> ?
mhh, war davon ausgegangen, dass die Signale trotzdem mit 3V laufen
würden.
habe jetzt einen SD-karten adapter direkt angeschlossen. Damit scheint
es dann zu funktionieren.
Für die Spannung nehme ich dann jetzt natürlich nur die 3,3V