mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD-Card Timing


Autor: Martin Domke (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Martin Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.