Go Down

Topic: Frage zum SD Karte beschreiben? (Read 2 times) previous topic - next topic

uwefed

Du kannst einen dicken Kondensator auf die Versorgungspannung schalten und diese über eine Diode laden. Du kontrollierst die Versorgungspannung vor der Diode und bei absinken unter einen gewissen Wert (weil die Versorgungspannung von außerhalb fehlt) springst Du in die Abschaltfunktion die die ausständigen Daten in die Sd schreibt und das Fils schließt.

Du kannst auch einen Start-Stop Taster und ein Busy LED vorsehen Geht einfacher. ;)

Grüße Uwe

Doc_Arduino

#6
Mar 10, 2013, 09:40 pm Last Edit: Mar 10, 2013, 10:21 pm by uwefed Reason: 1
Hallo,

oaky, dann werde ich einen Taster einbauen, womit der Sketch weis das ab jetzt nicht mehr erneut geöffnet werden darf. Eine LED wie Michael das macht werde ich auch einbauen. Gute Idee.  DANKE @ all

@ Michael
um die Abnutzung der Speicherzellen mußte Dir keine Sorgen machen. Der Karten interne Controller regelt das selbst. Er verteilt alle Schreibzugriffe selbstständig. Es ist nicht so wie bei mechanischen Festplatten das beim ständigen überschreiben der immer gleichen Datei immer der gleiche Sektor und damit die vermeintlich gleichen Speicherzellen beschrieben werden. Da müßte man am Karten Controller vorbei direkten Zugriff haben auf die einzelnen Flashzellen um immer wieder eine bestimmte zu beschreiben. Du kannst mehrere Jahre Deine Karte beschreiben. Dann werden die defekten Zellen ausgeblendet und erst wenn der Speicherbereich in Summe der intakten Zellen kleiner wird wie Deine Dateigröße bekommst Du ein Problem. Gute Controller und bugfreie Firmware zusammen lassen aber dann auf die defekten Zellen eh keinen Schreibzugriff mehr zu sondern nur noch lesend. Gilt für Speicherkarten wie für SSD's gleichermaßen.
Tschau
Doc Arduino

michael_x

Quote
Gute Controller


Meines Wissens wird vom Arduino ziemlich "roh" geschrieben, also der zu schreibende Sektor gewählt.
Ist die übliche SD library ein "guter Controller" ?

Aber Sorgen mach ich mir eigentlich nicht...

uwefed

Der beschreibene Controller sitzt in der SD-Karte zwischen Anschlüsse und Speicherchip.
Da hat der Arduino nichts zu melden.
Grüße Uwe

Doc_Arduino

Hallo,

wie Uwe schon schreibt. Du verwechselt jetzt was. Ich meinte mit "guten Controller" nicht den Arduino µC. Sondern den der in jeder Speicherkarte steckt. Blöd formuliert. Gibts überhaupt noch schlechte Controller in Speicherkarten? Ich glaube nicht. Nur noch bei SSDs zusammen mit verbugter Firmware.  ;)

Meinetwegen kann der Arduino mit seiner Library immer den gleichen Sektor ansteuern. Das ändert aber nichts an der Tatsache das immer noch der Speicherkarten interne Controller, den ich meinte, dazwischen sitzt. Nur dieser hat direkten Zugriff auf seine Flashspeicherzellen wo letztlich alle Daten Bits und Bytes landen. Man hat bei Flashspeichern nicht mehr wie bei mechanischen Festplatten die volle Kontrolle wo die Daten genau landen. Du weist in welchen Sektor die Daten landen und wo Du sie abholst. Das reicht aus. Der Karten interne Controller nimmt das entgegen und verteilt intern lustig wie er möchte. Und auch nur er weis wo er die Daten wieder lesen muß wenn Du nach einem bestimmten Sektor von außen anfragst.

Mußte Dir vorstellen wie bei einer Konzertgarderobe. Du erhälst eine Blechmarke mit Nummer. Die Dame hängt Deine Jacke an irgendeinen Haken. Nur sie weis welche Marke zu welcher Jacke gehört. Die Dame wäre der Karten interne Controller. Und Du hälst die Blechmarke mit der Sektornummer in der Hand.

Nur dadurch kann der Karten interne Controller seine vorhandenen Speicherzellen gleichmäßig durch Schreibvorgänge abnutzen. Weil niemand anderes von außen dazwischen funken kann.

Nennt sich übrigens Wear-Leveling. Kannst ja mal das Internet danach befragen.  :)

Tschau
Doc Arduino

Go Up