MMC Card und M16C will nicht so richtig

Gast #305743
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
Gast #305745
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
Gast #305746
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 :-)
Gast #305750
Lesenswert?
• ▲
▼
Du musst auch die FOR-Schleife verlassen, wenn der richtige Response
kommt:
1
...
2
  SD_SendCommand(0x00,0x95);    // CMD0 senden
3

4
  for(i=0; i<64;i++)
5
  {
6
    response = SPI_SendeByte(0xFF);
7
    if(response == 0x01)
8
    {
9
      break;
10
    }
11
  }
12

13
  return response;
14
}
15
...
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.
Gast #305751
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.