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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.