Hallo zusammen Hat jemand Erfahrungen gemacht, was passiert, wenn während eines Schreibzyklus auf einen Speicherbaustein (in meinem Fall ein FRAM von Ramtron - FM25040) die Spannung ausfällt? Ist dann nur der Inhalt der aktuell adressierten Speicherzelle "unbrauchbar" und können dadurch auch benachbarte oder überhaupt andere Speicherzellen manipuliert werden? z.b. ich habe auf Adresse 0x00 den Wert "1", auf 0x01 den Wert "2" und auf 0x02 den Wert "3" gespeichert. Was passiert, wenn jetzt während des Schreibvorganges auf Adresse 0x00 (CS -> low, Op-Code und Adresse wurden übermittelt, MSB vom Datenbyte wurde übermittelt -> Spannung fällt aus (nach dem 17. Clock-Impuls)) die Spannung ausfällt? Muss der Schreibzyklus vollendet sein (CS -> high) damit die Daten in die Speicherzelle geschrieben werden oder wird dann nur das MSB überschrieben weil es empfangen wurde oder steht dann irgendwas auf Adresse 0x00 bzw. wie schon oben erwähnt, sind andere Speicherzellen auch betroffen? Im Datenblatt habe ich keine Angaben darüber gefunden. http://www.ramtron.com/files/datasheets/FM25040B-GA_ds.pdf Mir würde es eigentlich schon genügen, wenn nur die adressierte Speicherzelle unbrauchbar ist. Ich will nämlich einen Zählerstand speichern und habe mir überlegt, den Zählerstand 3mal nacheinander abzulegen. (CS->low, speichern auf Adresse 0x00,CS->high,CS->low, speichern auf Adresse 0x01,CS->high,...) Wenn durch einen Spannungsausfall während eines Schreibzyklus (Wahrscheinlichkeit eher 0) nur die betroffene Speicherzelle unbrauchbar wird, habe ich immer noch 2 Speicherstellen mit dem richtigen Zählerstand. Vielen Dank schon mal für eure Beiträge Gruß Christian
Der Spannungsausfall selbst ist irrelevant, es sei denn es gelingt dir, eine Schaltung entwickeln, die innerhalb einiger zig Nanosekunden einen innerhalb der gültigen Spannungsgrenzen korrekt gestarteten Schreibzyklus weit genug aus dem zulässigen Spannungsbereich laufen lässt um Schrott zu produzieren. Um das zu erreichen musst du schon crowbar-mässig zuschlagen. Sollte es dir aber tatsächlich gelingen, das FRAM derart vorsätzlich zu vergewaltigen, dann ist nicht nur ein Byte hinüber und das Risiko besteht nicht nur beim Schreiben sondern auch beim Lesen. Denn FRAMs arbeiten wie DRAMs (oder besser noch: wie Ringkernspeicher) mit zerstörendem Lesen, wobei bei Lese- wie Schreibvorgang eine komplette Zeile ausgelesen und zurückgeschrieben wird. Wenn deine Schaltung bzw. dein Controller jedoch ohne Spannungsüberwachung arbeitet, dann allerdings kann viel passieren. Auch dass der Controller an die falsche Stelle schreibt.
das heißt, wenn ich dich richtig verstanden habe, wenn die Spannung unter "normalen" Umständen (Netzgerät, welches mir die Schaltung speist, fällt aus) ausfällt, dann geschieht das so langsam, dass der Zählerstand mit Sicherheit abgespeicher ist. Interpretier ich das so richtig?
Christian Swoboda schrieb: > Interpretier ich das so richtig? Ja, so sehe ich das. Vorausgesetzt dein Controller arbeitet mit zu den Betriebsparametern des FRAM passender Spannungsüberwachung (wie z.B. brownout detection). Wenn du deine 3fache Speicherung durchziehen willst, dann achte darauf, dass die in verschiedenen Zeilen landen.
Zur anderen Frage, nämlich zu dem was passiert, wenn ein brownout detector den SPI-Zyklus mittendrin abgebricht: Da Bytes sequentiell geschrieben werden können, sie aber laut Datasheet nach jedem einzelnen Byte sofort geschrieben werden, muss das Teil immerhin mitzählen und man darf berechtigte Hoffnung haben, dass ein unvollständig übertragenes Byte nicht geschrieben wird. Aber ganz genau weiss das nur RAMTRON - und du nach einem entsprechenden Versuch.
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.