Zickige SD-Karte am Arduino

Gast #7221577
Lesenswert?

Ein Arduino ProMini 3,3 Volt schreibt Daten auf die SD-Karte.
Angebunden ist die per SPI im China-Modul.
Die Software nutzt <SPI.h> und <SD.h> der A*IDE 1.8.9

Jede Sekunde werden 18 Byte geschrieben, gelegentlich auch mal 24 Byte.
Die Datei wird nach jedem Schreibvorgang geschlossen.

Ich habe hier drei Karten, Bild im Anhang, deren Hersteller ich nicht 
kenne. Es dauert kaum drei Minuten, bis das Schreiben fehlschlägt - am 
PC oder mit H2testw ist keine Fehlfunktion zu erkennen.

Aktuell läuft das mit einer Xmore-industrial über Stunden ohne jegliche 
Probleme.

Der einzig augenscheinliche Unterschied ist, dass die Xmore schneller 
ist - bei den paar Bytes mag ich mir das aber nicht als Grund 
vorstellen.

Auf was muss ich achten, wenn ich neue Karten kaufen muss?
Angehängte Dateien:
Gast #7221582
Lesenswert?

Manfred schrieb:
> Auf was muss ich achten, wenn ich neue Karten kaufen muss?

Auf Glück hoffen. Unzverlässige und inkompatible SD Karten sind leider 
genau so allgegenwärtig, wie schlechte Disketten in den 90er Jahren.

SD Karten von SunDisk haben einen guten Ruf, ich glaube mit denen hatte 
hier noch niemand ernsthafte Probleme.
Gast #7221587
Lesenswert?

SanDisk und Samsung, das sind die von mir bevorzugten Hersteller; keine 
Probleme damit, mit No-name hingegen gab es einige im Laufe der Jahre.
  Aber - nach gerade mal 180 Schreibvorgängen ein "Fehlschlagen", 
während diese Karten am PC keine Fehlfunktion zeigen? Da würde ich das 
Problem nicht bei der Karte suchen.
Gast #7221591
Lesenswert?

Vielleicht sollte man die Datei nicht jede Sekunde schliessen?
Dann muss ja jedesmal die Verwaltungsstruktur erneuert werden. Und bei 
manchen Filesystemen liegt die immer an der gleichen Stelle. Also wird 
evtl jede Sekunde das gleiche Byte geändert?
Gast #7221595
Lesenswert?

> Es dauert kaum drei Minuten, bis das Schreiben fehlschlägt - am
> PC oder mit H2testw ist keine Fehlfunktion zu erkennen.

Ich rate mal, die karte macht dann irgendeine interne Verwaltungssache
und ist fuer 100ms oder so nicht ansprechbar. Deine verkorkste Libarie
merkt das nicht, oder sie gibt dir korrekt einen Fehler zurueck
aber du wertest keine Rueckgabewerte aus.

Olaf
Gast #7221665
Lesenswert?

Bekanntlich kann das Schreiben hin&wieder recht lange dauern, bis zu 400 
ms habe ich schon gesehen.
  Umgekehrt aber auch: ein Dutzend SDCards von Intenso: beschrieben und 
sofort kontrollgelesen - einwandfrei. Nach einigen Wochen Lagerung (ohne 
Zugriff) dauerte das Lesen mancher Blöcke an die 100 ms; der Inhalt aber 
war korrekt.
#7221670
Lesenswert?

Manfred schrieb:
> Es dauert kaum drei Minuten, bis das Schreiben fehlschlägt - am
> PC oder mit H2testw ist keine Fehlfunktion zu erkennen.

vielleicht ist die Kontaktgabe an dem Arduino-Adapter schlecht? es gibt 
neuerdings sehr dünne Karten, ältere Adapter müssen damit nicht 
zurechtkommen, Abhilfe war manchmal Tesa auf die Kartenrückseite kleben 
um fehlende Dicke auszugleichen!

Weil der Fehler am PC mit H2testw nicht auftritt, tippe ich auf anderen 
(µ)SD Adapter!

Vielleicht fehlt dem Arduino-Adapter auch nur ein Pufferkondensator oder 
die Stromversorgung mangelt, typische Jumperkabel sind aus Eisen und 
nicht aus Kupfer und haben den 6-fachen Widerstandswert!

Die möglichen Fehlerquellen sind schier unendlich.
Gast #7221720
Lesenswert?

Lothar M. schrieb:
> Nimm Kioxia oder Toshiba wenn dir die Xmore zu teuer sind.

Der Preis wäre nachrangig. Xmore sind mir aus einer 
sicherheitskritischen Anwendung zugelaufen, bei den üblichen 
Bastelhändlern bekomme ich die nicht.

PittyJ schrieb:
> Vielleicht sollte man die Datei nicht jede Sekunde schliessen?

