Forum: Mikrocontroller und Digitale Elektronik Speicher resetten


von sb (Gast)


Lesenswert?

Hallo

wie kann ich einen Speicherbaustein (SRAM) auf einen Schlag resetten? 
Reicht es da einfach die Versorgungsspannung wegzunehmen, oder muss amn 
in jede Zelle 0 schreiben?

von Sonic (Gast)


Lesenswert?

Du kannst auch die Versorgungsspannung kurz auf Masse legen, falls die 
Schaltung das erlaubt.

von sb (Gast)


Lesenswert?

OK Danke!

von Peter D. (peda)


Lesenswert?

sb wrote:

> Reicht es da einfach die Versorgungsspannung wegzunehmen,

Nein.
Manche SRAM können sehr lange ihren Inhalt merken.
Ich hatte z.B. mal eine Kaltstarterkennunhg geschrieben, bei der 16 
Bytes ins SRAM geschrieben wurden.
Hat aber nicht funktioniert, die Bytes waren selbst nach einer Minute 
Ausschalten noch unverändert.

Beim Einschalten sind außerdem zufällige Werte im SRAM und nicht 0.


> oder muss amn
> in jede Zelle 0 schreiben?

Ja, das ist die einzig funktionierende Methode.


Peter

von Sonic (Gast)


Lesenswert?

Wenn du den Versorgungspin des SRAM z.B. über ein Relais kurz auf Masse 
Schaltest verliert es seinen Inhalt, offenlassen geht nicht.

von Falk (Gast)


Lesenswert?

Trotzdem ist der Inhalt nach dem Wiedereinschalten zufällig und nicht 
definiert 0.

MfG
Falk



von Sonic (Gast)


Lesenswert?

Bei mir war der Inhalt ausnahmslos 0xFF.

von Falk (Gast)


Lesenswert?

Womit erst recht nicht das Ziel des OP erreicht ist ;-)

MfG
Falk

von Aufreger deluxe (Gast)


Lesenswert?

Glück gehabt.

von Sonic (Gast)


Lesenswert?

>Womit erst recht nicht das Ziel des OP erreicht ist

Das Ziel ist doch resetten, oder kann ich wirklich nicht Lesen? So 
steht's jedenfalls ganz oben. Nach RESET steht nun mal 0xFF drin, nicht 
Null.
Wen ich Null drinhaben will haste Recht, dann muss ich alles mit Null 
beschreiben.

von sb (Gast)


Lesenswert?

0 oder 1 ist egal, hauptsache alle bits sind gleich.

von A.K. (Gast)


Lesenswert?

Der Inhalt beim Einschalten ist schlicht und einfach undefiniert. Ob das 
durchweg 1, durchweg 0, je nach Bank das das eine oder andere oder 
weitgehend Zufall ist, kann möglicherweise sogar zwischen Exemplaren des 
gleichen Fabrikats abweichen. Wenn du Pech hast, sogar beim selben 
Exemplar nicht reproduzierbar sein (z.B. Temperatur, Spannung).

Bei DRAMs ist es zwar reproduzierbar, aber ebenfalls nicht definiert (ob 
0 oder 1 kann von interner Organisation abhängen).

von crazy horse (Gast)


Lesenswert?

und wozu sollte dieses wieder gut sein? Das macht doch jedes (ordentlich 
geschriebene) Programm dort, wo es nötig ist.
Im Stackbereich ist es völlig wurscht, was da steht, Variablen werden 
initialisiert (durchaus nicht immer mit 0), evtl. im RAM laufender Code 
wird sowieso dahin kopiert, was also sollte das bringen?

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.