Forum: Mikrocontroller und Digitale Elektronik LPC2106 und SD-Karte


von bluebrother (Gast)


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

von Basti (Gast)


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

von bluebrother (Gast)


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).

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.