SD Karte: Befehle berechnen??

OP #1500510
Lesenswert?

Hallo!!! Ich lerne gerade eine SD-Karte zu initialisieren. Und das 
klappt schonmal. Bis auf die Befehle, ich versteh irgendwie nicht ganz 
wie man die berechnen muss. Da gibts zwar formeln aber ich weiß nicht 
was ich da einsetzen muss. Im Datenblatt steht, dass CMD0 binär: 000000 
entspricht und das CMD39 100111 entspricht. Die CMD-Zahl ist auf 
jedenfall keine hex, was dann? Kann vielleicht einer von euch dem blöden 
robo-man helfen??
Danke schonmal im Vorraus!!!
Gast #1500527
Lesenswert?

Es kommt nicht darauf an, dass CMD0 gleich IRGENDWAS ist. Es kommt 
darauf an, dass du, wenn du CMD0 senden möchtest, IRGENDWAS sendest.

Die Namen der Kommandos sind wohl willkürlich, statt CMD0, CMD1, CMD2 
hätte man auch Mozart, Brahms und Pachelbel nehmen können.
OP #1500537
Lesenswert?

Gut Okay!! Aber das hilft mir trotzdem nicht weiter. Ich bin bei der 
initialisierung und habe CMD0 (40 00 00 00 00 95) erfolgreich gesendet 
und eine antwort 0x01 bekommen. Laut datenblatt muss ich jetzt CMD8 
senden. Und wie kann ich damit meinen 6 byte befehl zusammenstellen? Ich 
versteh nicht warum es im datenblatt so kompliziert gemacht ist.
Angehängte Dateien:
OP #1500551
Lesenswert?

Okay, habs herausgefunden. Hab über google eine .pdf datei gefunden, in 
der es ziemlich gut erklärt ist 
(www.uni-koblenz.de/~physik/informatik/ECC/sd.pdf). Und wie es drin 
steht haben die CMD-Zahlen doch was mit den Befehlen zu tun.
Danke für eure bemühungen und die schnellen Antworten.
Schönen Sonntag Nachmittag wünsch ich euch.
#1500565
Lesenswert?

Du solltest dich am besten nur an der Spezifikation von www.sdcard.org 
orientieren, denn ich habe leider schon einige Beschreibungen gefunden 
die sich nicht an die Spezifikation halten. Gerade das Initialisieren 
wird in den meisten fertigen Codebeispielen mit CMD1 gemacht was von der 
MMC Karte stammt. Eine SD-Karte hat diesen Befehl aber nur noch 
(teilweise) wegen der Kompatibilität implementiert. Die richtige Art 
eine SD-Karte zu initialisieren geschieht aber per ACMD41 wobei eine 
Unterscheidung zwischen Spec 1.0 und Spec 2.0 sowie SD und SDHC dabei 
gemacht werden sollte (siehe Seite 95 in der Spec).
Ich habe vor ein paar Monaten selber angefangen mit SD-Karten und mir 
eine Init Routine geschrieben die sehr zuverlässig für sämtliche Arten 
von SD-Karten funktioniert, basierend auf der original Spezifikation von 
www.sdcard.org.

Ciao,
     Rainer

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren