SD-Card Timing

Gast #409362
Lesenswert?
• ▲
▼
Im Forum sind ja schon viele Skurilitäten im Zusammenhang mit SD-Karten
diskutiert worden, weswegen ich meine Frage auch noch dazustellen
möchte. Ich verwende einen PIC18F6680 um über SPI mit einer SD-Karte zu
kommunizieren. Der Controller arbeitet mit 3,3V weswegen ich keine
Spannungsteiler oder Pegelwandler zwischen der SD-Karte und dem MC
verwende. Ich habe mir viele verschieden Code-Beispiele für die
SD-Karten-Ansteuerung angesehen und daraus, unter Verwendung der
SD-Karten-Spezifikation, ein eigenes Best-Of geschrieben (siehe
Anhang).

Ich habe nun mehrere Schwierigkeiten:

1. Wenn ich meine kleine Test-Routine laufen lasse, in der ich die
Karte initialisiere, dann einen Block schreibe und ihn dann sogleich
wieder auslese, funktioniert das nur, wenn ich während des Zugriffs
Debugging-Informationen über die RS232-Schnittstelle ausgebe. Diese
Ausgaben sind von der Form "Sende Kommando x erhalte Antwort y". Man
könnte denken, dass die printf-Funktion den Protokoll-Ablauf zeitlich
etwas entzerrt, aber nach meinem Dafürhalten müsste das egal sein.

2. Wenn ich die gleiche Routine laufen lasse, die SD-Karte aber nicht
in den Halter stecke, dann sollte doch eigentlich beim Senden des CMD0
ständig die Antwort 0x00 gelesen werden. Die Ausgabe zeigt aber an,
dass neben 0x00 auf häfuiger 0xff "empfangen" wird. Wie kann das
sein. Muss die Datenleitung für diesen Fall an einen Pull-Down
angeschlossen sein?
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren