Hallo, ich habe an meinen ATmega 1284p ein SD Karte über einen Pegelwandler (5V-3.3V) angeschlossen. Beim Senden des CMD0 bekomme ich keine Antwort von der SD Karte. Ich habe auf die "DOs und DON'Ts bei der Ansteuerung" von Mikrocontroller.net geachtet. Auf dem Oszibild sieht man meinen MOSI, CLK, CS und die (nicht reagierende) MISO Leitung. Was mir nicht ganz normal vorkommt ist, dass der DO Pin der SD Karte beim Einschalten also auch noch wenn CS auf low gezogen ist kein Potential (0V) hat. Deutet dies auf einen schlechten Kontakt im Slot hin? (Wobei ich diesen nun schon zwei mal getauscht habe...) Oder könnte ich noch andere Fehlerquellen übersehen haben? Passt das CMD0 Signal? Müsste der Fehler somit an der SD Karte gesucht werden? (Sie ist auf Fat 16 formatiert) Gruß und Danke!
DO ist Open-Drain bevor die Karte in den SPI Modus geht. Da gehört ein Pullup dran. Hast Du an die 80 Dummy Clocks gedacht? Bei dem Schaltplan sehe ich nicht durch. Gibt es einen Kondensator auf VCC der SD Karte?
Dein Schaltplan ist nur schwer lesbar. Es fehlt ein 10K Pull-Up an DO!
Den Pull-Up hab ich nachträglich noch dran gehängt. An die 80 Dummy Clks hab ich auch gedacht. Und Kondensatoren habe ich an anderer Stelle am VCC. Ich schau, dass ich den Schaltplan ein wenig sortiere und nochmal hochlade.
Ich hoffe man erkennts. Kondensatoren hab ich wie gesagt schon an anderer Stelle. Also an V3.3 und an V5.. Gruß
Auf meinem Oszi Bild ist auch zu sehen, dass meine Highpegel leicht gedämpft erscheinen. Kann das stören? Kommt das durch den Pegelwandler?
@ Mozorio (Gast)
>gedämpft erscheinen. Kann das stören? Kommt das durch den Pegelwandler?
Ahhhh, VORSICHT! Diese bidirektionalen Pegelwandler mit automatischer
Richtungsumschaltung sind tricky. Ich glaube der Open Drain von DO kann
den Eingang nicht stark genug treiben, um die Umschaltung zu erzwingen!
Klemm mal DO vom Pegelwandeler ab und miss direkt am DO Pin, natürlich
mit Pull-Up nach 3,3V!
Dann sollte was wackeln. Dann kann man testhalber mal DO direkt mit MISO
verbinden, den Pegelwandler dort natürlich auch vorher abklemmen.
Gute Idee! Hab ich auch gleich mal probiert, aber leider hat auf dem Oszi nichts gewackelt...
Im Moment arbeite ich Modus in welchem CPOL und CPHA auf eins gesetzt sind. Schalte ich beide auf 0, also Mode null, so kommt ein anderes MOSI Signal raus.. Aber das Signal das ich oben habe sieht doch wie der CMD0 aus?! Der Fehler ist nach dem Osziverlauf doch eher in der Hardware zu suchen? Gruß und danke!
@ Mozorio (Gast) >Im Moment arbeite ich Modus in welchem CPOL und CPHA auf eins gesetzt >sind. Falsch! >Schalte ich beide auf 0, also Mode null, so kommt ein anderes MOSI >Signal raus.. RICHIG! >Der Fehler ist nach dem Osziverlauf doch eher in der Hardware zu suchen? Nein, da stecken mehrere Probleme drin. Und tu dir und uns einen Gefallen. Bei so einem schönen Digitaloszi sollte man die Grundlinie der Kanäle auf den Rasterlinien ausrichen, damit sieht man deutlich besser, wo die Spannung liegt. Und die Bildschirmhöhe möglichst ausnutzen, nicht alles so eng zusamenschieben.
Hallo, jetzt arbeite ich im Mode 0. Im Signal sind nun weitere "Kanten" zu sehen. Dies passt doch nicht zum CMD0? Und eine Antwort (R1) bekomme ich wieder nicht. War das Signal, das ich im anderen Mode hatte, nicht besser? Dies sah für mich aus wie der CMD0? Gruß und danke für weiter Tipps!
Most significant Bit first?? Dein CMD0 sollte 0x40 0x00 0x00 0x00 0x00 0x95 sein... sieht bei dir genau falsch rum aus
Ich hatte am Wochenende das gleiche Problem- sd-Karte an M1284. Versucht habe ich den foolproof_avr-code von elm chan. Der ist jedenfalls für mich nicht foolproof genug. Es klappte nicht. Geklappt hat es dann mit einer anderen lowlevel-Datei. Wenn du den Atmega mit 3,3 Volt betreibst, sparst du dir das Problem mit dem level-shifting.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.