Forum: Mikrocontroller und Digitale Elektronik SD-SPI keine Antwort auf CMD0


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mozorio (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Jim M. (turboj)


Lesenswert?

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?

von Falk B. (falk)


Lesenswert?

Dein Schaltplan ist nur schwer lesbar. Es fehlt ein 10K Pull-Up an DO!

von Mozorio (Gast)


Lesenswert?

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.

von Mozorio (Gast)


Angehängte Dateien:

Lesenswert?

Ich hoffe man erkennts. Kondensatoren hab ich wie gesagt schon an 
anderer Stelle. Also an V3.3 und an V5..
Gruß

von Mozorio (Gast)


Lesenswert?

Auf meinem Oszi Bild ist auch zu sehen, dass meine Highpegel leicht 
gedämpft erscheinen. Kann das stören? Kommt das durch den Pegelwandler?

von Falk B. (falk)


Lesenswert?

@ 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.

von Mozorio (Gast)


Lesenswert?

Gute Idee! Hab ich auch gleich mal probiert, aber leider hat auf dem 
Oszi nichts gewackelt...

von Mozorio (Gast)


Lesenswert?

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!

von Falk B. (falk)


Lesenswert?

@ 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.

von Mozorio (Gast)


Angehängte Dateien:

Lesenswert?

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!

von Michael (Gast)


Lesenswert?

Most significant Bit first??

Dein CMD0 sollte 0x40 0x00 0x00 0x00 0x00 0x95 sein...

sieht bei dir genau falsch rum aus

von Grundschüler (Gast)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.