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?
Betr. Pull-Up vgl. SD-Card Manuals von SanDisk, sie werden dort empfohlen. "Flackernder" MISO-Eingang ist auch nicht weiter erstaunlich wenn der Pin "in der Luft haengt". AVRs bietet z.B. interne Pull-Ups, k.A. ob der genutzte PIC auch. Betr. Initialisierung, Timing, Read/Write vgl. Code von "Chan" http://elm-chan.org/fsw/ff/00index_e.html . Der Code ist gut portierbar.
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.