Forum: Mikrocontroller und Digitale Elektronik PC mag SD-Karte nicht mehr lesen


von Boxi B. (boxi)


Lesenswert?

Hallo,
nachdem ich ein wenig mit nem ATmega32 auf einer SD-Karte rumgeschrieben 
und -gelesen habe, erkennt mein Notebook die Karte nicht einmal mehr.
Kann mir jemand sagen, was da passiert sein könnte und wie ich den PC 
wieder dazu überreden kann, dass er die Karte wieder "versteht". Wenn 
ich zum Beispiel mit Rechtsklick auf das Kartensymbol im Explorer 
"Formatieren" wähle, sagt er "legen Sie die Karte ein"...
Danke für Eure Hilfe
Gruß
Boxi

von Kojote (Gast)


Lesenswert?

Versuch mal nen anderen Cardreader, oder viellt ne Digicam.
Ich hab daheim zB. ne SD Karte die man manchmal mehrfach einstecken muss 
bis sie richtig erkannt wird bzw. man was lesen kann.

Plan B formatier mal mit nem SDkarten Tool und net mit dem Explorer.

gruß Kojote

von Der M. (steinadler)


Lesenswert?

Dein Threadtitel klingt irgendwie lustig....
da drauf würd ich prompt sagen "red ihm gut zu, dann macht er das 
schon..."

Erkennt der AVR denn die Karte noch?
Nicht, dass du sie dir zerschossen hast..

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Oder mal mit Knoppix booten und schauen, ob das die Karte noch erkennt. 
Unter "Speichermedien" auf dem Desktop in der neusten Version zu finden, 
z.B. als "/media/sda1" oder auch "/dev/sda1"

von BaFH (Gast)


Lesenswert?

Lad Dir das LowLevel-Format Tool runter
http://hddguru.com/content/en/software/2006.04.12-HDD-Low-Level-Format-Tool/
und mach die Karte platt ;-)
Hat bei mir geholfen, hatte ein ähnliches Problem

von Laurentius (Gast)


Lesenswert?

Hallo

>nachdem ich ein wenig mit nem ATmega32 auf einer SD-Karte rumgeschrieben
>und -gelesen habe, erkennt mein Notebook die Karte nicht einmal mehr.

Ich würde mal fast tippen das du dir mit dem Programm entweder den MBR 
oder Bootblock zerschossen hast.
Das kann z.B passieren, wenn man falsche Variableübergaben im Programm 
hat, und  als zu schreibenden Sektor an die Karte z.B. die Adresse 
0x00000000 übergibt. Dann wird mal eben der MBR überschrieben.

Meine Empfehlung an dich besorg dir WinHex und schau mal nach wie dein 
MBR/Bootblock aussieht.
Ich würde mal tippen wenn du neu formatierst und deine Software nochmal 
laufen lässt hast du wieder das selbe Problem.-> Also der Sache auf den 
Grund gehen.

Gruss Laurentius

von Dominik R. (bluebrother)


Lesenswert?

ich hatte auch schon den Fall dass sich der Cardreader verheddert hat -- 
aus- und wieder einstecken des selbigen hat bei mir meistens geholfen.

von Boxi B. (boxi)


Lesenswert?

Hallo allerseits,

danke erstmal für die vielfältigen Antworten ;)

@Laurentius:
ich habe definitiv auf Adresse 0 rumgeschrieben und mir dabei dies und 
das zerschossen. Was komisch ist, dass der PC (Notebook mit eingebautem 
Cardreader) nichtmal merkt, wenn ich die Karte reinstecke.

@BaFH:
Das LLF-Tool erkennt nur meine Festplatte und CF-Karten. Auch andere SD- 
oder xD-Karten zeigt er nicht an...

wie auch immer. Ich kämpfe weiter...
Werde meine Ergebnisse baldestens posten
Boxi

von Laurentius (Gast)


Lesenswert?

Hallo Boxi
>ich habe definitiv auf Adresse 0 rumgeschrieben und mir dabei dies und
>das zerschossen. Was komisch ist, dass der PC (Notebook mit eingebautem
>Cardreader) nichtmal merkt, wenn ich die Karte reinstecke.

Das liegt daran das Windows/oder anderes Betriebssystem, nicht erkennt 
das ein korrekt formatierter Datenträger im Laufwerk vorhanden ist. Wenn 
der MBR auf Adresse 0x00000000 oder wahlweise auch der Bootblock ab 
Adresse 0x00000000 überschrieben ist, kann dein Betriebssystem nicht 
mehr auf die Daten der Karte zugreifen. Ein Hexprogramm liesst einfach 
stur alle Daten ein egal was sie bedeuten.

Gruss Laurentius

von Boxi B. (boxi)


Lesenswert?

Hi Laurentius,
also die Karte funktioniert noch, soviel ist jetzt klar. Aus dem VS1001 
kommt  "Back in Black" raus... Ich bin ja soooo glücklich ;)

Aber auch WinHex scheitert an der Karte, selbst mit "physisch" öffnen...

Jetzt kommt ihr ;)

Gruß
Boxi

