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?
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.
Weil das ein Chip extra wäre. Kostet Platz+Geld. Beides will ich sparen.
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).
Danke. Ich hab' wohl zu kompliziert gedacht. Und jetzt noch bitte eine einfache Idee für die Reset-Problematik.
Da hast du deine Appnote von Atmel sehr gut erklärt wie ich finde http://atmel.com/dyn/resources/prod_documents/doc1259.pdf
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.
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.
@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?
> 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.
PS: Hast du schon mal im Datasheet vom Controller unter Brownout-Detector nachgelesen. Lohnt sich.
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?
Seite 40. Schreibt sich dort "Brown-out", falls du es mit der Suche versucht hattest.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.