Ein Datenlogger speichert Daten auf einem seriellen 256 Mbit Flash-Baustein (W25Q256). Das Ganze soll über USB auslesbar sein, deshalb wurde FAT16 als Filesystem verwendet, genutzt wird FATFs von ElmChan. Am USB verhält sich das Gerät als normaler Massenspeicher. Das Ganze funktioniert auch, allerdings beschreibt FAT den Speicher sehr ungleichmäßig. Die File Allocation Table wird sehr häufig beschrieben, so dass zu befürchten ist, dass die zugehörigen Sektoren schnell verschleißen und ausfallen. Ein Wear-Leveling muss also her. Dieses würde ich zwischen Dateisystem und Flash-Treiber schalten. Bei Microchip gibt es dazu eine application note: https://www.microchip.com/en-us/application-notes/an32194 Leider weiss ich nicht, wo ich die dort erwähnte Library finden kann. Die Suche nach "ftl" liefert nur unbrauchbare Ergebnisse. Kennt jemand eine freie Bibliothek, die ich nutzen kann? Selbst programmieren wäre auf den ersten Blick natürlich auch möglich, man müsste eine Tabelle anlegen, die die logischen und physischen Addressen aufeinander abbildet. dazu noch Zähler für die Anzahl der Schreibvorgänge. Das Problem ist, dass diese Tabellen ja auch im Flash abgelegt werden müssen, um sich beim Abschalten nicht zu verflüchtigen. Damit kämen auch wieder viele Schreibvorgänge auf die gleiche Speicheradresse zustande.
littlefs und für USB nimmt man sinnvollerweise ein MTP-Device.
Nimm eine Micro-SD-Card. Einfacher, schneller und billiger geht es nicht.
Falk B. schrieb: > Nimm eine Micro-SD-Card. Einfacher, schneller und billiger geht es > nicht. Für Einzelstücke und Kleinserien stimme ich dem durchaus zu, wobei es aber ganz beträchtliche Qualitätsunterschiede zwischen verschiedenen microSD-Kartentypen und -Herstellern gibt. "Jeder" weiß, dass billige Karten etwa so zuverlässig sind wie billige USB-Speicherschniepel. Für wirklich hochwertige microSD-Karten, vorzugsweise noch als SLC- oder zumindesten MLC-Flash, zahlt man auch schnell 30-200 Euro. Die würde ich auf Grund der massiven Fälschungsgefahr auch nicht bei "irgendeinem" Online-Shop kaufen, sondern nur bei einem der offiziellen Distributoren oder gar dem Hersteller selbst. Ich kann Swissbit empfehlen, erhältlich z.B. bei Mouser oder direkt. Den anderen Weg, nämlich hostseitig MTP statt FAT anzubieten, halte ich generell auch für sehr sinnvoll, da hierdurch keine physische Dateisystemstruktur vorausgesetzt wird. Oder gibt es schon Bibliotheken, die hostseitig FAT emulieren, aber intern auf beliebigen (virtuellen) Dateizugriffsfunktionen basieren?
Es gibt doch auch noch aufloetbare ICs welche wie MicroSD angesprochen werden. Die sollten doch dann auch WL enthalten? Olaf
Olaf schrieb: > Es gibt doch auch noch aufloetbare ICs welche wie MicroSD > angesprochen werden. eMMC. https://de.wikipedia.org/wiki/Multimedia_Card#Embedded_MultiMedia_Card > Die sollten doch dann auch WL enthalten? Vermutlich.
Nachdem in meinem Fotoapparat mehrmals Speicherkarten ausfielen, hatte ich mal deutlich tiefer ins Portemonnaie gegriffen und eine gute Karte von Sony gekauft, mit 10 Jahren Garantie auf die Daten. Die Karte hat etwa 5x soviel gekostet wie normale. Damit hatte ich dann keine Probleme mehr.
Olaf schrieb: > Es gibt doch auch noch aufloetbare ICs welche wie MicroSD > angesprochen werden. Die sollten doch dann auch WL enthalten? > > Olaf Mit SD-Karten als Datenspeicher habe ich schon gearbeitet, leider auch mit schlechten Erfahrungen. Auch wenn die mittlere Datenrate hoch ist, genehmigen sie sich manchmal sehr viel Zeit beim Schreiben, die Spezifikation erlaubt hier bis zu 250ms. Vermutlich liegt das am Wear-Leveling, das gelegentlich größere Datenblöcke umschaufelt. Wenn in diesem Moment gerade viele Daten zum Speichern eintrudeln, läuft der innere Puffer des µC über. Ich kenne keinen Weg, den Moment des Wear-Leveling aktiv zu steuern, z.B. beim Hochfahren oder in einer ruhigen Phase. Außerdem ist in den Karten und auch den eMMC meines Wissens NAND-Flash verbaut, das deutlich weniger Schreibvorgänge zulässt als NOR-Flash (3-10.000 vs 100.000). Das kann man natürlich durch eine höhere Speicherkapazität wieder ausgleichen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.