mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MMC Card und M16C will nicht so richtig


Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich versuche gerade eine MMC Card an SIO3 vom Controller aus
anzusprechen.

Habe mir dafür div. Beispiele angeschaut.

Jetzt ist es so, das das Reset Kommando (CMD0) nach ca. 30 x pollen mit
0x01 beantwortet wird.
Jetzt kommt Kommando CMD1 hinterher. Aber auf das Kommando kommt nie
die gewünschte 0x00 zurück.

Hat jemand eine Idee was man da noch machen kann?

Danke!

Achso: die MMC ist über einen 3,3V umsetzer am 5V Controller
angeschlossen. Geschwindigkeit liegt bei ca. 20 kHz.

Gruss
Torsten

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sende zwischen den Kommandos, bzw vor dem naechsten Kommando mal ein
paar 0xff.

Olaf

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Torsten,

ich versuche grade auch mit dem 16C80 eine MMC-Karte anzusprechen,
komme aber mit der Spec nicht weiter. Die Kommandos bereiten mir
Verständnisprobleme: hier steht zwar CMD0 entspricht GO_IDLE_STATE aber
was heisst das, es muss doch für den GO_IDLE_STATE einen entsprechenden
Hex-Wert geben, oder bin ich da auf dem Holzweg?

ANdy

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@olaf: Ok, probier ich morgen gleich mal aus!

@andy: ja, die Kommandos fangen bei 0x40 an. Also CMD0 = 0x40. CMD1 =
0x41 usw.
Wobei in der Spec nicht wirklich ersichtlich ist, was mit den oben
beiden Bits passiert. Aber das mit der 0x40 machen alle so :-)

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in welcher Doku stehen denn die Kommandos?

Autor: Torsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in dem hier:

www.sandisk.com/pdf/oem/manual-rs-mmcv1.0.pdf

Gruss

Autor: Andy (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche seit Tagen meine SD-Karte mit dem 16C80 anzusprechen, ohne
Erfolg. Mein Quelldatei ist im Anhang. Kann mir jemand einen Tip geben?

Andy

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst auch die FOR-Schleife verlassen, wenn der richtige Response
kommt:
...
  SD_SendCommand(0x00,0x95);    // CMD0 senden

  for(i=0; i<64;i++)
  {
    response = SPI_SendeByte(0xFF);
    if(response == 0x01)
    {
      break;
    }
  }

  return response;
}
...
Meistens klappt der erste Reset auch nicht, daher sollte man SD_Reset()
in einer Schleife aufrufen. Schau mal in die Codesammlung, da gibt es
einige Beispiele.

Autor: Andy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Andreas.W, hat jetzt funktioniert.

Kann mir jemand sagen, wie das "Busy" beim Response-Token R1b
aussieht und wie breit es ist, denn ich muss ja wissen, wieviele Clocks
ich rausschicken soll?
Wenn ich das "Busy" abfrage, soll ich laut Doku das CS-Signal
kurzzeitig hochziehen dann wieder runter und das "Busy" nochmal
abfragen. Die angegebenen Clocks sind entweder 0 oder -, was für mich
heisst keine. Oder wie sieht ihr das?

Andy

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.