mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SD Card write Funktion hat ein Bug


Autor: Tobias (Gast)
Datum:
Angehängte Dateien:
  • sdwrite (928 Bytes, 109 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen großen Bug in meinem Programm, kann ihn aber verflixt
noch mal nicht finden. Könnt ihr mal schauen was ich falsch mache.
Ich möchte mit der Funktion eine SD Card bzw. MMC beschreiben. Nun
kommt das verrückte. Wenn ich diese Funktion einmal aufrufe
funktioniert es, die Daten sind dann auf der Karte. Rufe ich diese
Funktion ein zweites mal auf so kommt als Response 0x03, also illegales
Kommando angeblich. Dann hilft nur Karte von der Versorgungsspannung
trennen, die Karte wieder reseten und initialisieren. Selbst wenn ich
die Karte drin lasse, sie dann Resete und Initialisiere bleibt die
Karte bei der Initialisierung hängen. Ich habe es mit einer Standard
Sandisk SD Card 256MB einer Ultra Sandisk SD Card 1024MB und einer
Noname MMC 32MB versucht. Immer das gleiche. Ich programmiere mit einem
ATmega128l. Die Karte steuere ich mit dem SPI Bus an. Ich verstehe es
einfach nicht. Meine Read Funktion läuft einwandfrei. Bitte helft mir,
ich bin fast am verzweifeln. VIELEN DANK.

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi Leute,

ich habe weiter an dem Problem gearbeitet. Ich habe irgendwo gelesen
dass man das CMD 13 Kommando schicken soll/muss um zu schauen ob
richtig geschrieben worden ist.  ABER hier kommt wieder ein illegales
Kommando als Response 0x04( R1 Response).
TOTAL KOMISCH, aber jetzt funktioniert es. Ich kann mehrere Block
hintereinander schreiben. Kann mir jemand sagen wieso es jetzt
funktioniert. Weil ich traue der Sache noch nicht. Wenn ich z.B andere
Karten nehme.

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beobachte doch einmal die 3,3V an der SD/MMC mit einem Oszi während Du
schreibst?!

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe das gleiche problem....an was liegt das????!?!?!?
kann mir hier wer helfen bitte

liebe grüße
daniel

Autor: Hannes Ebner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
?? gleiche problem ist hier auch

keiner der ne lösung hat

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du wie oben vorgeschlagen mal mit dem Oszi geguckt, was die 
Spannung macht?

Ralf

Autor: Hannes Ebner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das nicht aber ich glaube auch nicht das es mit der spannung was haben 
kann.
denke hier eher das es bei den cmd ´s liegt ... hier wird irgendwo ein 
zwischenschritt reingehörn und dann wird das problem warscheinlich 
gelöst sein ... nur welcher ?! :-)

Autor: Hannes Ebner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab leider kein oszi :-(

Autor: Martin Thomas (mthomas) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thread ist uralt, dennoch "für die Akten" ein paar Binsenweisheiten:
* wie erwähnt ordentliche Spannungsversorgung, im Zweifel 100nF+10uF an 
VCC/GND nahe am Kartensockel
* Pullup an /CS und DO
* zumindest für erste Tests Controller und Karte mit 3,3V betreiben, 
schließt Problem durch Pegelwandler erstmal aus
* ChaN's Beispiele herunterladen ( 
http://elm-chan.org/fsw/ff/ffsample.zip ) und sich vom darin enthaltenen 
avr/mmc.c inspirieren lassen hilft oft (zumindest mir immer, wenn es 
darum geht, MMC/SD-Card auf einem neuen "Spielzeug" zum Laufen zu 
bringen).

Autor: Hannes Ebner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Herzlichen Dank Thomas hat mir fürn anfang weitergeholfen ... teste mal 
durch.... ich denke das ich die karte nicht sauber intitalisiere

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.