Forum: Mikrocontroller und Digitale Elektronik MMC Karte getötet


von Ssss S. (sssssss)


Lesenswert?

Hi!

Ich habe heute irgendwie eine MMC Karte getötet ;(

Mein Code basiert auf dem ulrich radig MMC Code.
Das ganze lief auch schon.
Dann habe ich angefangen die 8Bit sequenzen teils durch 16bit Zugriffe
zu ersetzen da ich dann den SPI Port vom DSP besser ausnutzen konnte.

Dabei habe ich einen Fehler gemacht, bei einem schreiben von 512Byte
Daten habe ich 513 Byte geschrieben.

Mein Testcode schrieb ab Sektor 0 folgende Daten:
0x01 0x01 0x02 0x02 0x....

Seitdem kann ich die Karte nicht mehr im PC ansprechen:
># dd if=/dev/sda of=/tmp/a bs=512 count=2
>dd: opening `/dev/sda': No medium found

(unter Windows: Bitte Medium einlegen)

Aber nun das kuriose:
Auf dem DSP kann ich ganz normal Daten darauf schreiben und auch wieder
auslesen !
MMC Reader ist ok, eine andere Karte geht auch noch im PC.

Ich vermute dass ich irgendwie in irgendeinen Bereich geschrieben habe
wo ich nicht hinschreiben sollte.
Kann mir das aber nicht so recht erklären.

Hat jemand eine Idee ?

Gruss, Simon

von Simon K. (simon) Benutzerseite


Lesenswert?

und einfach formatieren? ohne darauf zuzugreifen?

von SupaChris (Gast)


Lesenswert?

Das hatte ich auf Arbeit auch mal. Ging weder in Windows noch im Linux
zu formatieren. Abhilfe: Mac-Rechner suchen und mit Kartenleser
formatieren. Klappte da sehr gut. Ich hatte auch Daten wo
hingeschrieben, wo es die Karte nicht mochte.

von Ssss S. (sssssss)


Lesenswert?

Hi!

Nein, am Formatieren liegt es nicht.
dd liest einfach sektorweise aus, ich brauche für meinen dsp code und
meine gui kein Filesystem.

Formatieren geht ja auch nicht, es scheitert ja schon an der
erkennung.
Linux und Windows melden dasselbe als wenn ich keine mmc karte im
reader habe.
Wobei er aber aufblinkt wenn die Karte drin ist. Mehr aber auch nicht
;(

Witzigerweise hatte ich die heute auch in einem Mac versucht
wiederzubeleben, der hat nur rumgerattert und nichts gemacht.

Meine Digikam meldet auch nur "Kartenfehler"
Fragt dann ob ich formatieren will und meldet danach auch wieder
"Kartenfehler" ;(

Gruss, Simon

von Simon K. (simon) Benutzerseite


Lesenswert?

Wie du brauchst kein Filesystem? Wenn du das eh überschreiben willst,
kannst du das ganze auch nicht mehr mitm PC lesen..

von Manuel B. (Gast)


Lesenswert?

(entfernt)

von Ssss S. (sssssss)


Lesenswert?

>Wie du brauchst kein Filesystem? Wenn du das eh überschreiben willst,
>kannst du das ganze auch nicht mehr mitm PC lesen..
Naklar geht das ;)
fopen("/dev/sda")
und dann per fread immer schön 512 bytes auslesen.
Ich benutze das um Bilder vom DSP aus zum debuggen zu exportieren.
Meine QT Gui liest das dann ganz normal über fopen/fread ein. Ist
überhaupt kein Problem. Lief so auch schon einige Wochen.

Ich versuche gerade mit nem mega8 die CID und CSD Register auszulesen.
Evtl wurden die evtl irgendwie überschrieben.
Ausserdem versuche ich gleich mal ein FORCE ERASE cmd zu schicken
welches ein evtl gesetztes MMC LOCK passwort löschen soll.
Hab den DSP leider nicht hier :-\

Lowlevelformat gibts wohl nicht. Zumindest mein mmc cardreader erkennt
die Karte ja garnicht ...

Ich melde mich nachher nochmal ob ich mit dem avr unlocken erfolg
hatte
(auch wenn ich nicht dran glaube :-\)

Gruss, Simon

von Andreas W. (Gast)


Lesenswert?

Hi,

hatte das selbe Problem mit einer SD-Karte.
Konnte sie aber mit
http://panasonic.co.jp/pavc/global/cs/sd/download/sd_formatter.html
wieder formatieren.
Vielleicht funktioniert es bei deiner MMC auch...

Gruß
Andreas

von Peter (Gast)


Lesenswert?

Servus,

du kannst auch einfach mit einem Hex-Editor alles auf 0x00 zurücksetzen
lassen. Danach kannst du die Karte wieder in deinen Kartenleser
einstecken und Windows fragt dich dann wieder, ob du die Karte
formatieren willst. Danach müsste eigentlich alles wieder im Butter
sein.

Gruß Peter

von Ssss S. (sssssss)


Lesenswert?

Hi!

Das Panasonic tool zeigt kurz D:\ zur auswahl und wird dann wieder
inaktiv.

Auf 0 setzen:
Das geht nicht... hatte ich schon getestet.
Linux ist es übrigends egal was sich auf der Karte befindet, hatte da
vorher auch draufgeschrieben was ich wollte und es ging immer :)

Ich teste mal weiter mitm avr...

Danke euch schonmal ;)

von Danil (Gast)


Lesenswert?

.... wie soll das ohne Filesystem gehen ... /dev/sda ist ein RAW-DEVICE?

von Ssss S. (sssssss)


Lesenswert?

Das geht 100pro ;)
/dev/sda1 geht ohne fs nicht.
Egal, das ist gerade nicht das problem g Das funktionierte ja bzw
funktioniert mit den anderen Karten auch noch.

Habe jetzt mit dem avr die CID und CSD regs gelesen:
CSD = 90 5e 0 2a 1f 59 83 d3 ed b6 83 ff 96 40 0 1f
CID = 2c 0 0 41 46 20 48 4d 42 10 a3 c0 b5 aa c8 23

Mal sehen was das dekodiert bedeutet :)

von Ssss S. (sssssss)


Lesenswert?

Hmm ich gebs auf...
Hab jetzt erfolglos versucht CMD42 (=0x6A?) zu senden
um ein forced erase zu starten.
Keine Ahnung, hat nichts gebracht... Ich weiss aber auch nicht ob ich
die ganze Sequenz richtig sende :-\

Naja werd ich mir wohl ne neue kaufen müssen :(

Gruss, Simon

von Ssss S. (sssssss)


Lesenswert?

Nachtrag:
Hatte die CID Register mal dekodiert:
man id = 002C
oem id = 0000
pro n0 = 0040
pro n1 = 0046
pro n2 = 0020
pro n3 = 0048
pro n4 = 004C
pro n5 = 0042
pro as string [@F HLB]
serial = A3C0B5AA
cid mo = 000C
cid yr = 2005 (1997=1997)

und hier noch eine funktionierende 32MB Karte:
man id = 0006
oem id = 0000
pro n0 = 0032
pro n1 = 0032
pro n2 = 00FE
pro n3 = 00FE
pro n4 = 00FE
pro n5 = 00FE
pro as string [22....]
serial = 19D40D02
cid mo = 0008
cid yr = 2001 (1997=1997)

Sieht ok aus. CID is ja auch eigentlich sowieso readonly ...

von Ssss S. (sssssss)


Lesenswert?

hab jetzt CID und CSD checksumme (crc7) geprüft, ist ok.
Also wirds wohl nicht an CID oder CSD liegen :-\

von Aleksej (Gast)


Lesenswert?

Ich hab mal so was mit meiner MMC-Karte gemacht, dann hilft nur einziges
- Boot-Sector neu zu schreiben. Wenn du die Volume von deiner Karte
weisst, dann ist es nicht so schwer. Ich habe es mit HexEditor gemacht,
der ist ziemlich bequem fuer solche Aufgaben.

von Andreas Häusler (Gast)


Lesenswert?

Hi
Hab soeben auch eine SD Karte (Hama/128MB) produziert, auf die ich
nicht mehr im Kartenleser zu greifen kann.
Weiss wirklich niemand Rat, wie man das Ding wieder zum Leben erwecken
kann.
Das Panasonic Tool und Win Hex helfen auch nicht weiter, da die Karte
im Leser ja nicht mehr erkannt wird.
Bin für jeden Tip sehr dankbar!

Gruss Andy

von Ssss S. (sssssss)


Lesenswert?

Hi!

Was war das genau für eine Kare ? Auch eine mini MMC ?
Oder ne echte SD ?
Eine die auch für 1.8V ausgelegt ist (zweite reihe Kontakte) ?


Ich habe auch eine weitere karte des selben Herstellers getötet :(
Diesmal eine 128MB Karte. Wollte ausschliessen dass die Karte aufgrund

irgendeines Kartenfehlers  gestorben ist.

gestorben sind bei mir:
- extreMemory MMC 256MB Mobile
- extreMemory MMC 128MB Mobile

Bei mir war der Ablauf reproduzierbar so:
- MMC Karte init, CS auf enable, daten gelesen/geschrieben
- CS auf disable
- >10ms gewartet (um sicher zu sein)
- dann per SPI auf ein S65 LCD zugegriffen und viele (!) Daten
geschrieben (wichtig dass da Farben != 0x0000 bei sind)
- DSP resettet
-> kann nicht mehr auf mmc karte zugreifen
Da nützt auch ein rein/raus nicht mehr.

Kartenleser meldet kein Medium
Digikam melden Kartenfehler

Ich vermute einen Fehler im SPI Protokoll der Karten.
Also laut statemachine darf die Karte durch kein Kommando aus
dem SPI Mode rausgehen.
Schon gar nciht wenn sie deselectet ist.

Ich vermute aber dass sie irgendwie trotz CS disable in den MMC
Mode springt und/oder irgendwelche Daten am spi port annimmt und
irgendein
internes Bit setzt.

Per SPI gehen die Karten übrigends immer noch.
Also nicht wegwerfen, kannst du irgendwann evtl mal als Datenspeicher
für einen uC
verwenden wo du die Karte zb fest einlötest 8)

Bye, Simon

von Andreas Häusler (Gast)


Lesenswert?

Hi Somon
Ich habe die Karte (3,3V) zum Entwickeln eines FAT- File Systems auf
meinem CPU Board benutzt. Ich konnte die Karte immer Reseten und
Initiallisieren. Auch das Auslesen der CSD und CSI Daten hat bis
gestern immer funktioniert.
Als ich dann den Kartenleser an einem anderen PC eingesteckt habe und
ein wenig mit der Knoppix Linux CD experimentieren wollte, wurde der
Kartenleser zwar erkannt, aber die gesteckte Karte nie.
Ich vermute, das mein Problem beim Stecken des Kartenlesers an den
USB-Port entstanden ist. Ich habe die Karte beim Umstecken leider immer
stecken gelassen.
Wenn ich die defekte Karte an meinem Board anschliesse, wird schon bei
der Initiallisierung (CMD 0x40,0x00,0x00,0x00,0x00,0x95) ein Fehler
ausgegeben.
Damit ist die Karte anscheinend auch per SPI nicht mehr erreichbar.
Für weitere Tips bin ich sehr dankbar.

Andy

von Thomas O. (Gast)


Lesenswert?

schaut mal in die Datenträgerverwaltung vielleicht geht ja da
irgendetwas, hier werden nämlich auch unformatierte Platten angezeigt.

von Andreas Häusler (Gast)


Lesenswert?

@ Thomas
Danke für Deinen Tip, die Karte wird dort leider auch nicht mehr
erkannt und angezeigt.

von Ssss S. (sssssss)


Lesenswert?

Hi!

Ok, dann ist dein Problem ein anderes.
Meine Karte geht noch im SPI Modus ;)

Versuch du mal das Tool zum unlocken:
http://panasonic.co.jp/pavc/global/cs/sd/download/sd_formatter.html

Evtl hilft es dir, bei meinem Prob hilft es nicht :(

Bye, Simon

von norman p. (Gast)


Lesenswert?

Hallo,

Ich habe einmal einen USBStick nur mit nullen beschrieben.(dd) Er ging
dann aber weder unter Windows noch Linux(I/O Error), dann hab ich eine
Knoppix CD verwendet, bei der es auch nicht ging. Als ich aber mit
qtparted eine Partition auf /dev/sda erstellte funktionierte er
wieder??

Probier das mal aus.

von Steff (Gast)


Lesenswert?

Ich hab auch eine SD Karte getötet - wahrscheinlich per SPI in einen
Bereich geschrieben in den man nicht schreiben sollte.

Unter Windows und Knoppix wird sie nicht mehr erkannt. Win XP bringt
beim Formatieren folgende Meldung:
-----------------------------------
Der Typ des Dateisystems ist FAT32.
Überprüfung von 968 MB
Unzulässiger Datenträger oder Spur 0 fehlerhaft - Datenträger nicht
verwendbar
-----------------------------------

Es ist eine 1GB Karte und es war/ist FAT32 drauf (soviel erkennt er
anscheinend).
Mit Winhex kann ich die Karte noch physisch öffnen, aber nur ab Sektor
1 ansehen (das ist der Bootsektor, der scheint i.O. zu sein).

Was ich sonst noch versucht habe:
- chkdsk: er findet noch ein paar Dateien und will den Speicherplatz
freigeben, aber am Ende kommt ein Schreibfehler (Fehler beim Schreiben
des Ordners.)
- Windows Datenträgerverwaltung: Größe wird richtig angezeigt,
Fehlerfrei, Dateisystem ist RAW. Formatieren schlägt hier ebenfalls
fehl und Partitionen löschen/anlegen ist deaktiviert
- Panasonic SD Formatter: Reagiert nicht mehr sobald das Laufwerk
aktivierit ist.

Hat jemand eine Idee wie man die Karte noch retten könnte?
Was sollte eigentlich in Sektor 0 stehen? Die Werte der CID und CSD
Register hab ich aufgeschrieben.

von Ssss S. (sssssss)


Lesenswert?

Hi!

Versuch evtl mal unter windows nen  fdisk /mbr

Bei dem was ich angestellt habe erkennt der pc die karte gar nicht
mehr, geht nur
noch per SPI, der mmc modus scheint abgeschaltet zu sein.

Bye, Simon

von Steff (Gast)


Lesenswert?

an fdisk /mbr hab ich auch schon gedacht, nur gibts das leider bei WinXP
nicht mehr

von Steff (Gast)


Lesenswert?

Kann es sein dass einige Bereiche kaputt gehen bzw. kann man die
(versehentlich) schreibschützen?
Ich kann z.B. auf Sektor 12 und Sektor 1200 nicht mehr schreiben.
Scheint zwar alles ok zu sein nur beim Lesen kommen die alten Daten.
Sektor 12000 hingegen lässt sich neu beschreiben....

und @Simon
der PC erkennt die Karte auch nicht wirklich, also auf das Laufwerk
zugreifen geht nicht, nur physisch öffnen unter Winhex und in der
Datenträgerverwaltung ist sie drin.

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.