Der Gedanke behagt mir nicht, weil ich dann im Fehlerfalle eine nicht 
lesbare Datei habe.

olaf schrieb:
> Deine verkorkste Libarie
> merkt das nicht, oder sie gibt dir korrekt einen Fehler zurueck
> aber du wertest keine Rueckgabewerte aus.

Wie kommst Du darauf, am Problem vorbei? Die Library gibt die Anzahl 
geschriebener Bytes zurück und ich werte diese aus. Täte ich es nicht, 
würde ich erst Stunden / Tage später an der fehlerhaften Datei bemerken, 
dass mein Logging abgebrochen ist.

Aber Du bringst mich auf die Idee, eine Software zu bauen, die keine 
Rückgabe auswertet und mir später die Datei anzugucken.

S. Landolt schrieb:
> Bekanntlich kann das Schreiben hin&wieder recht lange dauern, bis zu 400
> ms habe ich schon gesehen.

Das kann ein Grund sein. Ich kann das Intervall auf 10 Sekunden 
umschalten, dann dürfte ja kein Fehler auftreten. Teste ich nächste 
Woche, derzeit ist das Ding bis Montag beschäftigt.

Joachim B. schrieb:
> vielleicht ist die Kontaktgabe an dem Arduino-Adapter schlecht? es gibt
> neuerdings sehr dünne Karten, ältere Adapter müssen damit nicht
> zurechtkommen,

Unwahrscheinlich.

> Weil der Fehler am PC mit H2testw nicht auftritt, tippe ich auf anderen
> (µ)SD Adapter!

Im Gerät ist ein SD-Modul, der Adapter von µSD nach Standard ist der 
selbe.

> Vielleicht fehlt dem Arduino-Adapter auch nur ein Pufferkondensator oder
> die Stromversorgung mangelt, typische Jumperkabel sind aus Eisen und
> nicht aus Kupfer und haben den 6-fachen Widerstandswert!

Die Werte sind mir bekannt, hatte ich mal gemessen und 2018 im 
China-Schnäppchen Thread gepostet. Bei meinen 10cm werden das knapp 0,5 
Ohm sein, deren Spannungsabfall ich für vertretbar halte.
#7221732
Lesenswert?

Manfred schrieb:
> Ein Arduino ProMini 3,3 Volt schreibt Daten auf die SD-Karte.
> Angebunden ist die per SPI im China-Modul.
> Die Software nutzt <SPI.h> und <SD.h> der A*IDE 1.8.9
>
> Jede Sekunde werden 18 Byte geschrieben, gelegentlich auch mal 24 Byte.
> Die Datei wird nach jedem Schreibvorgang geschlossen.

Warum? Hast du so viel Angst um deine Daten?
Wenn du das machst, wird jedes mal der Puffer auf die SD-Karte 
geschrieben.
Das killt sie nicht sofort, ist auf Dauer aber eher kontraproduktiv.
Ich vermute einen Progrmmierfehler in deinem Programm. Vermutlich tust 
du die Datei NICHT korrekt schließen und wieder öffnen. Hatte ich auch 
mal, da frisst sich dann mal der Arduino fest, weil keine Handles für 
neue Dateien mehr vergeben werden können. Ich glaube bei 100 oder 255 
offenen Dateien war Schluß.

> Auf was muss ich achten, wenn ich neue Karten kaufen muss?

Falsche Frage. Du musst den Fehler in deiner Software suchen, denn dort 
liegt er mit sehr hoher Wahrscheinlichkeit.
#7221738
Lesenswert?

olaf schrieb:
> Ich rate mal, die karte macht dann irgendeine interne Verwaltungssache
> und ist fuer 100ms oder so nicht ansprechbar. Deine verkorkste Libarie
> merkt das nicht, oder sie gibt dir korrekt einen Fehler zurueck
> aber du wertest keine Rueckgabewerte aus.

So schlecht sind die Arduino-Libs nicht. Die können schon Dateien 
mehrfach öffnen und schließen, auch wenn der Ansatz des OPs fragwürdig 
ist.
#7221741
Lesenswert?

Manfred schrieb:
>> Vielleicht sollte man die Datei nicht jede Sekunde schliessen?
>
> Der Gedanke behagt mir nicht, weil ich dann im Fehlerfalle eine nicht
> lesbare Datei habe.

Ist deine Hardware SOOO instabil? Sind deine Daten SOOOO wertvoll. Man 
könnte mindestens darüber nachdenken, das Speicherintervall DEUTLICH zu 
vergrößeren. 10s, 1min etc.
Gast #7221743
Lesenswert?

> Wie kommst Du darauf, am Problem vorbei? Die Library gibt die Anzahl
> geschriebener Bytes zurück und ich werte diese aus. Täte ich es nicht,