von Philipp B. (philipp_burch)


Lesenswert?

Dann tippe ich mal auf einen CardReader der Probleme macht. Hatte ich 
auch mal bei so einem Billig-Ding...
Allerdings solltest du beachten, dass dein CardReader die Karte wohl im 
SD-Modus anspricht und nicht per SPI wie du es wahrscheinlich mit deinem 
Controller machst. Folglich könnte an der Karte durchaus was defekt 
sein, obwohl sie am Controller noch funktioniert. Ich glaub's allerdings 
auch eher net.

von Jupp (Gast)


Lesenswert?

Gibt es eigentlich auch teure Cardreader?

von Boxi B. (boxi)


Lesenswert?

Also, neuester Stand:

mein Handy konnte noch was mit der Karte "anfangen". Mit dem Handy 
konnte ich die Karte nun auch formatieren. Der PC konnte sie danach aber 
immernoch nicht lesen. Allerdings hat das Handy den Sektor 0 nicht mir 
"neuem Leben" gefüllt. Weiß nicht, ob es das hätte können müssen? 
Jedenfalls konnte man vom Handy Dateien auf die Karte kopieren und auch 
verwenden.

Weiter:
Mit Hilfe des AVRs habe ich den Sektor 0 soweit ich mit den 
FAT-Spezifikationen was anfangen konnte, gefüllt. Das sieht dann so 
ähnlich aus:

uint16_t buff_cursor;

          sd_buffer[0] = 0xEB;
          sd_buffer[1] = 0x00;
          sd_buffer[2] = 0x90;

          for (buff_cursor = 0x03; buff_cursor < 0x0B; buff_cursor++)
          {
            sd_buffer[buff_cursor] = 0x20;
          }

          sd_buffer[0x0B] = 0x00;
          sd_buffer[0x0C] = 0x02;
          sd_buffer[0x0D] = 0x20;
          sd_buffer[0x0E] = 0x01;
          sd_buffer[0x0F] = 0x00;
          sd_buffer[0x10] = 0x02;
          sd_buffer[0x11] = 0x00;
          sd_buffer[0x12] = 0x02;
          sd_buffer[0x13] = 0x00;
          sd_buffer[0x14] = 0x00;
          sd_buffer[0x15] = 0xF8;
          sd_buffer[0x16] = 0x7B;
          sd_buffer[0x17] = 0x00;
          sd_buffer[0x18] = 0x3F;
          sd_buffer[0x19] = 0x00;
          sd_buffer[0x1A] = 0x10;
          sd_buffer[0x1B] = 0x00;
          sd_buffer[0x1C] = 0x00;
          sd_buffer[0x1D] = 0x00;
          sd_buffer[0x1E] = 0x00;
          sd_buffer[0x1F] = 0x00;
          sd_buffer[0x20] = 0x2E;
          sd_buffer[0x21] = 0x86;
          sd_buffer[0x22] = 0x1E;
          sd_buffer[0x23] = 0x00;
          sd_buffer[0x24] = 0x80;
          sd_buffer[0x25] = 0x00;
          sd_buffer[0x26] = 0x00;
          sd_buffer[0x27] = 0x12;
          sd_buffer[0x28] = 0x23;
          sd_buffer[0x29] = 0x34;
          sd_buffer[0x2A] = 0x45;
          sd_buffer[0x2B] = 'B';
          sd_buffer[0x2C] = 'o';
          sd_buffer[0x2D] = 'x';
          sd_buffer[0x2E] = 'i';
          sd_buffer[0x2F] = '-';
          sd_buffer[0x30] = 'D';
          sd_buffer[0x31] = 'r';
          sd_buffer[0x32] = 'i';
          sd_buffer[0x33] = 'v';
          sd_buffer[0x34] = 'e';
          sd_buffer[0x35] = ' ';
          sd_buffer[0x36] = 'F';
          sd_buffer[0x37] = 'A';
          sd_buffer[0x38] = 'T';
          sd_buffer[0x39] = '1';
          sd_buffer[0x3A] = '6';
          sd_buffer[0x3B] = ' ';
          sd_buffer[0x3C] = ' ';
          sd_buffer[0x3D] = ' ';


          for (buff_cursor = 0x3E; buff_cursor < 0x1FE; buff_cursor++)
          {
            sd_buffer[buff_cursor] = 0x00;
          }

          sd_buffer[0x1FE] = 0x55;
          sd_buffer[0x1FF] = 0xAA;

          Write_Block_MMC(0, sd_buffer);

...

und siehe da. Nach dieser "Behandlung" konnte auch der PC wieder mehr 
mit der Karte anfangen. Allerdings standen im Explorer nur kryptische 
Datei- und Verzeichnisnamen...
Formatieren ließ sich die Karte auch nicht. Hat mit einem Fehler 
abgebrochen. Also gehe ich mal von aus, dass meine zusammengefriemelten 
Daten im Bootsektor der Karte nicht in Ordnung sind.

Jetzt die große Frage: Weiß jemand, wie ich die Daten wiederherstellen 
kann?

Gruß
Boxi

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.