SD Karte geht nicht

Daraus ergibt sich, dass weder SD_MMC_1BIT_MODE noch SINGLE_SPI_ENABLE Sinn machen.
Das Lolin32-Profil würde passen. Allerdings sei an dieser Stelle erwähnt, dass SD via SPI angebunden ist, was einerseits relativ langsam ist. Andererseits reißen beim Dateiupload via WLAN gerne mal die Datenübertragungen ab und man bekommt es nicht mit. Dann hat man unvollständige Dateien auf der SD.
Also wirklich empfehlen kann ich das nur, wenn keine Uploads per WLAN gemacht werden. Weil nur zum Abspielen wäre dieses Problem egal.

Die Daten spiele ich immer direkt auf die SD KArte, deshalb dürfte das kein Problem sein für mich. Hättest du den einen Lösungsanzatz für mich? Ich hab das ganze ja so schonmal aufgebaut und seit zwei Jahren oder so in Betrieb. Wenn beide keinen Sinn ergeben, muss ich sie also auskommentieren. Hat ja aber auch nicht funktioniert.

Ich kenne halt den Schaltplan nicht. Vielleicht sind auch Mosfets falsch eingelötet.
Im Endeffekt war der Ansatz, SD über SPI anzubinden, nur in der ersten Zeit von ESPuino aktuell. Es per SDMMC zu tun hat halt den Vorteil, dass es schneller ist und auch einen GPIO weniger benötigt.

Musst halt auf jeden Fall drauf achten, dass du das lolin32-Profil benutzt und die darin enthaltenen Einstellungen zu deinem Board passen.

Wichtig ist halt insbesondere GPIO 17, denn der steuert das Gate des N-Mosfet an, der dann das Gate des P-Mosfets auf GND zieht, so dass dieser die 3.3 V durchschaltet. Diese 3.3 V müssen halt da sein im Betrieb, weil sonst läuft z.B. SD nicht. Und ohne SD startet ESPuino nicht.

Hier mal die Bilder des Boards, da kann man den Schaltplan ganz gut erkennen. Ansonsten habe ich ihn damals nach deiner Vorlage verdrahtet. Ich geh auch davon aus, dass das passt. Ich habe das selbe Setup ja schon am laufen und das seit gut zwei Jahren.


Das Lolin Profil wird verwendet. Die GPIOs passen soweit auch. Das SD Karten Modul hat 3,3V bis der ESP in Deepsleep geht, laut Monitor.

GPIO17 geht bei meinem Schaltplan auf den 1K Widerstand, der dann auf das IRL3103 Mosfet geht.

@compactflash Du hast doch SD via SPI immer mal wieder im Einsatz. Das funktioniert grundsätzlich, oder?

@biologist
Schon länger nicht mehr . Das letzte mal ausführlicher hier. Ich wollte es immer nochmal testen weil damit keine Störgeräusche auftreten . Da ich aber neue Hardware in 4 Layer einsetzen will habe ich das nie mehr ausprobiert.

Gut, aber sieht so aus, als ob es grundsätzlich laufen müsste.
@maxxe Dann musst man alle GPIOs abgleichen. Und: Hast du auch wirklich in das passende Profil gewechselt? Bei VSC sieht man das links unten, was ausgewählt ist. Von dem, was standardmäßig in der settings.h steht, muss auf jeden Fall SDMMC deaktiviert werden. Der Rest müsste eigentlich so laufen (sofern alle GPIOs passen).

@biologist Hatte letztens SPI getestet sowohl mit Master als auch DEV-Branch, Board war Lolin D32 Pro (HAL=4) mit integrierten SD-Slot (SPI).
Funktioniert Alles, ist nur deutlich langsamer beim Web-Upload!

1 „Gefällt mir“

Profil
Hier sieht man das eingestellte Profil.

