SD-Karte AVR

Gast #1433848
Hallo,

ich weiß, das Thema gab es schon oft. Ich habe aber in der Suche nichts 
passendes zu meinem Problem gefunden.
Ich versuche mit einem ATmega8 eine 2GB SD-Karte von SanDisk 
anzusteuern. Zum testen benutze ich den unveränderten Programm-Code von 
Ulrich Radig.
Allerdings lässt sich die Karte überhaupt nicht initialisieren. Nach dem 
cmd0 soll sie 0x01 senden (Idle State). Stattdessen kommt 0x80 an. Das 
kann doch eigentlich nicht sein, oder? Das MSB muss doch immer 0 sein.

Woran kann das liegen?

Die Verdrahtung habe ich schon oft überprüft, habe aber keine Fehler 
finden können. Der AVR läuft mit 5V, der Spannungsteiler zur SD-Karte 
ist mit zwei 1k-Widerständen aufgebaut. Es kommen also 2,5V bei den 
Eingängen der Karte an. Sicher nicht optimal, aber da die Karte 
antwortet, kann das doch nicht das Problem sein.

Gruß,
Jan
Gast
>Der AVR läuft mit 5V, der Spannungsteiler zur SD-Karte
>ist mit zwei 1k-Widerständen aufgebaut. Es kommen also 2,5V bei den
>Eingängen der Karte an. Sicher nicht optimal, aber da die Karte
>antwortet, kann das doch nicht das Problem sein.

Das Thema Spannungsteiler als Pegelwandler für SD Karten wurde
hier durchaus schon öfter durchgekaut. Meist endete es damit
das die Probleme mit vernünftigen Pegelwandlern behoben waren.

Kannst ja mal ein bißchen suchen.
Persönliche Seite
Also 2,5V klingt extrem schlecht für SD Cards, meine SD Card Schaltung 
steht zwar noch aus, aber von meiner Vorabinformierung kann ich nur 
wiederholen das immer wieder erwähnt wird wie kritisch die 
Spannungsversorgung solcher Karten ist. Übrigens eine einfach, wenn auch 
nicht gute, Schaltung mit Wiederständen von 220 Ohm und 430 Ohm ergeben 
ziemlich genau 3,3V. Bei mir nach einer auf 5V stabilisierten Spannung 
aus einem 7805er komm ich auf 3,34V :) Bei Last kann die so einfach 
erzeugte Teilspannung aber leicht schwanken.

Richtige Spannungsteiler sind zwar nicht billig aber sicher ratsam. Hab 
hier immer ein 4 Bein SIL DC/DC 5V->3,3V Steinchen rumfliegen, ist für 
verlässliche Tests wo man sich um wichtigeres kümmern will super. Passt 
aufs Breadboard aber kostet gerne 4€ bei Reichelt.

EDIT: Reichelt Artikel-Nr.: SIM1-0503 SIL4
Gast
So, jetzt läuft es. Im Code von Ulrich Radig war das Clock-Signal 
invertiert. Ich habe Software-SPI benutzt. Hat das echt noch nie jemand 
vorher bemerkt? Oder muss es bei manchen SD-Karten invertiert sein?
Ich habe in den letzten Tagen ebenfalls mit der Ansteuerung einer 
SD-Karte herumexperimentiert und den Code von Ulrich Radig als 
Ausgangsbasis genommen. Da ich den Code aber auf einen LPC935 (8051) 
portieren musste, habe ich teile davon neu geschrieben. Dabei sind mir 
auch ein paar Sachen im Code aufgefallen, die meiner Meinung nach nicht 
so ganz richtig sind (Vor allem die Steuerung des CS Signals). Aber 
alles in allem war der Code schon eine große Hilfe um nicht jede 
einzelne Methode komplett neu schreiben zu müssen.
Ich habe beim Portieren vor allem die Initialisierung von CMD1 auf 
ACMD41 abgeändert, was für SD-Karten der richtige Befehl ist und 
SD-Karten nach Spezifikation v2.0 CMD1 nicht mehr unterstützen. Somit 
kann ich unterscheiden zwischen SD-Karten v1.0 und v2.0 sowie SD und 
SDHC.
Mittlerweile klappt die Initialisierung (v1.0 und v2.0) und ich kann das 
CID und CSD Register auslesen. :)

Ciao,
     Rainer

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.