www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC2106 und SD-Karte


Autor: bluebrother (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich versuche jetzt schon eine ganze Weile eine SD-Karte am LPC2106 zu 
betreiben. Das Problem ist dass die Initialisierung nicht richtig 
funktioniert: auf CMD0 antwortet die Karte wie erwartet mit 0x01. Danach 
schicke ich ein CMD1 bzw. ACMD41. Merkwürdigerweise bekomme ich aber 
immer ein 0x01 zurück. Mit einer MMC-Karte kommt an der Stelle dann nur 
ein 0xff.

CPHA = 0, CPOL = 0, SPRRC = 0xf8. Der Controller arbeitet mit 3.3V 
IO-Spannung, die Karte ist damit direkt angeschlossen. Ich habe meinen 
Code schon mehrfach mit diversen Codebeispielen verglichen und keine 
Unterschiede feststellen können. Zwischen CMD0 und CMD1 ein paar 
dummy-Bytes schicken hat auch nix gebracht und im Forum hab ich leider 
auch nix gefunden was mir weitergeholfen hätte.

Hat da jemand ne Idee dazu?

Dominik

Autor: Basti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die antwort 0x01 bedeutet "in Idle state". es kann sein das die 
initialisierung etwas länger daurt, also kann man cmd1 so lange senden 
bis eine 0x00 als antwort kommt, oder man 20 mal oder so gesendet hat.

könnte ne lösung sein, vieleicht aber auch nicht

Autor: bluebrother (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, ich vergaß zu erwähnen dass ich nach dem ACMD41 zunächst 8 mal eine 
brauchbare Antwort suche und das ganze (also das ACMD41 und warten) dann 
wiederhole.

Anscheinend hab ich jetzt eine Lösung gefunden: ich habe bisher beim 
Warten auf die Antwort einfach bis zu 8 Mal 0xff geschickt. Jetzt hab 
ich stattdessen einfach mal ACMD41 wiederholt, und die Karte antwortet 
jetzt zuverlässig innerhalb von wenigen Zyklen. Irgendwie hatte ich das 
bisher so verstanden dass es egal ist was ich sende solange ich nur auf 
eine Antwort warte (vor allem da alle anderen Kommandos ignoriert 
werden).

Komischerweise funktioniert es jetzt mit der MMC-Karte nicht mehr, 
selbst CMD0 liefert da einen Fehler (ich benutze für die MMC CMD1, nicht 
ACMD41).

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.