Weil es meiner Erfahrung entspricht als ich vor 20Jahren sowas selber
programmiert habe. Alle diese Funktionen koennen Rueckgabewerte liefern 
wenn man dies denn auch abfragt. Manchmal erst nach langen Timeout. Die 
Karten liefern dann immer 0xff zurueck und die eigentlich Antwort ist 
dann ungleich 0xff. Dann trifft du auf Karten die immer sofort 
antworten, andere erst nach drei 0xff und irgendwann auch mal eine die 
noch langsamer wird.

Es gibt geradezu unglaublich viele unterschiedliche SD-karten und keiner 
kann alles testen. Daher wird sehr viel Code draussen rumgeistern der da 
eben nicht optimal ist. Ganz besonders wenn er in irgendeinen 
Kinderzimmer fuer Arduino entstanden ist. Und das ist auch nicht boese 
gemeint, aber das kann dann eine Einzelperson nicht leisten. Letztlich 
programmiert man da der Realitaet immer hinterher.
ICh hab z.B noch ein paar Karten die sind sowohl SD-Karte wie auch 
USB-Stick. Die haben das schraegste Zeitverhalten das ich jemals auf dem 
Oszi gesehen habe. Vermute weil da ein armer MCS51 schwer ueberfordert 
ist.

Und je neuer die Karten sind um so groesser die internen Sektoren im 
Flash. DA werden keine 512Byte mehr geschrieben auch wenn die Karte dir 
das sagt. Deshalb kommen dann manchmal so schraege Wartezeiten zustande. 
Besonders natuerlich wenn du die Karte deslektierst und sie denkt das 
sie sich jetzt erstmal um ein paar interne Sachen kuemmern kann.

Dein Problem wird sich sicher loesen lassen, ein paar Stunden mit dem 
Debugger und du hast es im Griff. .-) Aber nur bis naechsten Monat 
wieder eine KArte kommt die sich leicht anders verhaelt.

Olaf
Gast #7221838
Lesenswert?

Rein aus dem Blickwinkel der Forderung von Genderistinnen, die 
Informatik zu enttechnisieren und mit Sozialthemen anzureichern lautet 
die Problembeschreibung:

Zickig ist es, weil es schließlich "die" Karte und nicht "der" oder 
"das" Karte heißt.

(Warnung, der Beitrag könnte Ironie enthalten.)
Gast #7221877
Lesenswert?

Falk B. schrieb:
> Ich vermute einen Progrmmierfehler in deinem Programm. Vermutlich tust
> du die Datei NICHT korrekt schließen und wieder öffnen. Hatte ich auch
> mal, da frisst sich dann mal der Arduino fest, weil keine Handles für
> neue Dateien mehr vergeben werden können. Ich glaube bei 100 oder 255
> offenen Dateien war Schluß.

Am Dienstag wurden ca. 7200 Daten auf die Xmore-Karte geschrieben, ohne 
dass ein Fehler aufgetreten wäre.

Aktuell läuft ein langsamerer Modus, alle 10 Sekunden - es dürften etwa 
20.000 Datensätze auf der Karte sein. Ich sage "es dürften", weil noch 
keine Fehlermeldung geworfen wurde.

Das lässt mir den Verdacht auf einen Überlauf geöffneter Dateien sehr 
unwahrscheinlich erscheinen.

Es gibt auch keinen Absturz "frisst sich dann mal der Arduino fest", die 
Messung läuft sauber weiter, lediglich meine Unterroutine "WriteToCard" 
gibt einen Fehler zurück.

Falk B. schrieb:
> Joachim B. schrieb:
>> Die möglichen Fehlerquellen sind schier unendlich.
> Na dann heul doch! Mann O Mann, was für wertvolle Hinweise! Was würde
> der OP nur ohne sie machen?

Was soll das? Joachim B. gehört nicht zu den blutigen Anfängern, seine 
Gedanken bzgl. der Hardware sind es auf jeden Fall wert, darüber 
nachzudenken!

----

Die Ansätze zum Zeitverhalten der Karten sind die, die ich näher 
betrachten werde. Ich habe Geräte, die auf der gleichen Softwarebasis 
nur alle 10..15 Sekunden schreiben und dort noch keine Ausfälle erlebt. 
Das nachzutesten wird mehrere Tage dauern, abwarten, was dabei 
herauskommt.
#7221883
Lesenswert?

Kioxia bekommst du bei TME
GoodRAM industrial und Sandisk ebenso.
Das auch in 2 GB, was im Consumerbereich quasi ausgestorben ist.
WD purple (3 Jahre Herstellergarantie im 24/7 Betrieb, gedacht für 
Überwachungskameras, die in Schleife aufzeichnen) gibt es bei Cyberport.
WD hat mit Kioxia ein Joint Venture. Hardware wird somit die gleiche 
sein. Firmware, Wearleveling und Overprovisioning können sich aber 
durchaus unterscheiden.
#7221935
Lesenswert?

