Gast
#409362
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?