Für eine Schaltung mit ATmega2560 würde ich gerne eine Notstromversorgung aus einem AA-Akku realisieren, die sich nach einem Einbruch der Versorgungsspannung so schnell aktiviert, dass keine Variableninhalte meines GCC-Programms verloren gehen. In meinem Aufbau gibt es eine externe Versorgungsspannung von ca. 2.5 V, die über einen Step-Up-Wandler auf 5 V angehoben wird und den µC und weiteres versorgt (Stromverbauch von 50 mA auf der 5 V Leitung). Der µC nutzt ständig einige ADC-Kanäle und 9 PWM-Kanäle. Die Spannungsreferenz ist VCC. Durch Messung einer externen Spannungsreferenz von 2.56 V wird in gewissen Abständen VCC ermittelt. Ursprünglich wollte ich VCC mit einem Gold-Cap puffern, sodass der µC vielleicht 1 bis 2 Sekunden Zeit hat, den Ausfall der Versorgungsspannung zu bemerken und per MOSFET den AA-Akku an den Eingang des Step-Up-Wandlers zu schalten. Der Gold-Cap (0.1 F, 5.5 V) hat aber eine untaugliche Entladekurve (siehe Bild), die sich auch nach 1 Stunde Aufladen nicht wesentlich ändert. Im Grunde sollte die Notstromversorgung auch sofort funktionieren. Alternativ könnte ich einen kleinen Kondensator (z. B. 220 µF) nehmen, wenn der µC innerhalb von ca. 1-2 Millisekunden reagieren kann. Im Programm kann ich aber nicht ganz sicherstellen, dass die VCC-Messung 1000 Mal pro Sekunde erfolgt. Mit dem kleinen Kondensator könnte es funktionieren, wenn der µC per Interrupt oder ähnlich sofort in die Prozedur zum Aktivieren des Notstroms springt. Eine Variante wäre der "Analog Comparator", allerdings ist bei mir Port E3 schon mit PWM belegt und nicht ohne weiteres frei zu machen. Wäre es möglich, das Problem mit dem Brown-Out-Dektektor zu lösen? D. h. bei Programmstart würde immer erst mal die Notstromversorgung eingeschaltet und danach festgestellt, ob ein Brown-Out vorlag. Falls ja, würden die Variablen nicht neu initialisiert. Wenn die externe Spannung ausreicht, wird dann die Notstromversorgung wieder abgeschaltet.
Unfug mit dem Brown-Out, weil Du nach einem solchen nicht mehr unbedingt den Inhalt in deinen Speicherzellen hast, den Du mal hattest, da sich diese durch die Unterspannung teilweise oder sogar ganz löschen könnten. Kannst Du nicht mehrere AA-Akkus nehmen und diese per Diode "dauerhaft" anschließen?
Hi, bau doch einen Analogkomparator primitiv mit einem Transistor. Also 220µF für den Controller und dann nochmal nach 100k 10µ oder so für den Transitor. Der 10µ soll die 5V länger halten als der 220µF. PNP, Basis per 10k an die Betriebsspannung, E an die 10µF. C kommt an einen externen INT auf steigende Flanke mit Pulldown. Sinkt nun die Betriebsspannung, geht die Basis mit der Betriebsspannung unter die Spannung des 10µF und der Transistor löst den Int aus. Gruß, Norbert
Brownout ...- Das ist dummes Zeug. Ich wuerd einen AVR verwenden, der die Daten auch mit 1.8V noch haelt und gut ist. Das waere dann von der Picopower serie, ueblicherweise mit einem -P benannt. Also von den 2.5V per Schoggi diode einspeisen und gut ist. Sicher keine Software Zyklen drauf verballern.
Je nach Dauer der zu überbrückenden Stromausfälle könnte es sinnvoll sein, die Versorgung von µC und Peripherie zu trennen, so dass die Notstromversorgung nur für Datenerhalt sorgen muß.
Welchen Uin-Bereich hat der Step-Up? Wenn der weit genug runter kann, kannst Du: - den AA-Akku parallel zur externen Spannung, jeweils über eine Schottky-Diode entkoppelt, zur Pufferung anschließen, Nachteil Spannungsabfall über die Dioden, Vorteil beliebig lange Pufferung, ob der Akku oder die externe Spannung zur Versorgung dienen, bekommst Du über einen (externen) Komperator heraus - den Goldcap über einen Widerstand aus den 5V laden, über einen aktiven Schalter (Mosfet) bei Wegfall der externen Spannung an den Eingang des Step-Up legen, Vorteil keine Probleme mit Memory-Effekt, Nachteil höherer Aufwand für die Umschaltung - einen C über eine Ladungspumpe auf höhere Spannung laden und als Reserve nutzen, Nachteil sind mehrere Spannungswandler und hoher Schaltungsaufwand für die Umschaltung
Nachtrag: Du brauchst noch nicht mal nen Int sondern kannst den Fet direkt schalten und dann in Ruhe gelegentlich mal nachsehen, ob die Transe die Notstromversorgung angeknipst hat bevor fie 10µ alle sind. Dafür müsstest Du aber die 2,5V überwachen, sonst wird das ein astabiler Multivibrator. Die 5V sind ja gleich wieder da wenn sie weg sind ;-) Das müsste ähnlich gehen wie oben geschrieben nur mit der Referenz und vielleicht noch einem NPN, Int/Signal dann fallend.
@ Fabian: Laut Datenblatt läuft der µC noch sicher bis hinunter auf 1.8 V. Die Brown-Out-Schwelle könnte 2.7 V oder 4.3 V sein. Da bleiben schon einige Millisekunden nach dem Brown-Out-Reset, bis die Daten verloren gehen. Für mehrere Akkus ist in dem Gehäuse übrigens kein Platz. @ Norbert: Gute Idee! Der Grundgedanke ist mir, glaube ich, klar. Ich bin mir nur noch nicht ganz sicher, ob ich die Schaltung komplett richtig verstanden habe (den Emitter über 100k an Vcc und über 10 µF an Masse?). Das mit dem ext. Int wäre eventuell von Vorteil, wenn ich dem µC noch die Möglichkeit geben will, sich ggf. selbst abzuschalten. @Tom: Die Daten liegen im RAM des ATmega2560, der ca. 90 % des gesamten Stromes braucht. @Tim Thaler: Der Uin Bereich ist schon etwas kritisch. Kann sein, dass unter 1.1 V abgeschaltet wird. Ich habe die Messwerte nicht mehr genau im Kopf. Eine Schottky-Diode vor den Step-Up zu schalten würde bedeuten, den AA-Akku sehr viel schlechter zu nutzen. Selbst wenn nur 350 mV Spannung abfällt, steigt der Strom am Step-Up-Eingang noch mal entsprechend an, sodass viel Leistung verloren geht. Warum der Gold-Cap sich so seltsam benimmt, ist mir leider nicht klar. -------------- Gerne würde ich trotzdem gerne verstehen, was für oder gegen Brown-Out spricht.
> ein Bild sagt mehr als 1k Worte...
Wow! Das hatte ich mir gewünscht. Danke!
Noch eine Frage: Wofür ist der 100k Widerstand vor "Int"?
Hi, weil der T 5V (also von den 10µ, jedenfalls mer als Ub) durchschaltet und der µC schon deutlich drunter ist. Das ist also über der Betriebsspannung des µC und wenn man den Strom begrenzt ist das kein Problem (Diode zu Ub im µC). 10k würden da wohl auch gehen. Gruß, Norbert
Im avrfreaks Forum schrieb jemand "BOD keeps the AVR in reset when supply voltage goes low enough." Heißt das, dass nach einem Brown-Out Reset der Prozessor erst wieder weiterläuft, wenn die Betriebsspannung über der Brown-Out-Schwelle liegt? Wenn das stimmt, könnte man in der Tat nicht einen Befehl (zum Aktivieren des Notstroms) mehr ausführen, obwohl der µC mit der aktuellen Spannung noch sicher laufen würde.
Hi, ich glaube Du hast es erfasst, genau so funktioniert Brounout. Es soll verhindert werden, daß Speicherzellen mit Müll beschrieben werden weil der Kern mit einer grenzwertigen Spannung noch so gerade läuft. Gruß, Norbert
So, endlich fand ich die Zeit, diese Schaltung real zu testen. Sie funktioniert ganz wie sie soll. Ich habe ihr noch einen 100 kOhm Widerstand von der Basis des Transistors nach Masse spendiert, um die Empfindlichkeit (z. B. bei langsamer abfallender Spannung) zu erhöhen. Ein Abfall der Versorgungsspannung um wenige 100 mV innerhalb kurzer Zeit löst nun einen externen Interrupt aus, dessen Unterroutine allerdings noch nicht geschrieben ist (derzeit gibt es nur einen Piezzo-Piepton). Jetzt hoffe ich nur, dass die wenigen Millisekunden reichen, um die Notstromversorgung stabil einzuschalten.
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.