Manfred schrieb:

> Am Dienstag wurden ca. 7200 Daten auf die Xmore-Karte geschrieben, ohne
> dass ein Fehler aufgetreten wäre.
>
> Aktuell läuft ein langsamerer Modus, alle 10 Sekunden - es dürften etwa
> 20.000 Datensätze auf der Karte sein. Ich sage "es dürften", weil noch
> keine Fehlermeldung geworfen wurde.

Ok, das ist schon mal ein starkes Indiz für eine Kartenproblem.

> Das lässt mir den Verdacht auf einen Überlauf geöffneter Dateien sehr
> unwahrscheinlich erscheinen.

Stimmt. Ist aber noch nicht ganz ausgeschlossen.

> Es gibt auch keinen Absturz "frisst sich dann mal der Arduino fest", die
> Messung läuft sauber weiter, lediglich meine Unterroutine "WriteToCard"
> gibt einen Fehler zurück.

Welchen?

>> Joachim B. schrieb:
>>> Die möglichen Fehlerquellen sind schier unendlich.
>> Na dann heul doch! Mann O Mann, was für wertvolle Hinweise! Was würde
>> der OP nur ohne sie machen?
>
> Was soll das? Joachim B. gehört nicht zu den blutigen Anfängern, seine
> Gedanken bzgl. der Hardware sind es auf jeden Fall wert, darüber
> nachzudenken!

Aber nicht mit so einem Gejammer und vollkommen SINNLOSEN und 
ENTMUTIGENDEM Kommentar!

Aber ich bleibe dabei. Die Datei im Sekundentakt zu schließen und zu 
öffnen ist ein schlechtes Konzept.
Gast #7221966
Lesenswert?

Ich hatte vor Jahren mal eine ähnliche Loggingaufgabe. Ich habe ins 
Flash dann nur roh geschrieben.
Initial wurde das gesamte Flash mit 0 vorinititalisiert.
Es wurde reingeschrieben mit festem Record, inclusive Zeitstempel. Wenn 
Inhalt  drin stand, dann war den Record auf jeden Fall != 0.
Das Programm suchte sich am Anfang die letzte Schreibposition (binary 
Suche) und fügte dann die Daten an. Ganz ohne Filesystem, nur direktes 
Flash schreiben.
Das System sollte Daten von Maschinen loggen, die auch während des 
Betriebes hart abgeschaltet werden können.
Das hat alles super funktioniert. Überlebte Abstürze, Abschalten etc.

Vielleicht noch mal das Konzept überdenken. Man muss dann nur auch unter 
Windows (oder wo man die Karte ausliest) roh lesen können. Bei Linux 
geht das.
#7221971
Lesenswert?

PittyJ schrieb:
> Ich hatte vor Jahren mal eine ähnliche Loggingaufgabe. Ich habe ins
> Flash dann nur roh geschrieben.

Blöde Idee bei SD Karten, deren Firmware (Wear-Leveling) ist auf 
FAT/Exfat ausgelegt.

Und Chan FatFS ist üblicherweise so klein das man es im µC problemlos 
rein bekommt.

SD Karten dürfen im SPI Mode mal eben 100mA aus den 3,3V saugen - das 
vergisst man mitunter im Hardware Design.

Ich hatte hier auch schon no-name Karten die nach extremst kurzer Zeit 
ausfielen - grade im MCU SPI Betrieb.

Sandisk oder Samsung Karten machen weniger Probleme.
Gast #7222012
Lesenswert?

> Aber ich bleibe dabei. Die Datei im Sekundentakt zu schließen und zu
> öffnen ist ein schlechtes Konzept.

Das denke ich auch. Aber manchmal wohl notwendig. Das Optimum ist 
natuerlich
das ein Anwender jedesmal vor einer Entnahme die Karte erstmal abmeldet.
Die Praxis sieht leider anders aus. Wenn dann die Daten wichtiger sind
wie die Lebensdauer der Karte ist sowas wohl sinnvoll.

Man koennte natuerlich zwischenspeichern und immer die letzen 10 oder 
100 Meldungen auf einmal schreiben, aber wenn das wichtige 
Fehlermeldungen sind die man bei einem Systemausfall haben moechte?

Olaf
Gast #7222013
Lesenswert?

> ... roh ...  Blöde Idee bei SD Karten ...

Wie dem auch sei - eine meiner Anwendungen arbeitet so; ab Adresse 0 
einige Blöcke als rudimentäres Inhaltsverzeichnis, dahinter Audio-Daten. 
Eine takeMS 1 GB-SDC wird so etwa ein halbes Dutzend mal pro Monat 
beschrieben, seit ca. zehn Jahren - hält noch immer durch.
Gast #7222027
Lesenswert?

