www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD-Karte kommt nicht aus dem Idle-State raus (am AVR)


Autor: Lasse S. (cowz) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe jetzt glaub ich alle Beiträge gelesen, Code-Stücke übernommen, 
gegengeprüft und komme nicht weiter.

Meine SD-Karte meldet sich nach dem CMD0 perfekt mit 0x01. Allerdings 
kommt sie aus dem Idlestate auch nach nem CMD1 nicht raus, sie antwortet 
permanent (nach einigen 0xFFs) mit 0x01.

Ich hoffe ihr könnt mir helfen, oder den Beitrag zeigen, den ich 
übersehen habe.

Im Anhang ist meine Ansteuerungs-Funktion, sollten Sachen fehlen, 
einfach Bescheid sagen, werden schnellstmöglich nachgereicht :)

Prozessor ist ein ATMega2561V, ich programmiere mit AVR-GCC.


Grüße, Lasse

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab ich irgendwas vergessen, oder hat niemand eine Idee, woran es 
scheitert?

Gruß, Lasse

Autor: MeinerEiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist denn der SPI initialisiert?
Bzw. überhaupt alle SPI_...-Funktionen.

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

im Anhang die spi.c

Mich verwundert vorallem, dass die Karte ja antwortet, auch unbekannte 
Befehle auch mit 0x05, aber eben nie aus dem Idle-Modus rauskommt...

Ausprobiert habe ich das mit unterschiedlichen SD-Karten (16MB, 1GB, 
2GB) und einer 16MB MMC. Überall exakt das gleiche Problem.

Gruß, Lasse

Autor: Lasse S. (cowz) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt mit Anhang, sorry.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ausprobiert habe ich das mit unterschiedlichen SD-Karten (16MB, 1GB,
>2GB) und einer 16MB MMC. Überall exakt das gleiche Problem.

Kleiner Tip:
Es reicht meist nicht CMD1 nur einmal zu senden.
Bei SD Karten nimm besser ACMD41.

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wenn ich meinen Code richtig verstehe, sende ich CMD1 öfter, bis zu 250 
mal, das sollte doch ansich reichen, oder? Auch wenn ich CMD1 
"unendlich" oft schicke, kommt stets 0x01 zurück..

Gruß, Lasse

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, niemand eine Idee? :(

Gruß, Lasse

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn ich deinen Code jetzt mal so mit einem funktionierendem vergleiche 
fällt mir folgendes auf:

was soll das deaktivieren von CS und 1x 0xFF senden zwischen den beiden 
Kommandos ??

Sascha

Autor: Lasse S. (cowz) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich meine, das in den specs gelesen zu haben... Aber auch ohne kommt der 
gleiche Fehler...

Gruß, Lasse

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.