Forum: Mikrocontroller und Digitale Elektronik Ausschalt-Erkennung


von hammer_c (Gast)


Lesenswert?

Moin!

ich möchte, daß mein AVR jedes mal wenn er ausgeschaltet wird noch ein
paar Einstellungen im EEPROM speichert. Hatte mir das irgendwie so
vorgestellt, daß an einem Eingangs-Pin die normale Versorgungsspannung
anliegt und der Zustand des Pins im AVR die ganze Zeit gepollt wird.
Sobald der Pin Low geht soll er dann halt in die EEPROM-Schreib-Routine
hüpfen. Das setzt natürlich vorraus, daß der AVR noch ein paar
Millisekunden am leben erhalten wird (z.B. mit Elko vor VCC). Ist das
möglich? Wie macht man sowas oder gibt es einen anderen Weg?

danke,

ciao christian

von Jonas Merz (Gast)


Lesenswert?

Hallo Christian,

deine Idee ist schon ganz gut, nur dass sie so noch nicht funktionieren
würde, weil auch der Elko die Spannung für deinen Portpin aufbringen
würde.

Eine einfache Diode dazwischen und das ganze sollte so funktionieren.
Du musst nur einen Elko nehmen, der eine Kapazität hat, die groß genug
ist, alle Daten noch sicher im EEPROM zu sichern.

Problematisch könnte sein, dass das EEPROm sich nicht unendlich oft
beschreiben lässt. Das kommt dann auf die Anwendung an, ob es sinnvoll
ist ...

Ein anderer Weg wäre, einfach einen Ausschalter mit einem Portpin zu
verbinden und bei Betätigung des Tasters alle Daten abzuspeichern und
anschließend mit einem anderen Portpin die Stomversorgung zu
unterbrechen (z.B. über ein Relais, ...)

Gruß Steffen

von hammer_c (Gast)


Lesenswert?

aha, vielen dank schon mal! werde ich mal testen...

ciao christian

von Björn (Gast)


Lesenswert?

So eine selbsterhaltende Schaltung mit einem Relais wäre wohl die beste
lösung wenn es nicht so unbedingt auf die Anzahl der Ausgänge ankommt.
Da der Controller dann die Daten auch ganz sicher ins EEprom schreibt.

von hammer_c (Gast)


Lesenswert?

moin!

so, also die Lösung mit der Diode wird wohl nicht funktionieren denk
ich... da bleiben von meinen 5V versorgungsspannung nicht mehr genug
für den controller übrig...

die eeprom-wiederbeschreibbarkeits-problematik wollte ich eigentlich
möglichst minimieren, indem nur die daten weggeschrieben werden, die
sich auch wirklich geändert haben... und so oft wird man an dem gerät
vermute ich die einstellungen nicht ändern...

die geschichte mit dem relais habe ich nicht ganz verstanden... gut, es
gibt einen aus-schalter, der bewirkt das der controller alles
abspeichert und sich selber danach per relais die stromversorgung
kappt... nur wie wird das ganze wieder angeschaltet? ...

ciao christian

von Dieter Götz (Gast)


Lesenswert?

Hallo,

es empfiehlt sich nicht, die 5V-Spannung über Kapazitäten zu puffern.
Bei einem Netzausfall fällt diese Spannung zu schnell auf die
Resetspannung. Besser ist es, eine höhere Spannung zur Pufferung zu
verwenden, z.B. 24V. Auf jeden Fall muss vor dem Pufferkondensator eine
Diode zum Pin der Versorgungsspannung liegen. Sonst entlädt sich der
Kondensator eventuell über das Netzteil.

Um die Störempfindlichkeit zu minimieren würde ich ein RC-Glied an den
Portpin empfehlen. Sonst führt jeder Störimpuls auf der Leitung zum Pin
zum Speichern der Daten.

Die Lösung mit dem Schalter funktioniert leider nicht, wenn die
Versorgungsleitung gezogen wird.

Um die Anzahl Schreibvorgänge auf das EEPROM zu optimieren, kann man
das EEPROM quasi in Sektoren aufteilen. Bei jedem Schreibvorgang wird
der Sektorschreibzähler um eins erhöht. Ist die maximale Anzahl
Schreibvorgänge in diesem Sektor erreicht, dann einfach auf den
nächsten Sektor umschalten.

Zur zusätzlichen Sicherheit kann noch eine CRC-Summe mit eingebaut
werden. Dadurch lässt sich nach dem Einschalten feststellen, ob das
letzte Speichern erfolgreich war.

Nun viel Spass beim Umsetzen.

von Björn (Gast)


Angehängte Dateien:

Lesenswert?

Ich hab mal einen Schaltplan gepostet so sollte das dann gehen.

von Mark de Jong (Gast)


Lesenswert?

Hallo,

Ich würde die versorgungs spannung vor dem regler messen,
und wenn er unter einen gewissen wert geht,
die einstellungen speichern.

Wenn der ELKO nach der regler gross genug ist, hast Du noch ausreichend
zeit zum speichern.

Zusetzlich die daten im EEPROM mit einen CRC sichern,
wenn einen CRC fehler beim starten detectiert wird,
standaard werte aus dem ROM/FLASH nehmen. (wie Dieter auch schon
sagte)

Grüße Mark.

von Sebastian Wille (Gast)


Lesenswert?

Hi,

und als Tip noch 'ne Freilaufdiode zwischen 1 und 2!

Sebastian

von Manfred Glahe (Gast)


Lesenswert?

Hallo,
die Spannung vor dem Regler messen und überwachen ist wohl am besten
geeigent und die Entkopplung  des µP vom Netzteil mit einem Transistor
vornehmen, da gibt es keinen Spannungsabfall. Ich benutze zur Setup
Speicherung ein FRAM (25C020 währe allerdings ein zusätzliches
Bauteil), daß ist im Gegensatz zum EEPROM extrem schnell(100nS) und
unterliegt keinen max Schreibzyclen.

MfG  Manfred Glahe

von hammer_c (Gast)


Lesenswert?

Hallo!

danke an euch alle, das waren schonmal ein paar ziemlich gute tips!
...

@dieter; das eeprom in sektoren aufzuteilen hört sich gut an. wenn das
funktionieren soll, dann müssen die maximalen schreibzugriffe ja pro
speicherzelle gelten und nicht gleich für das gesamte eeprom. ist das
so?

@manfred; unbegrenztes schreiben hört sich natürlich verlockend an.
allerdings scheinen die teile a) ziemlich teuer zu sein, b) ziemlich
groß (>=DIL32...) und c) für meine zwecke auch ziemlich
überdimensioniert (>=1Mbit). muß eigentlich lediglich maximal 16 Bytes
sichern. laut dieter könnte ich also mein 512Byte-EEPROM in 32 Sektoren
aufteilen. wenn diese laut atmel-datenblatt ca. 100000 mal beschrieben
werden können ergibt das insgesamt 3.2Mio schreibzugriffe. geht man
davon aus, daß man das gerät z.B. durchschnittlich 4 mal am Tag an- und
ausschaltet und auch jedes mal die config ändert, ergibt sich eine
lebensdauer von ca. 2200 Jahren. das sollte reichen :)

ciao christian

von Manfred Glahe (Gast)


Lesenswert?

@christian
 8 polig SOT23, SPI BUS, 256 Byte, (32KB Type ca. 10 EUR)

MfG  Manfred Glahe

von Dieter Götz (Gast)


Lesenswert?

Hallo,

die maximal zulässigen Schreibzugriffe auf das EEPROM gelten pro
Speicherzelle.

Gruß
Dieter

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.