> Eine takeMS 1 GB-SDC wird so etwa ein halbes Dutzend mal pro Monat
> beschrieben, seit ca. zehn Jahren - hält noch immer durch.

Vermutlich wegen Groesse und Alter noch SLC und nicht MLC. .-)

Mein Eindruck ist das neuere Karten zickiger sind. Jedenfalls
fuer Messtechnikanwendungen. Diese Industrialkarten gibt es nicht
ohne Grund. Die kamen, oh Zufall, ja so vor 10-15Jahren in Mode.

Olaf
#7222029
Lesenswert?

olaf schrieb:
> Man koennte natuerlich zwischenspeichern und immer die letzen 10 oder
> 100 Meldungen auf einmal schreiben, aber wenn das wichtige
> Fehlermeldungen sind die man bei einem Systemausfall haben moechte?

Baut man eine USV für Arme, die zumindest den Controller + Karte noch 
für ein paar Sekunden am Leben hält, wenn der Strom ausfällt.
#7222032
Lesenswert?

S. Landolt schrieb:
>> ... roh ...  Blöde Idee bei SD Karten ...
>
> Wie dem auch sei - eine meiner Anwendungen arbeitet so; ab Adresse 0
> einige Blöcke als rudimentäres Inhaltsverzeichnis, dahinter Audio-Daten.

Das geht mit FAT genauso gut. Man muss nur am Anfang einmalig die Datei 
mit maximaler Größe anlegen, dann werden alle Sektoren reserviert und 
danach einer nach dem anderen geschrieben.

> Eine takeMS 1 GB-SDC wird so etwa ein halbes Dutzend mal pro Monat
> beschrieben, seit ca. zehn Jahren - hält noch immer durch.

Was heißt das? Wieviele Daten kommen dort pro Monat drauf? Wohl kaum 
6x1GB, oder?
Gast #7222044
Lesenswert?

Falk Brunner schrieb:
> Das geht mit FAT genauso gut

Das war ja nicht das Thema.

> Wieviele Daten ...

Spielt das eine Rolle? Jedesmal ein paar Dutzend MB, natürlich mit 
Überschreiben des Inhaltsverzeichnisses bei Adresse 0.
#7222055
Lesenswert?

Stefan F. schrieb:
> S. Landolt schrieb:
>> natürlich mit Überschreiben des Inhaltsverzeichnisses bei Adresse 0.
>
> Ich gehe mal stark davon aus, dass jede vertrauenswürdige SD Karte das
> Inhaltsverzeichnis immer wieder woanders hin verschiebt damit sie Karte
> einigermaßen gleichmäßig verschleißt.

Die SD-Karte weiß nichts vom Inhaltsverzeichnis, für sie sind es einfach 
Daten.
Wenn die Karte ein Waer-Leveling hat, dann werden die Daten mal hier mal 
dort geschrieben. Unabhängig vom Inhalt der Daten.
Gast #7222091
Lesenswert?

Jim M. schrieb:
> PittyJ schrieb:
>> Ich hatte vor Jahren mal eine ähnliche Loggingaufgabe. Ich habe ins
>> Flash dann nur roh geschrieben.
>
> Blöde Idee bei SD Karten, deren Firmware (Wear-Leveling) ist auf
> FAT/Exfat ausgelegt.

Das war keine SD-Karte. Sondern ein fest verdrahteter Flash-Chip.
Ich wollte nur ein Beispiel geben, wie man ohne Filesystem auch 
fehlertolerantes Logging mit wenig Aufwand machen kann.
Zumindest reduziert das ein permanentes Schreiben in 
Filesystem-Strukturen und erfordert kein Wear-Leveling.
Gast #7222109
Lesenswert?

> Ich gehe mal stark davon aus, dass jede vertrauenswürdige SD Karte das

Das ist ein Traum den du so nicht nachgeben solltest.
Das Problem faengt schon damit an das es Dutzende Moeglichkeiten gibt
eine SD-Karte mit unterschiedlichen grossen FAT Inhaltsverzeichnissen in 
unterschiedlichen groessen and verschiedenen Stellen abzulegen. Die 
Karte koennte eine Superfloppy sein, sie kann eine Partitionstabelle 
haben.
Frag dich mal warum jede Kamera in der Lage ist eine SD-Karte mit ihrem 
eigenen Format zu formatieren. .-)

Nene, sowas kann der arme Controller nicht leisten.

Die werden eine Etage tiefer ansetzen. Die werden etwas groessere 
Speicherbloecke haben als sie das nach aussen anzeigen und dort 
Informationen wie Pruefsummen und Wearlevelung halten. Wenn dann die 
Fehler pro Sektor an die Grenze der Korrektur kommen dann wird der 
Sektor halt kopiert und fuer defekt erklaert.
Aber ich glaube nicht das auf Filesystemlevel gearbeitet wird. Das 
wuerde zuviele externe Abhaengigkeiten reinbringen.

