Forum: Mikrocontroller und Digitale Elektronik Standby-Power für ATMega im RTC-Betrieb


von Dieter R. (drei)


Lesenswert?

Die Aufgabe scheint trivial. Trotzdem habe ich nach stundenlangem Suchen 
keine gescheite Lösung dafür gefunden, auch keine Applikation bei Atmel. 
deshalb frage ich hier mal nach guten Ideen.

1. Ich möchte einen ATmega mit 32-kHz-Quarz mit Echtzeituhr-Funktion 
durchlaufen lassen. Die angeschlossene Peripherie, Treibertransistoren 
usw.  zieht insgesamt um 100 mA, alles wird aus einem 7805 o. ä. 
versorgt.

2. Jetzt fällt die Netz-Stromversorgung aus. Das kann ich irgendwie 
feststellen, das ist hier nicht das Problem. Ich schalte die Peripherie 
ab, legen den ATmega schlafen, so dass er nur noch ein paar uA 
verbraucht (hoffentlich) und nur noch gelegentlich per Timer-Interrupt 
die Uhrzeit inkrementiert.

3. Wie mache ich dafür eine einfache, kostengünstige und betriebssichere 
Stromversorgung? Längstransistor in den VCC-Pfad, mit Akku-Pufferung, 
den Transistor "irgendwie" geschaltet? Gibt es dafür ein passendes IC, 
das alles zusammen erledigt? Eine Atmel-Applikation, die ich übersehen 
habe?

4. Nebenfrage: wie löse ich (auch möglichst einfach) beim Wegbleiben der 
Stromversorgung EINEN Reset aus?

von Matthias (Gast)


Lesenswert?

Warum nimmste keinen echten RTC dazu? Zur RTC-Stromversorgung im 
abgeschalteten Zustand reicht ein Speicher-C oder eine kleine 
Lithiumbatterie, der µC und das ganze System bleibt dann ganz aus.

von Dieter R. (drei)


Lesenswert?

Weil das ein Chip extra wäre. Kostet Platz+Geld. Beides will ich sparen.

von Andreas K. (a-k)


Lesenswert?

Der klassische Lösung besteht in der Entkopplung von Haupt- und 
Backupstromversorgung des Controller vom Rest durch simple 
Schottky-Diode(n). Je nach verlangter Ausfallzeit ist dafür ein 
5,5V-Goldcap am einfachsten (Serienwiderstand nicht vergessen, als 
Strombegrenzung beim Einschalten).

von Dieter R. (drei)


Lesenswert?

Danke. Ich hab' wohl zu kompliziert gedacht. Und jetzt noch bitte eine 
einfache Idee für die Reset-Problematik.

von Smokingslim (Gast)


Lesenswert?

Da hast du deine Appnote von Atmel sehr gut erklärt wie ich finde

http://atmel.com/dyn/resources/prod_documents/doc1259.pdf

von interessent (Gast)


Lesenswert?

Im Prinzip muss nur vor der Schottky-Diode, die HL-Flanke detektiert 
werden. Dann kann der µC beispielsweise einen Output der extern an Res 
angeschlossen ist, low ziehen. Oder einen Watchdogreset auslösen, wenn 
kein echter Hardwarereset erforderlich ist.

von Andreas K. (a-k)


Lesenswert?

Mir ist die Frage nach dem Reset nicht klar. Wenn der Controller 
weiterhin schlafend funktionsfähig bleiben soll, wer soll dann den Reset 
kriegen, er selber ja wohl nicht? Den Zustand der Hauptstromversorgung 
kann der Controller per ADC oder besser noch Comparator (wg. Interrupt) 
ganz gut selber feststellen. Und wenn der Strom so lang weg ist, dass 
auch der Backupstrom ausbleibt - dafür gibt's den Brownout-Detector und 
das entsprechende Statusbit beim Wiederaufwachen.

von Dieter R. (drei)


Lesenswert?

