PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SPI MMC/SD-Karte Commando-Umsetzung



Banzai
27.06.2007, 22:30
Hi Leutz,

ich stell mich mal wieder doof.
Ich habe das Hitachi-Datenblatt für MMC/SD-Karten, den Code vom Ulrich Radig www.ulrichradig.de.

Da ich MMC/SD mit SPI ATMega32 ansprechen möchte, weiß ich zumindest inzwischen, daß man da die Kommandos CMD0...usw. senden muß.
Was mir fehlt, sind die Werte dieser Kommandos. Was ist CMD0? Wo findet man diese Infos? Aus dem Code werde ich auch nicht schlau, da der Zusammenhang zwischen gesendetem Wert und entsprechenden Kommando mir völlig schleierhaft ist.

Google'n half auch nix, Tipps gibt es jede Menge, aber ich will nicht irgendeine Code-Kopie zum laufen bringen, ich will verstehen was da passiert.

Kennt jemand nützliche Infos darüber?

Wäre nettttttttt!!!!!

Banz

geronet
28.06.2007, 10:17
Das hab ich mich am Anfang auch gefragt, ist aber ganz einfach. Du musst dir nur mal n Beispiel und die Bytesequenz im Datenblatt anschauen:

//Sendet Commando CMD0 an MMC/SD-Karte
uint8_t CMD[] = {0x40,0x00,0x00,0x00,0x00,0x95};

//Sendet Commando CMD1 an MMC/SD-Karte
CMD[0] = 0x41; //Commando 1
CMD[5] = 0xFF;

Grüsse, Stefan

Banzai
28.06.2007, 13:57
Hi Stefan,

so wie ich das momentan sehe ist der "Offset" = 0x40.

CMD0 = 0x40
:
CMD15 = 0x4F
:
CMD21 = 0x55
:
usw.

Aber wo zum *Gegenspielervomliebengottdemseinnamemannichtschre ibensolltesonstholtereinenindieelektronikerhölle* steht das?
OK, ich hab natürlich das Datenblatt nicht Wort für Wort gelesen, aber solche Informationen, sollte man meinen, stehen gut sichtbar und prompt auffindbar an einer übersichtlichen Stelle....

Naja, ich danke dir jedenfalls vom ganzen Herzen und das wird bestimmt nicht meine letzte Frage zu MMC/SD am ATMega32 gewesen sein...

Banzai

mcgero
03.07.2007, 15:41
Ich versuche auch seit 2 Tagen eine SD-Karte an einen Dallas-MC B80C320
anzuschließen. In den Datenblättern siegt es sehr einfach aus. Der D80C320 hat leider kein SPI-Interface, also per Software nachgebildet. CMD40 scheint zu funktionieren, da ich als R1 0x01h zurück bekomme. Der Aufruf vonCMD41 bringt jedoch auch nur 0x01h als Antwort. Mein Problem scheinen diese Ncr-Blöcke nach dem Senden deS CMD zu sein. Weiß jemand wie die zu verstehen sind?

Gruß Gereon