BTW: Ich habe SD-Karten auch immer problemlos mit EXT2 genutzt auch wenn 
Windowsanwender dann immer gruen vor Besserwissertum wurden. :)

Olaf
Gast #7222151
Lesenswert?

olaf schrieb:
> Nene, sowas kann der arme Controller nicht leisten.

Gut dass es nur den einen Controller gibt, denn kennst du einen kennst 
du dann alle. Gut das alle Hersteller lügen, die ausdrücklich darauf 
hinweisen dass man die Karte nicht umformatieren soll bzw. bestimmte 
Formate vorgeben, insbesondere die "guten" Markenhersteller.
Gast #7222547
Lesenswert?

> hinweisen dass man die Karte nicht umformatieren soll bzw. bestimmte
> Formate vorgeben, insbesondere die "guten" Markenhersteller.

Und die Hersteller deiner Kamera sagen dir: Du hast Probleme? Du willst 
was wichtiges machen wie Firmwareupdate? Ja dann formatiere erstmal die 
Karte in der Kamera....

Olaf
Gast #7222564
Lesenswert?

900ss D. schrieb:
> Hast du dazu mal eine Referenz?

Das stand bei bei einer Karte von Sony dabei, die ich damals für meine 
Digitalkamera kaufte. Das war eine besonders teure Karte mit vielen 
Jahren Garantie auf Datenerhalt. Die Anleitung ist online nicht 
verfügbar und ich habe die Kamera samt Karte und Anleitungen verkauft.

Es gibt ein Extra Formatier-Tool dass man nehmen soll, um schlechte 
Performance oder verkürzte Lebensdauer zu vermeiden: 
https://www.sdcard.org/downloads/formatter/
Gast #7222673
Lesenswert?

> Es gibt ein Extra Formatier-Tool dass man nehmen soll, um schlechte
> Performance oder verkürzte Lebensdauer zu vermeiden:
> https://www.sdcard.org/downloads/formatter/

Das Tool ist bekannt. Eine NoName-SD, die unter Windows komische Dinge 
machte, war nach Behandlung mit dem SD-Formatter ganz tot.

-----------

Mein Akkutester schreibt alle 15s pro Kanal seine Werte auf die Karte, 
er hat zwei Kanäle. Das ist die gleiche Softwarebasis wie mein aktuelles 
Sorgenkind und wird seit über 2 Jahren problemlos betrieben, hunderte 
von Stunden. Auch da habe ich eine Xmore drin.

In den habe ich die Problemkarten eingesteckt, ich habe zwei davon - und 
nach ziemlich genau 11 Minuten steigen die aus. Ist ein Indiz, dass es 
nicht unbedingt am schnelleren Schreiben liegt.

Danach habe ich eine 32Gb-Sandisk Class10 reingetan, breche ich jetzt 
nach knapp 6 Stunden ab, ohne Probleme 2x1340 Datensätze geschrieben.

Mein anderer Aufbau "Sorgenkind" mit 10s-Intervall läuft mit der 
Xmore-Karte nun seit Donnerstag Mittag durch, etwa 56 Stunden. Das soll 
er noch bis Montag oder gar Dienstag tun, falls der Akku so lange 
reicht.

Ich habe vorhin mit AutoIT ein Programm gebaut, was am PC etwa jede 
Sekunde einen Datensatz auf die Problemkarte schreibt. Das läuft jetzt 
seit knapp 2 Stunden / 7000 Datensätze ohne Ausfall.

Was immer da in der Arduino-Umgebung anders ist, ich denke, ich werde es 
nicht ergründet bekommen.
#7222675
Lesenswert?

Stefan F. schrieb:
> Es gibt ein Extra Formatier-Tool dass man nehmen soll, um schlechte
> Performance oder verkürzte Lebensdauer zu vermeiden

Na ja, mag ja sein dass das hilft. Aber ich hab sehr starke Zweifel. Ich 
habe auf der Seite mal in die PDFs geschaut. Nichts wirklich 
informatives, eher Hochglanzprospekt mit oberflächlichem Geschwafel.
So schätze ich dieses Tool auch ein. Es ist sicher eine Hilfe, damit ein 
unbedarfter Nutzer eine Karte mit einem ungeeignetem Tool die Karte 
nicht unbrauchbar macht.
Aber vielleicht irre ich auch ;)

Wenn eine Karte echtes (gutes) Wear-Leveling beherrscht, dann braucht 
sie keine Optimierung für irgendein Filesystem.
Gast #7222819
Lesenswert?

900ss D. schrieb:
> Ich habe auf der Seite mal in die PDFs geschaut. Nichts wirklich
> informatives, eher Hochglanzprospekt mit oberflächlichem Geschwafel.

