Forum: Mikrocontroller und Digitale Elektronik Spannungsausfall bei Schreibzyklus auf FRAM


von Christian S. (swoc)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von Christian S. (swoc)


Lesenswert?

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?

von (prx) A. K. (prx)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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
Noch kein Account? Hier anmelden.