mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD Karte: Befehle berechnen??


Autor: E. L. (robo-man)
Datum:

Bewertung
0 lesenswert
nicht 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!!!

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich ist sie willkürlich gewählt.

Autor: E. L. (robo-man)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort!!
Aber meine Frage ist wie kommt man drauf, dass
CMD0 = 0x40 0x00 0x00 0x00 0x00 0x95 ist?

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie halt bei den Laufzeitfehler-Nummern von Windows & Co.
Nicht die Zahl ist wichtig, sondern der Grund = Inhalt des Fehlers.

Autor: E. L. (robo-man)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus welchem Datenblatt ist das?
Bei dem zu meiner Karte (SanDisk) gibts den Befehl 8 z.B. garnicht.

Autor: E. L. (robo-man)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: E. L. (robo-man)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs aus diesem Datenblatt 
http://www.sdcard.org/developers/tech/sdcard/pls/S... 
SEITE 106.

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.