Die Details zum Wear Levelling werden leider immer noch streng geheim 
gehalten. Egal wo du suchst - nichts konkretes. Dazu kommt, dass alle 
zwei Wochen andere Karten verkauft werden, so dass man Erfahrungswerte 
anderer (welche Karten gut sind) auch kaum nutzen kann.

> Wenn eine Karte echtes (gutes) Wear-Leveling beherrscht,
> dann braucht sie keine Optimierung für irgendein Filesystem.

Da bin ich bei dir. Bei SSD ist es definitiv so, und zwar allgemein, 
nicht nur bei bestimmten Modellen.
#7222903
Lesenswert?

Stefan F. schrieb:
> Die Details zum Wear Levelling werden leider immer noch streng geheim
> gehalten.

Ja, kein Hersteller lässt sich in die Karten gucken. Ich habe beruflich 
mit einem Flash "Framework" gearbeitet, da sollen die Algorithmen 
angeblich sogar mit Patenten geschützt gewesen sein.

Aber trotzdem erwarte ich vom Hersteller genauere Angaben über die 
Massnahmen zum Schutz der Flashbausteine (SD-Karten). So kusieren nur 
Gerüchte. Bei den professionellen Karten sieht es etwas besser aus.
Gast #7223397
Lesenswert?

900ss D. schrieb:
> Aber trotzdem erwarte ich vom Hersteller genauere Angaben über die
> Massnahmen zum Schutz der Flashbausteine (SD-Karten).

So konnte ich vor Jahren weder für SD und SSD nähere Angaben bekommen. 
Es hat etwas Zeit benötigt, bis herausgefunden werden könnte, dass 
dahinter nichts anderes Stand als kaschieren von Unwissenheit. Es gibt 
welche, die können die Ersatzzellen frei zuordnen, andere haben das in 
Blöcke aufgeteilt und die sind nur zugeordneten Teilbereichen zuzuordnen 
möglich. Letztere fallen gutmütiger aus, wenn auf der SD für Swap eine 
eigene Partition angelegt wurde.
Gast #7223516
Lesenswert?

Manfred schrieb:
> Ich habe vorhin mit AutoIT ein Programm gebaut, was am PC etwa jede
> Sekunde einen Datensatz auf die Problemkarte schreibt. Das läuft jetzt
> seit knapp 2 Stunden / 7000 Datensätze ohne Ausfall.

Noch eine Weile laufen lassen, und dann die Testdatei genau angeguckt: 
Anstatt 11.000 Datensätzen stehen nur 10.800 drin, etwa alle 50 fehlt 
einer!

Ich habe heute eine Fehlerabfrage eingebaut, und gucke da, mit dieser 
gibt es nach einer Weile schreiben einen Abflug :-(

Damit ist für mich nun klar, dass die Aurduino-Umgebung nicht der primär 
schuldige ist. Jetzt muß ich mir überlegen, entweder auf SD-Karten zu 
hoffen, die keine Pause machen oder meine Fehlerbehandlung zu verändern.

Wer das nachvollziehen möchte, kann den Anhang unter AutoIT direkt im 
SciTE ausführen, sollte auch in der aktuellen Version laufen. Am Anfang 
Zeile 14 muß die Zieldatei angepasst werden, Zeilen 71..77 kann man 
auskommentieren, um ohne Fehlerbehandlung zu schreiben.

https://www.autoitscript.com/site/autoit/downloads/
Angehängte Dateien:
#7223681
Lesenswert?

olaf schrieb:
> Wenn dann die Daten wichtiger sind wie die Lebensdauer der Karte ist
> sowas wohl sinnvoll.

Das widerspricht sich allerdings, denn wenn die Karte kaputt geht, sind 
auch die Daten weg. Es sei denn, man tauscht sie so oft aus, dass man 
sich ausreichend sicher sein kann, dass sie so lange durchhält.

Jim M. schrieb:
> PittyJ schrieb:
>> Ich hatte vor Jahren mal eine ähnliche Loggingaufgabe. Ich habe ins
>> Flash dann nur roh geschrieben.
>
> Blöde Idee bei SD Karten, deren Firmware (Wear-Leveling) ist auf
> FAT/Exfat ausgelegt.

Sie dürfen unter der Annahme arbeiten, dass das drauf ist. Aber wenn man 
die Karte so beschreibt, dass kein spezifischer Sektor besonders oft 
beschrieben wird, sollte das auch auch nach dem Wear-Leveling so einer 
Karte kein Problem erzeugen.

olaf schrieb:
> Das Problem faengt schon damit an das es Dutzende Moeglichkeiten gibt
> eine SD-Karte mit unterschiedlichen grossen FAT Inhaltsverzeichnissen in
> unterschiedlichen groessen and verschiedenen Stellen abzulegen.

Das Format ist genau vorgegeben. Wenn man die Karte davon abweichend 
formatiert, dann funktioniert es natürlich nicht mehr.

> Frag dich mal warum jede Kamera in der Lage ist eine SD-Karte mit ihrem
> eigenen Format zu formatieren. .-)

