Hallo, vielleicht eine dumme Frage, aber sind die Register Inhalte (Multi purpose & I/O) immer Null wenn die Betriebspannung neu angelegt wird und das Programm neu gestartet wird? Habe im Datenblatt darüber nichts gefunden. Nur Angaben zum Geschehen bei einem Reset. Denke aber das es ganz logisch wäre. Möchte aber sicher sein. Vielleicht noch eine Frage. Wird ein Programm fehlerfrei ablaufen wenn es mit einer Betriebsspannung von 5V betrieben wird, der Reset aber erst bei 3,3V durch ein Überwachungs IC ausgelöst wird? Benötige Zeit um wichtige Daten bei einem Stromausfall ins EEPROM zu sichern. Werde es natürlich bald praktisch testen aber theoretisch geht es doch, oder? Vielen Dank für eure Antworten. Thomas Fuchs P.S. Tolle Webseite und gutes Forum.
Hi! das mit den registern interessiert mich auch! im avrstudio werden die nämlich nicht auf 0 gesetzt, was darauf hindeutet, dass das im mcu auch nciht geschieht... die zweite frage versteh ich nicht ganz. was genau willst du machen?
Zu Deiner 2 Frage nur ein Tipp. Frag das Ereignis Spannungsabfall doch vor dem Regler und nicht hinter dem Regler ab, dann wird der Netzausfall früher erkannt, und du hast noch mehr Zeit auf das Ereignis zu reagieren. Ggf. kann man den µC, der ja ohnehin sehr wenig Strom frist, durch einen eigenen Netzteilzweig versorgen (eigener Ladeelko, Spannungsregler usw.). D.h. der µC ist beim Netzausfall noch ein paar ms länger aktiv und kann die Peripherie bei Bedarf kontrolliert stillsetzen. Siegfried
Hallo Siegfried, genau das hatte ich auch vor. Vor dem Regler über Interrupt das Ereignis frühzeitig erkennen. Und da der AVR locker bis 3V (2,7V) arbeiten soll denke ich das es klappt. Allerdings dauert das schreiben ins EEPROM relativ lange (8Bytes ca.32ms bei niedriger Ub). Mal sehen. Thomas
Meiner Meinung nach reicht ein Elko nach dem Spannungsregler aus um zeit zu gewinnen. 4700mF bringt dir bei 5 V ca. 4s lang 5mA. Weiß nicht wieviel dein mikrocotroller braucht, aber das müßt doch reichen? lg, Stefan
Den Spannungsabfall kann man schlecht (oder zu spät) am Ladeelko abgreifen. Besser noch eine Si-Diode zwischen Gleich-Riecht-Er und Ladeelko setzen, dann kann der AVR auf eine fehlende Halbwelle triggern. Dies sollte mit einem NPN-Transistor, der einen Basis-Emitter-Widerstand hat und über einen 1k-Widerstand in Reihe mit einer 5V6-Z-Diode an den +Pol des Gleichrichters möglich sein. Den Kollektor des Transistors über einen 1k an VCC und dann an einen geigneten Pin des AVR. Mit einem Optokoppler direkt über einen Vorwiderstand im Sekundärkreis des Trafos geht das natürlich auch. Die AVRs brauchen je nach Typ und Taktrate so um die 2 - 6 mA. Zur Not tuts auch eine Pufferbatterie, die nur für den EEPROM-Schreibvorgang verwendet wird. anschliesend wird der AVR in den Power-Down-Mode gesetzt und braucht dann weniger als 1µA. Bei Atmel gibts überigens einige Warnhinweise zum Thema Power-Down und EEPROM. Such mal nach: "prevent EEPROM Corruption" und Application-Note "AVR180: External Brown-Out Protection" auf den Atmel-Seiten. Siegfried
was is eigentlich nun mit den registern? sind die initialisiert oder nicht?
Beim Power On Reset sind die Register auf jeden Fall initialisiert. Bei allen anderen Resets ist es unterschiedlich, teilweise variert es sogar von Derivat zu Derivat. Bei http://www.avrfreaks.com gibt es aber seit neuestem unter ACADEMY eine Application Note, in der die Registerzustände nach den verschiedenen Resets genau angegeben werden.
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.