Problem mit SD-Karte / Pull-Ups ?

Gast #727808
Lesenswert?

Hallo,
ich habe ein Problem mit meiner SD-Karte.

Initialisierung klappt soweit, die Karte liefert mir auch schön alle 
Werte zurück die ich brauche (Status-Flags/Kapazität etc.)

Nur wenn ich versuche zu lesen bekomme ich nur 0x00 zurück. Die Adresse 
die ich anlege (0) wird auch so quittiert. Der Gegenversuch eine Adresse 
die nicht durch 512 teilbar ist zu senden wird auch mit einem 
Adressfehler zurückgewiesen.

Jetzt habe ich mal getestet ob es am Mode/Adressierung etc. der Karte 
liegen könnte und habe einfach mal den ersten Block löschen lassen mit 
START_SEL_BLOCK, END_SEL_BLOCK und ERASE. Das hat auch wunderbar 
funktioniert, daher sollte die Kommunikation mit der Karte ja eigentlich 
ok sein..

Brauche ich an DAT0-DAT3 vielleicht Pull-Ups ? ich habe gemessen und 
laut SD Physical Spec sollten im Ruhemodus bei DAT0-DAT3 High-Pegel 
anliegen. Das ist aber nur bei DAT3 der fall, die anderen sind low und 
mit oscilloskop ist da auch keinerlei aktivität feststellbar.

Grüße
#763321
Lesenswert?

Hallo,

bist Du zwischenzeitlich mit Deinem Problem weitergekommen?

Ich hab gerade das gleiche Problem. Initialisieren geht, Schreiben auch, 
nur lesen gibt 00 zurück (komischerweise ging es heute mittag mal eine 
zeitlang, dann habe ich was am Toplevelcode geändert (nicht im Physical 
layer..), leider keine Sicherheitskopie, und jetzt lese ich nur noch 
"0x00". Die Karte scheint ok zu sein, zwei andere Karten weisen das 
gleiche Fehlerbild auf.
Persönliche Seite #763439
Lesenswert?

ich habe auch einen Aufbau am Laufen, auch ohne Pullups und es 
funktioniert (noch) einwandfrei.
Ich kann sogar bei einem Wert anfangen zu lesen, der nicht durch 512 
teilbar ist :)
Wenn einer von euch rausfindet, dass man irgendwo Pullups braucht, gebt 
Bescheid, dann bau ich die auch noch ein, will ja schließlich, dass es 
auch weiterhin funktioniert
Gast #763711
Lesenswert?

Hallo,
es wäre gut zu wissen wenn man euch helfen soll, welcher Controller, 
SDHC oder SD, FAT16 oder FAT32, SPI-Ansteuerung oder nicht und einen 
kleinen Codeausschnitt, wo ihr die Leseroutine macht.
Gruss
#763721
Lesenswert?

Hallo,

das komplette File (Ansteuerung im SPI-Mode mit dsPIC, ältere Sandisk 
16MB SDCARD, eine 2. 32MB Type von Sandisk zeigt den gleichen fehler).

Im Hauptprogramm initialisiere ich die Karte mit InitSD, dann InitMedia, 
danach beschreibe ich ein paar Sektoren mit writeSector und lese einen 
des Sektoren in einen Buffer zurück. Funktioniert alles bis ich den 
Sektor lesen möchte. Hier liefert readSector "0x01" zurück.
Angehängte Dateien:
Gast #763729
Lesenswert?

>Hier liefert readSector "0x01" zurück.
>    return ( r == DATA_START);      // return TRUE if successful

Was soll auch anderes zurückgegeben werden wenn das DATA_START
Token gefunden wurde ? Wenn ne 0 zurückkommt hast du ein Problem.
Gast #5331926
Lesenswert?

Nase schrieb:
> Wo steht das denn?
> Ich finde das weder in der SD-Spezifikation noch in der (überholten)
> MMC-Spezifikation von JEDEC.

Respekt! 10 Jahre!

Das empfiehlt sich allein schon aus der Tatsache, dass SD-Karten in der 
Initialisierung im Open-Drain-Modus arbeiten. Hosts sollten dies auch, 
tun es aber je nach Hersteller/Derivat nicht.

Je nach Spec. genügen die Host-internen PU's.... oder auch nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren