MMC CMD0 Response, oder nicht?

Gast #285183
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
Angehängte Dateien:
Gast #285184
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)
Gast #285186
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
Gast #285187
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).
Gast #285191
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
Gast #1137549
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

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