Forum: Compiler & IDEs MMC CMD0 Response, oder nicht?


von Michael Sonst (Gast)


Angehängte Dateien:

Lesenswert?

Hi,
ich beschäftige mich momentan mit MMC-Karten im SPI Modus, leider haben
sich bei mir schon jetzt einige Fragen aufgeworfen.

Aus der MMC-Systemspezifikation 3.1 entnehme ich, dass auf das Kommando
CMD0 keine Response kommt.

Dennoch habe ich u.A. hier im Forum, von Ulrich Radig, und aus der
ProcyonAvrLib in einigen Codeschnippseln entdeckt, dass nach dem
Kommando CMD0 auf die Antwort '0x01' gewartet wird.
1
  do
2
  {
3
    // send dummy bytes with CS high before accessing
4
    spiTransferByte(0xFF);
5
    spiTransferByte(0xFF);
6
    spiTransferByte(0xFF);
7
    spiTransferByte(0xFF);
8
    // resetting card, go to SPI mode
9
    r1 = mmcSendCommand(MMC_GO_IDLE_STATE, 0);
10
    #ifdef MMC_DEBUG
11
    rprintf("MMC_GO_IDLE_STATE: R1=0x%x\r\n", r1);
12
    #endif
13
    // do retry counter
14
    retry++;
15
    if(retry>10) return -1;
16
  } while(r1 != 0x01);
(Procyon)
1
  //Sendet Commando CMD0 an MMC/SD-Karte
2
  Timeout = 0;
3
  char CMD[] = {0x40,0x00,0x00,0x00,0x00,0x95};
4
  while(tmp!=1)
5
  {
6
    tmp = Write_Command_MMC (CMD);
7
    //printf ("Return Code from MMC/SD Init CMD0 %x\n",tmp);
8
    Timeout++;
9
    if (Timeout > 20)
10
      {
11
      return(1); //Abbruch bei Commando1 (Return Code1)
12
      }
13
  }
(Ulrich Radig)

Meine Frage ist nun, habe ich eine veraltete Spezifikation, oder weiss
jemand etwas darüber, warum das so gemacht wird?

Freundlichen Gruss
Michael Sonst

von Sobczak (Gast)


Lesenswert?

in SPI mode wird jedes kommando bestätig (CMD0 wird mit R1 bestätigt).
besser als mit der MMC-specifikation kommt man mit einem data-sheet
voran (ich habe mit dem datenblatt von infineon SLA F0064 gearbeitet)

von Sobczak (Gast)


Angehängte Dateien:

Lesenswert?

hier ein beispielprojekt von glyn.

von Michael Sonst (Gast)


Lesenswert?

Hmm auch in der Hitachi beschreibung von der Seite von Ulrich Radir
steht, dass CMD0 kein Response liefert. Kann mir irgendwie nicht
vorstellen, dass die beide mist schreiben. In deinem Beispiel wird es
allerdings auch erwartet so wie's aussieht.
Wäre froh, wenn mir jemand sagt warum es alle anders machen als in der
Spezifikation. Habe gerade in unserer Hardwareabteilung gefraget, die
machen es ohne.

Gruss
Michael

von Sobczak (Gast)


Lesenswert?

in dem datenblatt von infineon und sandisk (beide sind fast identisch)
steht dass jedes kommando in spi mode bestätigt wird. und es
funktioniert auch so. hol dir von infineon: DS0204-1.00 und schau auf
die seite 73, tabelle 45 (alle spi-commands mit responses).

von Michael Sonst (Gast)


Lesenswert?

Hi,
tut mir leid, kann die Datei nicht downloaden, die unter Google unter
dem Link erscheint. Kannst du mit die Spezifikation evtl. schicken?

Gruss
Michael

von Sobczak (Gast)


Lesenswert?

kein problem. brauche nur die adresse.

von Michael Sonst (Gast)


Lesenswert?

Danke dir.

focus01 (at) gmx (.) de

Grüsse
Michael

von Michael Sonst (Gast)


Lesenswert?

Mist!
Ich nehme alles zurück und behaupte das Gegenteil!
Habe die ganze Zeit unter MMC-Mode nachgeschaut.
Die Antwort im SPI-Mode ist auch in meiner Beschreibung
(MMC-Systemspezifikation 3.1) mit Response im R1 beschrieben.

Danke dir für deine Hilfe

Grüsse
Michael

von msr (gast) (Gast)


Lesenswert?

Hallo,
ich beginne gerade eine MMC Karte in mein Microcontroller System über 
eine SPI Schnittstelle zu integrieren und stelle fest, daß es kaum Daten 
darüber gibt.

Mir fehlt auch die MMC Spezifikation, kann mir jemand sagen, wo ich die 
bekommen kann, oder mir bitte zuschicken? Oder bibt es womöglich für ein 
eZ80/Z80 System schon Treiber?

Grüße
Heiko

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.