Wie kommst du darauf, dass jede Kamera das anders macht? Wenn sie zur 
SD-Spec konform sein will, muss sie es die Karte auch genau so 
formatieren, wie das dort vorgegeben ist.

900ss D. schrieb:
> Ja, kein Hersteller lässt sich in die Karten gucken. Ich habe beruflich
> mit einem Flash "Framework" gearbeitet, da sollen die Algorithmen
> angeblich sogar mit Patenten geschützt gewesen sein.

Dann kann man ja in der Patentschrift nachlesen, wie das Verfahren 
funktioniert.
Gast #7223721
Lesenswert?

> auch die Daten weg. Es sei denn, man tauscht sie so oft aus, dass man
> sich ausreichend sicher sein kann, dass sie so lange durchhält.

Es gibt Leute die tauschen einmal im Jahr das Oel in ihren Autos aus 
weil das der Hersteller fuer sinnvoll haelt, es gibt Firmen die tauschen 
dir alle 2-3Jahre den Laptop aus weil sie hoffen das dann nie einer im 
Einsatz kaputt  geht. Aehnliches kenne ich auch in der Messtechnik zumal 
es da sowieso viele Verbrauchsmaterialien gibt die ein vielfaches einer 
SD-Karte kosten. Es gibt sogar Leute die tauschen die Farbpatronen ihres 
Druckers aus weil der ihnen sagt das die ausgetauscht werden sollen. Und 
ihr tauscht ja auch die Streamertapes oder Festplatten eurer 
Backupstrategie aus bevor sie versagen oder?

Also machbar ist das und neu ist es auch nicht.

Olaf
Gast #7224067
Lesenswert?

> Noname-µSD-Karten, die im Sekundentakt beschrieben werden, als
> sinnvoll erachten?

Wieviel Sekunden brauchst du zum wechseln? .-)

Ich wuerde weder fuer die Firma noch fuer Privat irgendso einen 
NoNameunsinn kaufen wenn ich Daten speichern moechte.

Olaf
#7224068
Lesenswert?

Rolf M. schrieb:
> Noname-µSD-Karten

Weshalb benutzt man diese wenn doch bekannt ist, dass die viel Probleme 
machen? Selbst wenn eine mal gut funktioniert ist ja nicht gesagt, dass 
die nächste auch gut funktioniert. Wenn jemand nach "geiz ist geil" 
einkauft, dann muss er das eben berücksichtigen und sich über den Ärger 
nicht wundern.
#7224095
Lesenswert?

900ss D. schrieb:
> Rolf M. schrieb:
>> Noname-µSD-Karten
>
> Weshalb benutzt man diese wenn doch bekannt ist, dass die viel Probleme
> machen?

Das musst du den Threadersteller fragen, nicht mich.

> Selbst wenn eine mal gut funktioniert ist ja nicht gesagt, dass
> die nächste auch gut funktioniert.

Richtig. Deshalb ja die Frage, was man da für ein Intervall ansetzen 
soll.
#7224106
Lesenswert?

Kann es vielleicht sein, dass sich die Karte im SPI-Mode als MMC nur 
dankenswerterweise nicht verweigert?
Ich meine, mal gelesen zu haben, dass die Karten ab 2 oder 4 GByte 
diesen SPI.Mode nicht offiziell mehr unterstützen, sonder eigentlich im 
4-Bit SDIO (heist das so?) laufen sollen?
Weiss da jemand was genaueres?
Gast #7224122
Lesenswert?

> SPI.Mode nicht offiziell mehr unterstützen ...
> Weiss da jemand was genaueres?

Nur Erfahrungswerte: 8 GB von Intenso sowie diverse Sorten 16 und 32 GB 
von SanDisk und Samsung laufen alle mit SPI.
Gast #7224154
Lesenswert?

> SPI.Mode nicht offiziell mehr unterstützen ...
> Weiss da jemand was genaueres?
musst du in die Spezifikation schauen.
Wenn ich mich recht erinnere:
bis SDXC must support,
ab SDUC nicht mehr
#7224188
Lesenswert?

Rolf M. schrieb:
> Das widerspricht sich allerdings, denn wenn die Karte kaputt geht, sind
> auch die Daten weg

da muss ich widersprechen, nicht alle Daten sind weg, die Karte schaltet 
oft in den read only mode, die Karte ist zwar kaputt aber die letzten 
Daten sind oft noch lesbar.

Ich habe hier mindestens 4 kaputte µSD die lesbar aber kaputt im read 
only mode sind, denn sie lassen sich mit keinem Tool oder mit gparted 
oder dd bearbeiten.

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