Profil2
Hier was alles eingestellt ist, hab ich aber so gelassen wie es vorgegeben ist. Ich hab nur ;board_build.flash_mode = qio auskommentiert, weil ich sonst nicht flashen konnte.


Hier die settings.h, wo ich die SD_MMC auskommentiert habe.


Und hier die GPIOs, die auch auf der Platine genau so angeschlossen sind. Ich habs extra durch gepiepst.



Hier nochmal die Leiterbahnen nach gezeichnet.

Vielleicht fällt euch ja was auf was nicht richtig ist. Ich werd als nächtes ein anderes SD Modul testen. Ich Depp hab aber alle fest verlötet und muss erst mal schaun wie ichs wieder weg bekomm. Ich hab Online noch gelesen, das es wohl probleme mit der arduino-esp32 lib ab 2.0 Probleme gibt. Aber ich glaub es wird eh die 1.6 eingebunden wenn ich das richtig gefunden habe.

Im Falle vom SD-Modul ist das gut, weil das zu sockeln führt zu Problemen.
Was ich allerdings immer sockeln würde, das ist das Develboard.

Ist es möglich, diese Software-revision: 20210930-1 herunter zuladen? Die läuft auf der anderen Box. Ich weiß sonst wirklich nicht mehr weiter.

Daraus ergibt sich:

git clone https://github.com/biologist79/ESPuino
cd ESPuino
git reset --hard 3c39718

Oder halt aus VSC heraus. Die Revision hast ja jetzt :slight_smile:

Ich habe jetzt mal diesen Arduino Sketch gefunden und auf den ESP kopiert. Er liest die Karte, schreibt eine Datei und benennt diese um. Heißt ja, dass das SD Modul funktioniert, oder? Verwendet werden die FS.h, SD.h und SPI.h lib.

Mit der alten Version funktioniert es sofort. :man_shrugging: Wie kann ich den jetzt rausfinden, welche Version noch geht und welche nicht? Kann ich Schritt für Schritt die git version hoch ziehen und testen? Iwann dürfte es ja dann nicht mehr klappen und dann könnte man schaun an was es liegt. Wenn du die Zeit dafür aufwenden möchtest.

Ja. Da hast bisschen Arbeit, hehe
Ob hoch nach reset geht weiß ich allerdings nicht. Ggf musst eher in der anderen Richtung gehen.

Also hochgehen mit --reset funktioniert. Ich bin jetzt bei Software-revision: 20211203-2 angekommen. Die geht noch. Ich werde weiter testen. Werde jetzt mal in 6 Monate Schritten hoch gehen.

Asche auf mein Haupt! Habe gerade die Revisionen durchgeschaut & hier wohl einen Copy&Paste Fehler verursacht:;-(

Es ging darum den ESPuino auch ohne SD Karte lauffähig zu machen z.B. für einen reinen Webplayer. Die Bedingung oben ist natürlich falsch. So ist es richtig:

#if !defined(SD_MMC_1BIT_MODE) && !defined(SINGLE_SPI_ENABLE)

Werde das gleich korrigieren, Sorry für diie Unannehmlichkeiten!

Dann werd ich das doch gleich testen, wenn die neueste Version Online ist :slight_smile: Wenns geht, kostet das aber ein Bier :smiley: :smiley:

Bei mir sieht es aber eh so aus, das müsste ja stimmen:

Der Bug ist im DEV-Branch, Du scheinst den Master zu verwenden.

Was mir auffällt: Du scheinst beide SD Compilershalter gesetzt zu haben. Schau in settings.h, es muss für SPI so gesetzt sein:

	//################## select SD card mode #############################
	//#define SD_MMC_1BIT_MODE              // run SD card in SD-MMC 1Bit mode (using GPIOs 15 + 14 + 2 is mandatory!)
	#define SINGLE_SPI_ENABLE             // If only one SPI-instance should be used instead of two (not yet working!)

Dann werde ich mal auf die DEV gehen und nochmal testen. Ich dachte ich müsste beide aus machen.