Ich versuche, eine microSD-Karte mit FatFS-Code an eine Mikrocontroller-Karte (FRDM-KE06Z) anzuschließen . Ich habe nur SPI-Teile für meine Anwendung modifiziert. Neben dem Graben in FatFS-Code habe ich auch diesen Leitfaden überprüft
Wenn ich CMD0 an die Karte sende, ist die Antwort korrekt:
Aber wenn ich CMD8 sende, um die Karte zu identifizieren, ist die Antwort völlig falsch (nach 0xFF sollte irgendetwas mit MSB auf Null gesetzt sein):
Ich habe kontrolliert:
Was kann der Grund dafür sein, dass meine Karten nicht richtig auf CMD8 reagieren, während sie korrekt auf CMD0 reagieren?
Ich habe vor ungefähr einem Jahr eine FPGA-Konfiguration entworfen und Treiber für SD-Karten geschrieben und dabei sehr ähnliche Probleme festgestellt. Meine Lösungen für falsche Antworten / Fehlverhalten der SD-Karte waren einfach:
Das Taktsignal ist für die Karte erforderlich, um einige ihrer internen Operationen abzuschließen (das offensichtlichste Beispiel ist die Wiederherstellung nach einem Daten-/Befehlsfehler). Wenn Ihr Design Takt ohne Unterbrechungen liefern würde, würden Sie dieses Problem nicht bemerken.
Update: Wenn ich mir Ihre gelieferten Wellenformen ansehe, denke ich, dass MOSI hoch sein sollte, wenn CS nicht aktiviert ist und wenn kein Befehl ausgeführt wird. Schauen Sie hier , vielleicht finden Sie es nützlich (jedoch nicht ausreichend), die SD-Kartenschnittstelle zu entwerfen.
krismath
Filo