@Andreas Kaiser (1)
Jetzt hab' ich doch noch eine ganz praktische Frage: 3 x 0,1u an die 
VCC-Pins beim ATmega16, zusätzlich noch 1u Tantal oder 10u Tantal oder 
garnichts? Gibt es dafür Richtwerte? Genau für solche Fragen fehlt mir 
eine ordentliche Applikationsschrift.

@Smokingslim
Kannte ich, daher hatte ich ja die Idee. Leider steht dort überhaupt 
nichts über Stromversorgung. "Implementation" behandelt nur die 
Software.

@Andreas Kaiser (2)
Die Frage nach dem Reset ist folgende: mir ist generell nicht wohl bei 
einer Schaltung, die bei wechselnder Güte der Spannungsversorgung 
"unendlich" lange durchläuft. Daher fände ich es sinnvoll, wenn z. B. 
beim Ausbleiben oder bei Wiederkehr der Netzspannung ein Reset-IMPULS 
ausgelöst wird. Auf diese Weise könnte man auch (ohne Reset-Taster) 
einen zwangsweisen Reset auslösen, indem man kurz die Netzversorgung 
unterbricht. Ausdenken kann ich mir zu diesem Thema vieles. Ich will 
aber nicht basteln, sondern was betriebssicheres.  Die Frage ist wieder, 
ob es eine erprobte Standardlösung dafür gibt?

von Andreas K. (a-k)


Lesenswert?

> Jetzt hab' ich doch noch eine ganz praktische Frage: 3 x 0,1u an die
> VCC-Pins beim ATmega16, zusätzlich noch 1u Tantal oder 10u Tantal oder
> garnichts?

Genau so. Nur statt des Tantals einen normalen 10-22µF Elko verwenden, 
Tantal sollte man vorsichtshalber nur dort verwenden, wo keine grösseren 
Ströme fliessen können.

> Die Frage nach dem Reset ist folgende: mir ist generell nicht wohl bei
> einer Schaltung, die bei wechselnder Güte der Spannungsversorgung
> "unendlich" lange durchläuft.

Ist bei Controllern aber ziemlich normal. Die Stromversorgung kannst du 
ihn ja selber überwachen lassen.

Standardlösung ist Watchdog. Wenn's klemmt wird der Controller 
automatisch neu gestartet.

Und wenn dein Programm für Dauerlauf nicht stabil genug ist und du 
vorsichtshalber täglich neu starten willst: Watchdoc auf kürzeste Zeit 
einstellen und "vergessen" zurückzusetzen. Gibt einen wunderschönen 
Reset. Nur deine Uhr kommt dabei natürlich kurz ausser Tritt, also 
überleg's dir ob die normale Funktion vom Watchdog nicht ausreicht.

von Andreas K. (a-k)


Lesenswert?

PS: Hast du schon mal im Datasheet vom Controller unter 
Brownout-Detector nachgelesen. Lohnt sich.

von Dieter R. (drei)


Lesenswert?

Danke erstmal. Normaler Elko ist auch billiger.

Wird etwas länger dauern, bis alles fertig ist.

Falls DOCH noch jemand eine erprobte Lösung für die Reset-Frage kennt, 
wäre ich für Anregungen/Kommentare weiterhin dankbar.

Nachtrag @Andreas Kaiser
Ich bin anscheinend mal wieder zu blöd. In meinem 354-seitigen 
Datenblatt finde ich überhaupt nichts über Brownout-Detektor, außer 
einer nichtssagenden Grafik über die Ansprechspannung. Hast du auf die 
Schnelle einen Link dazu?

von Andreas K. (a-k)


Lesenswert?

Seite 40. Schreibt sich dort "Brown-out", falls du es mit der Suche 
versucht hattest.

von Dieter R. (drei)


Lesenswert?

Oh Gott! Ich sollte wohl erstmal das ganze Datenblatt auswendig lernen 
(dann lerne ich auch alle Schreibweisen, wie In-put und Stand-by), bevor 
ich weiter dumme Fragen stelle. Dankeschön.

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.