PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Betriebsstundenzähler / Speicherung nach Abschalten



duese
17.01.2007, 09:13
Moin Moin,

folgendes Problem: Ich bin am überlegen wie ich den Betriebstundenzähler abspeichern kann, so dass er da wieder anfängt wo er bei ausschalten aufgehört hat.
Das Problem daran ist, dass eben der µC (hier AVR mit Bascom) voher keinen befehl erhält die Variablen im eigenen eeprom abzuspeichern. Und ein abspeichern jeder Minute würde auf dauer den internen eeprom zerstören.

Wie würdet ihr das machen?
Kondensator an die betriebsspannung und über einen Pin abfragen ob die versorgungsspannung noch anliegt, und vor leerung des kondensators schnell abspeichern. wie groß muß der kondesator dann sein? oder gibts womöglich einen ic der mir das ganze abnimmt?

beste grüße

Thomas

kalledom
17.01.2007, 17:28
Du hast doch sicherlich eine Spannungsversorgung, die über den 5V für den AVR liegt.
Diese Spannung würde ich zu einem Komparator führen, der bei Unterschreitung an einem Eingang des AVR einen INT auslöst, wonach die Daten schnell noch im Eeprom gerettet werden.
Wenn Du also z.B. 12V hast, dann setz die Schaltschwelle z.B. auf 11...10V. Von 11...10V bis 8V (3V benötigt wahrscheinlich der Spannungsregler) ist noch genug Zeit, um die Daten zu retten. Wenn Du dann abschaltest, wird sich der Elko 'langsam' entladen und die Spannung auf 11...10V absinken.
Es gibt viele (Power-On-Reset-) Bausteine, die so was mit drin haben; Power-Fail ist der Begriff dafür; ich benutze den MAX 690. Der ist allerdings teuer, weil er als 3. auch noch einen WatchDog hat.

DerWarze
17.01.2007, 18:14
Hallo

Hab mal ein ähnliches Problem gehabt.
Meine Erfahrung ist das Der Kondensator zur Abblockung am Prozessor am besten per Schottkydiode vom Rest getrennt wird und dieser mindestens 470µ gross sein sollte. Dann einen AVR wählen der noch mit 2V arbeitet (zb Mega8L). Die Auswertung wie schon vorgeschlagen mit Komparator (Es gibt in manchen Controllern auch einen Comparator den mann verwenden kann) der die sinkende Spannung erkennt und abspeichern.
Das Abspeichern im eeprom dauert etwas (je nach Menge der zu speichernden Daten) daher der grosse Kondensator. Ist die Zeit zu kurz werden nur verkrüppelte Daten gespeichert.
Man kann die Controllerschaltung auch mit nem Goldcap abblocken dann klappt es garantiert ist nur etwas teuerer.

DerWarze
17.01.2007, 18:16
Hallo

Hab mal ein ähnliches Problem gehabt.
Meine Erfahrung ist das Der Kondensator zur Abblockung am Prozessor am besten per Schottkydiode vom Rest getrennt wird und dieser mindestens 470µ gross sein sollte. Dann einen AVR wählen der noch mit 2V arbeitet (zb Mega8L). Die Auswertung wie schon vorgeschlagen mit Komparator (Es gibt in manchen Controllern auch einen Comparator den mann verwenden kann) der die sinkende Spannung erkennt und abspeichern.
Das Abspeichern im eeprom dauert etwas (je nach Menge der zu speichernden Daten) daher der grosse Kondensator. Ist die Zeit zu kurz werden nur verkrüppelte Daten gespeichert.
Man kann die Controllerschaltung auch mit nem Goldcap abblocken dann klappt es garantiert ist nur etwas teuerer.

duese
18.01.2007, 14:35
Moin,

das mit dem Komparator ist eine gut idee, werde mich mal dran versuchen. So viel wird ja nicht abgespeichert, aber du hast recht das schreiben in den eeprom dauert und koste zu dem auch noch strom. habe einen Mega16 mit interner Taktug auf 8MHz, läuft der Mega16L auch mit intern 8MHz? der ist ja nur bis 8MHz ausgelegt.

Besten Dank schonmal

Gruß Thomas

DerWarze
19.01.2007, 09:57
Hallo

Laut Datenblatt ist der L mit 8MHz spezifiziert, was heissen soll das die Betriebsdaten also auch die Funktion bis 2.7V nur bis 8MHz Takt garantiert werden. Der läuft oft noch mit 2V oder 10MHz Takt aber die störungsfreie Funktion wird nicht meht garantiert.
Ob der Takt vom Quarz oder vom internen Oszillator kommt ist da ohne belang. Da der interne Osc in beiden Spezifikationen nur bis 8MHz kann ist es bei dieser Taktung Wurscht welchen man nimmt die Rechenleistung ist gleich.