Forum: Mikrocontroller und Digitale Elektronik Probleme mit MicroSD Karte


von Martin (Gast)


Lesenswert?

Hallo,

ich habe mal wieder Probleme bei einer Anwendung mit einer MicroSD 
Karte.
Ich schreibe Messwerte via ARM7 und SPI linear auf die MicroSD Karte. 
Wir verwenden Karten von SanDisk. Mit der ersten Charge hat das 
problemlos funktioniert. Jetzt wurden neue Karten vom selben Hersteller 
gekauft und keine von denen funktioniert.

Seltsam ist, dass wenn ich die Messwerte auf der MicroSD Karte mit dem 
ARM7 auslese, sind diese erkennbar.
Also ungefähr so:

disk_write(buffer, sector,...)

Spannungsreset

disk_read(buffer, sector, ...)

Nur am PC kann ich diese Daten nicht lesen. Ich verstehe das nicht. Lese 
ich den Sektor (z.B. 100) mit dem µC sehe ich die Daten aber lese ich 
den Sektor(z.B. 100) am PC, erkenne ich diese nicht.

Habt ihr eine Idee? Ich bin echt ratlos.

Danke
Martin

von holger (Gast)


Lesenswert?

Vieleicht hast du am PC nen Offset drin.
Möglicherweise liest du nicht Sektor 100 sondern
Sektor 100 der Partition + Offset zum MBR.

Womit liest du am PC den Sektor ?

von Martin (Gast)


Lesenswert?

Es ist ein freies Tool und nennt sich DiskView.
Aber auch wenn ich es selbst auslese, z.B. mit Python, erkenne ich an 
dem Sektor keine Messdaten.

Völlig strange

von w124Dennis (Gast)


Lesenswert?

Hallo Martin

ließ mal einen sektor vorher oder nachher noch aus, ob da deine daten 
stehen. falls ja hast du den besagten offset vom mbr drin bzw nicht drin


gruß Dennis

von Martin (Gast)


Lesenswert?

Das habe ich schon probiert, kann aber keine Daten finden.
Wie groß ist denn eigentlich der Offset vom MBR?

Danke

von w124Dennis (Gast)


Lesenswert?

512byte

von Martin (Gast)


Lesenswert?

Wie schon gesagt, keine Daten da.
Noch jemand eine andere Idee?

von Rudi (Gast)


Lesenswert?

Einfach nur versuchen: beginnend ab Sektor 0 lesen bis ein Sektor mit 
Daten kommt.

von Malte Z. (saeckereier)


Lesenswert?

Mir fällt der Begriff gerade nicht mehr ein, aber ich meine bei PC und 
RISC werden die Daten doch andersrum gepseichert, sprich die Reihenfolge 
der Bytes in nem Wort ist andersrum oder so ähnlich. Leider kann ich 
mich gerade nicht mehr erinnern, aber könnte es das nicht sein?

von Malte Z. (saeckereier)


Lesenswert?

Evtl. probiere mal einfach ein Bitmuster (010101010101010101010101) zu 
schreiben und zu finden oder auch einfach alles mit 0 überschreiben und 
dann ein zwei Bytes 11111111 schreiben, die sollten dann ja wirklich zu 
finden sein.

von günny (Gast)


Lesenswert?

Besorg Dir mal den "Hex Workshop", Version 4.2 z.B.
Dann die Speicherkarte als physikalisches Laufwerk öffnen und nach 
einer charakteristischen Messwertfolge suchen. Wenn auf der Karte etwas 
gespeichert ist, dann findest Du es mit dem Hex Workshop definitiv.

von günny (Gast)


Lesenswert?

@ Malte Zacharias:
Das würde aber nicht erklären, warum es mit der vorherigen Charge 
microSDs funktioniert hat, oder? ;-)

von Martin (Gast)


Lesenswert?

Hallo,

ich habe bei den neuen Karten einen statischen negativen Offset von 249 
Sektoren. Also, schreibe ich MCU seitig an Sektor 1000 finde ich diesen 
beim Lesen am PC auf der Sektorposition 751. Das verstehe wer will. Ich 
jedenfalls nicht. Schaue mir noch einmal die Firmawre an, ob das 
rational zu erklären ist.

von Olaf (Gast)


Lesenswert?

> Schaue mir noch einmal die Firmawre an, ob das rational zu erklären ist.

Vermutlich ist eine Karte partioniert und die andere eine Superfloppy.

Olaf

von Martin (Gast)


Lesenswert?

Hallo Olaf,

kannst du mal ein paar mehr Details geben. Wie kann ich das feststellen 
und wie eleminieren?

Danke

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.