Forum: Mikrocontroller und Digitale Elektronik AVR RAM-Inhalt nach Ausschalten erhalten?


von Michael Wegmann (Gast)


Lesenswert?

Hallo,

ich wollte mal die Experten fragen, wie ich folgendes Problem lösen
könnte.

Ich verwende einen ATmega128L in einem Projekt, wo ich etwa 3KByte sich
schnell verändernder Daten über das Ausschalten hinaus speichern
möchte.
Da der Zugriff schnell sein muß und sehr oft neue Daten geschrieben
werden, möchte ich ungern das EEPROM oder ein externen Flash-Speicher
benutzen. 3KByte SRAM im Prozessor sind noch frei. Ein GPS-Modul ist
auch vorhanden und dieses benötigt sowieso eine kleine
NiCd-Speicherbatterie. Jetzt habe ich mir überlegt, ich könnte doch
auch von der NiCd-Speicherbatterie den Atmel speisen und den nach dem
Abschalten der Stromversorgung in einen Low-Power-Modus setzen und so
mit sehr geringem Stromverbrauch die SRAM-Daten erhalten.

Wie würdet Ihr das machen?

Folgende Fragen hätte ich speziell:

1. Das System ist 3,3V, es stehen aber auch 5V zur Verfügung. Wie baue
ich am besten ein ein möglichst einfaches "Ladegerät" für den
NiCd-Akku? Ich dachte an Diode+Widerstand. Ist das sinnvoll?

2. Da der Atmel kein extra Stromversorgungseingang für sein SRAM hat,
muß ich dessen gesamte Versorgung über den NiCd-Akku laufen lassen. Um
zu vermeiden, daß der Akku im Betrieb stark entladen wird, brauche ich
also irgendwie eine "Umschaltung". Gibt es da fertige Lösungen für?
Ich habe bei Maxim einige ICs gesehen, aber die sind entweder für 5V
oder nirgendwo zu kaufen.

3. Wie kommt der Atmel mit einer sich plötzlich ändernden
Versorungssoannung zurecht? (3,3V auf 2,4V)

4. Wie kann ich den Atmel sinnvoll in den Stromsparmodus setzen? Einen
Port als Eingang mit pin change Interrupt konfigurieren und direkt an
3,3V legen?

5. Wenn der Atmel im Power-Down-Modus ist, sind dann die Portpins
"hi-Z" und können keinen Strom ziehen oder bleiben die Portpins in
ihrem aktuellen Zustand? Das wäre zum Beispiel wichtig, um zu
verhindern, daß sich der Akku über irgendeine Peripherie schnell
entladen kann.

Ich danke Euch schonmal für die Mühe!

Gruß Michael

von A.K. (Gast)


Lesenswert?

Statt NiCd kannst du auch einen kleinen Goldcap verwenden, der grad so
lange ausreicht, bis die Daten sicher im EEPROM verstaut sind.

5: Pins bleiben in ihrem Zustand. Man sollte sie also vorher in einen
stromlosen Zustand bringen, sonst ist alles Stromsparen für die Katz.

4: Rein in den Powerdown geht's per Programm. Wie es wieder raus geht
hängt von deiner Anwendung ab.

3: Im Powerdown egal, da läuft eh nichts. Nur mit laufendem Oszillator
wäre ich bei schnellen Änderungen vorsichtig.

2: Wenn's ein Akku/Kondesator sein soll, muss da eh ein Ladewiderstand
ran. Also einfach einen zum Ladestrom passenden Widerstand in Reihe
dazu. Manche Künstler machen parallel zu dem Widerstand eine Diode,
vergessen aber, dass die bei dem Powerdown-Strom nie leiten wird
(Spannung über R <<0,6V).

Den Arbeitsstrom kriegt der Controller im einfachsten Fall via Diode
geliefert. Ggf. Schottky, dabei aber den höheren Sperrstrom beachten.

von Bernhard S. (bernhard)


Lesenswert?

Hallo Michael,

man könnte aber auch die 50Hz der Versorgungsspannung mit dem µC
überwachen.

Wird ein Netzausfall registriert, dann sofort die Daten im EEPROM
ablegen.

Beim Wegfall der 50 Hz verbleibt noch genügend Zeit, um die wenigen
Byte sicher im EEROM abzulegen, bis der µC keine Versorgungsspannung
mehr hat.

Vorausgesetzt die Stürtzkondensatoren wurden nicht zu knapp
dimensioniert.

Bernhard

von Michael Wegmann (Gast)


Lesenswert?

Erstmal danke für die Antworten. Da ich den NiCd-Akku sowieso brauche,
werde ich den auch verwenden.

Die einfachste Variante wäre also, ihn über eine Schottky-Diode und
einen Ladewiderstand an +3,3V anzuschließen, und die Stromversorgung
vom Mikrocontroller und den Backup-Eingang vom GPS-Modul an den Punkt
zwischen Ladewiderstand und Schottky-Diode?

Zwei Probleme fallen mir auf:

Dem µC fehlen dann 400-500mV, das könnte vielleicht ein Problem werden,
wenn er mit dem Rest der Schaltung kommuniziert. Könnte man sich hier
vielleicht eine Variante ausdenken mit einem MOSFET statt Diode?!

Auf welchen Ladestrom soll ich den Ladewiderstand dimensionieren? Das
Gerät wird nie im Dauerbetrieb betrieben, höchstens mal 12 Stunden am
Stück, und man muß davon ausgehen, daß es auch mal wochenlang gar nicht
betrieben wird. Das GPS bräuchte allerdings auf jeden Fall eine
Pufferbatterie in der Zeit, da dort die RTC drin ist, die ich auf jeden
Fall direkt nach dem Einschalten brauche. Also wohl eher nicht auf
Erhaltungsladung dimensionieren?

Vielen Dank...

von Sonic (Gast)


Lesenswert?

Also wenn Du einen Mega128L hast kannst Du ja den Brown-out auf 4V
setzen und einfach die Versorgungsspannung Diodenentkoppelt über den
Pufferakku speisen. Die Pins gehen im Brown-out auf Hochohmig (RESET)
und somit Stromsparend (Sleepmodes trotzdem möglich). Im Datenblatt
steht, dass der SRAM-Inhalt bis 'runter zu 0.5V unbeschädigt bleibt,
was ATMEL natürlich nicht garantiert. Ich hab's schon bei einem
Datenlogger ausprobiert, das passt schon!

von A.K. (Gast)


Lesenswert?

Schottky-Diode zwischen 3,3V und Vcc(Atmel).
Ladewiderstand zwischen NiCd und Vcc(Atmel).

Ich habe für NiCd vage 1/30 der Kapazität als Erhaltungsladung in
Erinnerung.

Problem eines MOSFETs ist dessen Diode. Stören die 300-400mV
Spannungsverlust denn? Die Pins können Vcc+0,5V, das sollte also kein
Problem sein.

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.