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!!!
Danke für die Antwort!! Aber meine Frage ist wie kommt man drauf, dass CMD0 = 0x40 0x00 0x00 0x00 0x00 0x95 ist?
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.
Wie halt bei den Laufzeitfehler-Nummern von Windows & Co. Nicht die Zahl ist wichtig, sondern der Grund = Inhalt des Fehlers.
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.
Aus welchem Datenblatt ist das? Bei dem zu meiner Karte (SanDisk) gibts den Befehl 8 z.B. garnicht.
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.
Ich habs aus diesem Datenblatt http://www.sdcard.org/developers/tech/sdcard/pls/Simplified_Physical_Layer_Spec.pdf SEITE 106.
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
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.