Forum: Mikrocontroller und Digitale Elektronik SD Karte mit falschem Rückgabewert


von Wolfgang U. (wolle68)


Lesenswert?

Bei der Initialisierung der SD Karte über SPI bekomme ich immer eine 81 
zurück und keine 01. Das Verhalten habe ich mit mehreren Karten. 
Unterschiedliche Frequenzen während der Initphase habe ich schon 
probiert.

MMC Karten funktionieren in der Zwischenzeit alle Problemlos. Hat jemand 
eine Idee woran das liegen kann das ich einen falschen Rückgabewert 
bekomme? Die vielen Beispiele hier machen auch alle nichts mesonderes 
und sollen teilweise ja auch mit SD Karte laufen, auch wenn hier ACMD 41 
usw. niergends auftaucht, aber das würde ja eh erst beim Aufwecken eine 
Rolle spielen.

von Tilo (Gast)


Lesenswert?

SD Karten werden teilweise unterschiedlich initialisiert. Schau dir mal 
den Beispielcode von http://elm-chan.org/fsw/ff/00index_e.html an.

Meinst du 81 deziaml oder hexadezimal?

Eine Karte muss immer "aufgeweckt" werden, bevor Daten gesendet werden 
können. Das ist auch beim Initialisieren so.

Ansonten schau dir das ganze mit einem Logicanalyzer an, das hat mir 
schon sehr geholfen.

von Jochen M. (taschenbuch)


Lesenswert?

Wolfgang,

Das hier ist auch sehr interessant und gut beschrieben:
http://elm-chan.org/docs/mmc/mmc_e.html

Jochen Müller

von wolle68 (Gast)


Lesenswert?

@Jochen - deinen Artikel habe ich für die MMC als Leitfaden genommen und 
das stimmt soweit auch alles was da beschrieben ist. Glücklicherweise 
hatte ich den Artikel schon gefunden, denn er ist eine gute 
Zusammenfassung der MMC Spezifikation. Leider aber bei mir mit den oben 
beschriebenen SD Problemen.

@Tilo - auch diesen Artikel kenne ich schon. Ist ja die gleiche Quelle 
wie von Jochen. Generell stimmt alles was bei den Artikeln beschrieben 
ist und mit einer MMC geht das auch alles (besser gesagt mit 6 
verschiedenen MMC Karten mit unterschiedlichen Größen, Systemen und 
Herstellern ;).

Lediglich bei den SD Karten bekomme ich eine 81H zurück. Die 1 wäre ja 
bei einer 01H richtig für den Standby Betrieb, aber die 8 ist einfach 
Schrott. Normal sollte jede Antwort auch bei einem Fehler doch immer mit 
im MSB eine 0 haben und in den anderen 7 Bit ist der Fehler bzw Zustand 
beschríeben.

Gehe ich nun bei der 81H Antwort her und versuche die Karte einfach mal 
zu wecken dann bekomme ich egal bei welchem Kommando die 85H. Die 5 
würde ja falsches Kommando bedeuten....
Hab schon mal befürchtet das die SD Karten irgendwie noch nicht richtig 
im SPI Mode sind und daher ganz andere Antworten kommen - hat da jemand 
Erfahrung mit?

von holger (Gast)


Lesenswert?

Sendest du nur einmal CMD0 ?
Mach mal ein paar Wiederholungen.
Das könnte helfen.

von wolle68 (Gast)


Lesenswert?

Ich hab es schon mit mehr als 1x probiert. Beim zweiten Mal kommt dann 
schon die Antwort 85H :(

von embedded-os (Gast)


Lesenswert?

wenn du es auf einem AVR oder ARM7 versuchst, teste doch mal 
nachfolgenden code:

http://www.embedded-os.de/index.html?pcfat_port.htm

Wenn es damit auch nicht geht (ähnliches kenne ich von älteren 
MMC-Karten), wäre ich sehr an einer Liste der problematischen Typen 
interessiert...

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
Noch kein Account? Hier anmelden.