SD Modul funktioniert nicht mehr (Mega2560 / Uno)

Schönen guten Tag zusammen, ich hoffe, dass mir hier jemand Hilfe leisten kann.

Folgendes Problem:
Ich habe meine Schaltung zunächst auf einem Breadboard aufgebaut gehabt und sie dort zur Funktion gebracht. Danach habe ich alle Komponenten (unter Anderem ein SD Leser Modul von LCsoft) in eine Holzgehäuse eingebaut. Beim Funktionstest konnte auf einmal keine SD Karte mehr initialisiert werden.
Daraufhin habe ich mir ein neues Modul bestellt (man weiss ja nie, ob man es evtl zu fest angeschraubt hat, oder weiss der Geier was…) und dieses eingebaut - ebenfalls ohne Funktion. Mein Sketch funktioniert aber mit dem SD Reader auf dem Ethernetshield (W5100) problemlos.

Ich habe auch die Beispielsketche der SD und SDFat Librarys durchprobiert. Auch damit kein Erfolg.

Mit dem “Quickstart” Sketch der SDFat Library wird meistens beim ersten Start nach dem Hochladen des Sketches wohl eine SD Karte und Infos dazu gefunden, aber sie kann nicht gelesen werden.
Sprich eine Info wie “SD Card found, Wiring OK, Cant read Card”.

Fehlerquellen bisher “ausgeschlossen”:

SD Modul → neues bestellt
Sketch → Mit Ethernetshield geht es
Verkabelung → Etwa 500 mal geprüft (Durchgemessen auf Kabelbruch, kalte Lötstellen usw)
SD Karten → 4 Verschiedene vorhanden, alle ohne Funktion

Arduino Board → Das Modul funktioniert weder auf dem Uno, noch auf dem Mega. Das Ethernet Shield funktioniert mit beiden Boards problemlos.

Ich hoffe, es hat jemand noch eine Idee was ich da noch gegen tun kann. Freue mich über alle Vorschläge.

Was mir bisher noch unklar ist:
Es lief alles, als ich nur die Breadboard- Jumper Wire benutzt habe.
Die SD Module stellten erst ihre Funktion ein, nachdem ich die Kabel angelötet hatte.
Hat schon jemand damit Probleme gehabt? Brät man beim löten direkt irgendwas weg?

Joschi: Die SD Module stellten erst ihre Funktion ein, nachdem ich die Kabel angelötet hatte.

Verrate doch bitte mal, um welches SD-Modul es genau geht, z.B. Link zum Shop, zur Schaltung, zum Datenblatt!

Und dann verrate uns die Schaltung, mit der Du das Modul beschaltet hast!

Joschi: Hat schon jemand damit Probleme gehabt?

Das Forum ist voll von Threads, in denen jemand ein Problem hat.

Auch Probleme mit SD-Kartenmodulen sind im Forum tatsächlich schon mal vorgekommen.

Verrate doch bitte mal, um welches SD-Modul es genau geht, z.B. Link zum Shop, zur Schaltung, zum Datenblatt!

SDKarten Modul von LCSoft
Link zu Kaufhaus
Schaltplan im Anhang

Und dann verrate uns die Schaltung, mit der Du das Modul beschaltet hast!

SD → Mega / Uno

GND - nicht belegt
3,3V - nicht belegt
5v → Arduino 5v
CS → Pin 53 / 4
Mosi → Pin 51 / 11
SCK → Pin 52 / 13
Miso → Pin 50 / 12

Das Forum ist voll von Threads, in denen jemand ein Problem hat.
Auch Probleme mit SD-Kartenmodulen sind im Forum tatsächlich schon mal vorgekommen.

Ja, das ist mir bekannt, allerdings lief es ja schon. Die Frage war darauf gemünzt, dass die Probleme bei mir erst nach dem Löten auftraten.

lcsoft SD module.pdf (95 KB)

Joschi: GND - nicht belegt 3,3V - nicht belegt 5v -> Arduino 5v CS -> Pin 53 / 4 Mosi -> Pin 51 / 11 SCK -> Pin 52 / 13 Miso -> Pin 50 / 12

Hast Du den Angebotstext gelesen?

Ich lese dort im Text:

LevelShifter: wird benötigt für MCU mit 5V Pegel, 
die SD Karte Pegel mit 3,3V anzusprechen.

Und was machst Du? Du läßt offensichtlich den LevelShifter komplett weg!

Du schaltest die 5V Ausgangspegel Deines 5V-Arduino-Boards direkt an den SD-Kartenadapter! Und das können SD-Karten nicht ab, die können dabei sogar defekt werden!

Diese Schaltung funktioniert wahrscheinlich bei Deiner Steckboardschaltung deshalb, weil die SD-Karte so viel Strom zieht und die Übergangswiderstände an den Steckstellen so hoch sind, dass der SD-Kartencontroller wegen des auftretenden Spannungsabfalls gerade so noch nicht merkt, dass die IO-Pegel mit 5V statt mit 3.3V ankommen.

Anstelle Deines bei einem deutschen Versender teuer erkauften SD-Kartenadapters ohne Levelshifter hättest Du bei einem Chinaversender für weniger Geld auch bereits einen anderen SD-Kartenadapter mit Levelshifter bekommen können, den Du direkt an die 5V Outputs des Arduino hättest anschließen können. Na ja, mit der richtigen Beschaltung kannst Du den Kartenadapter trotzdem an den Arduino dranschalten.

Aber in Deiner Schaltung fehlt entweder (suche es Dir aus) a) ein LevelShifter oder b) eine handvoll Widerstände in Spannungsteilerschaltung

Oder Du kaufst neu und nimmst einen "SD-Kartenadapter mit 5V/3.3V Levelshifter"!

Dein SD-Kartenadapter hat leider nur einen 5V/3.3V Spannungsregler drauf, weshalb Du ihn an 5V VCC anschließen kannst. Der Levelshifter fehlt aber bei Deinem Adapter. Den LevelShifter brauchst Du nun noch zusätzlich, oder Du machst mit Widerständen eine Spannungsteilerschaltung.

P.S.: Außerdem ist natürlich "GND - nicht belegt" falsch, denn "GND" des Kartenadapters muss natürlich mit GND vom Arduino-Board verbunden sein.

Als Ergänzung noch hier ein Link zu einem älteren Beitrag von mir mit der Minimalbeschaltung des Moduls, wenn Du keinen richtigen Levelshifter hast, sondern nur ein paar Widerstände aus der Bastelkiste abgreifen kannst.

Die dort gezeigte Schaltung gilt für die Arduino Pins am UNO. Für einen MEGA müßtest Du die entsprechenden SPI-Pins auf dem MEGA verwenden.

Ach, besten Dank!

Hab natürlich nicht dran gedacht, dass die Datenpins ja auch 5v rausgeben :fearful: Widerstände hab ich hier, dann bastel ich mal los und gebe Rückmeldung.

Und GND "Nicht belegt" ist einer der Beiden. Neben dem Miso Pin ist noch ein GND, den ich genutzt habe.