Forum: Mikrocontroller und Digitale Elektronik Zeitsteuerung Atmega8


von Tim S. (m80)


Lesenswert?

Hallo,
Ich würde gerne eine LED in Zeitberreichen wie z.B ein oder 5 Stunden 
steuern. Während dieser Zeit z.B in zwei Stunden soll die LED 
eingeschaltet werden, sollte der µC möglichst Energiesparend unterwegs 
sein. Also praktisch wie eine Zeitschaltuhr. Ist dafür ein Uhrenquarz 
erforderlich?? Externer Quarz ist vorhanden..
vG

von m.n. (Gast)


Lesenswert?

Ein Quarz sorgt für genaues Timing. Der interne Oszillator bzw. 
Watchdog-Timer können um 1% - 3% variieren. Die Stromaufnahme bei 
passender Programmierung liegt im einstelligen µA Bereich.

Wie genau soll das Timing denn sein und welche max. Stromaufnahme ist 
zulässig?

von uff basse (Gast)


Lesenswert?

Tim S. schrieb:
> Ist dafür ein Uhrenquarz erforderlich??

Kommt drauf an welche Ansprüche du an die Genauigkeit hast.
Darüber hast du nichts wissen lassen.

Tim S. schrieb:
> Externer Quarz ist vorhanden..

Allein das Vorhandensein eines Quarzes ist nicht ausreichend,
man muss ihn auch benutzen um bestimmte Dinge zu erreichen.

von LostInMusic (Gast)


Lesenswert?

>Während dieser Zeit z.B in zwei Stunden soll die LED eingeschaltet werden,
>sollte der µC möglichst Energiesparend unterwegs sein.

Und wie soll der µC in der übrigen Zeit unterwegs sein?

von Stefan F. (Gast)


Lesenswert?

m.n. schrieb:
> Der interne Oszillator bzw.
> Watchdog-Timer können um 1% - 3% variieren. D

Bis 10% Abweichung sind sogar normal.

von Wolfgang (Gast)


Lesenswert?

Tim S. schrieb:
> Ist dafür ein Uhrenquarz erforderlich?

Das kommt drauf an, wie genau die Zeiten eingehalten werden sollen, 
insbesondere kommt es bei der erforderlichen Taktgenauigkeit drauf an, 
ob es stört, wenn sich die Fehler des Einschaltpunktes bei längerer 
Laufzeit immer weiter gegen die Uhrzeit verschiebt.
Wie genau sollen die Ein- und Ausschaltpunkte eingehalten werden?

> Während dieser Zeit z.B in zwei Stunden soll die LED eingeschaltet werden,
> sollte der µC möglichst Energiesparend unterwegs sein.

Wäre es ganz schlimm, wenn der µC ab und zu aufwacht, um die Uhr einen 
Tick weiter zu stellen, zu gucken ob er irgendetwas am Schaltzustand der 
LED ändern muss und sich dann wieder schlafen legt? Alternative wäre 
eine RTC mit Alarmausgang, die vom µC immer auf eine passend Alarmzeit 
gesetzt wird.

von Wolfgang (Gast)


Lesenswert?

LostInMusic schrieb:
> Und wie soll der µC in der übrigen Zeit unterwegs sein?

Tim S. schrieb:
> ... möglichst Energiesparend

von Stefan F. (Gast)


Lesenswert?

Die Oszillatoren für Uhrenquarze sind eher aufs Energiesparen getrimmt, 
als die "normalen" Haupt-Oszillatoren der Mikrocontroller. Suche dir 
also einen aus, der einen Uhrenquarz verwenden kann.

Eine AVR (z.B. ATtiny45) können das, und auch viele (alle?) STM32.

von Tim S. (m80)


Lesenswert?

Also es sollte schon recht genau sein ! Ihn schlafen zu legen und ihn 
wieder aufwachen zu lassen alle paar sec. wären auch ok..

von Tim S. (m80)


Lesenswert?

Stefan ⛄ F. schrieb:
> Die Oszillatoren für Uhrenquarze sind eher aufs Energiesparen getrimmt,
> als die "normalen" Haupt-Oszillatoren der Mikrocontroller. Suche dir
> also einen aus, der einen Uhrenquarz verwenden kann.
>
> Eine AVR (z.B. ATtiny45) können das, und auch viele (alle?) STM32.

Müsste schon beim atmega8 bleiben..

von Wolfgang (Gast)


Lesenswert?

Tim S. schrieb:
> Also es sollte schon recht genau sein !

Ist es so schwierig, eine quantitative Angabe zu machen?
Wenn es darum geht, den Weihnachtsbaum einzuschalten, kommt es auf ein 
paar Minuten nicht an, wenn es darum geht, eine LED passend zum DCF77 
blinken zu lassen, darf es gerne auf besser als 100ms genau sein.

von Stefan F. (Gast)


Lesenswert?

Tim S. schrieb:
> Müsste schon beim atmega8 bleiben..

Warum das? Das ist so ziemlich der älteste AVR den es gibt.

Wie dem auch sei, auch der ATmega8 hat einen Oszillator für Uhrenquarze.

von MaWin (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Eine AVR (z.B. ATtiny45) können das, und auch viele (alle?) STM32.

Er HAT sich den AVR schon ausgesucht, nämlich ATmega8, einfach mal 
seinen Beitrag vor dem posten lesen, und der kann sehr wohl mit 
Uhrenquartz an Timer2 energiesparend betrieben werden.

von Tim S. (m80)


Lesenswert?

also eine Toleranz von 5 sekunden wären noch akzeptabel.

von MaWin (Gast)


Lesenswert?

Tim S. schrieb:
> Also es sollte schon recht genau sein ! Ihn schlafen zu legen und
> ihn wieder aufwachen zu lassen alle paar sec. wären auch ok..

"Recht genau", mehr bla bla geht wohl nicht, wie wäre es mit einem GPS 
Modul atomuhrgenau ?

von Schlaumaier (Gast)


Lesenswert?

Tim S. schrieb:
> Also es sollte schon recht genau sein !

Gibt ne Alternative Lösung.

Häng ein DCF-77-Modul dran. Dann lass das Teil via Watchdog 110 Min.(2 
Std. - Sicherheitszeit von 10 min) schlafen. Dann wacht es auf, fragt 
die Uhrzeit ab und wenn die sagt es ist soweit, macht die LED 
blinki-blinki.

Dann speichere die Uhrzeit und lasse ihn wieder 110 Min  pennen. Danach 
das Spiel von vorne.

Dürfte so ziemlich die sicherste Lösung sein, falls der DCF-Empfang 
brauchbar ist.

von Stefan F. (Gast)


Lesenswert?

Tim S. schrieb:
> also eine Toleranz von 5 sekunden wären noch akzeptabel.

5 Sekunden in welcher Zeitspanne? Einer Stunde, einem Jahr?

von Tim S. (m80)


Lesenswert?

Stefan ⛄ F. schrieb:
> Tim S. schrieb:
>> also eine Toleranz von 5 sekunden wären noch akzeptabel.
>
> 5 Sekunden in welcher Zeitspanne? Einer Stunde, einem Jahr?

Zeitspanne z.B eine Stunte => Toleranz +/- 5 sec.
Zeitspanne z.B fünf Stunden ebenfalls eine Toleranz von 5 sec.

von Stefan F. (Gast)


Lesenswert?

Tim S. schrieb:
> Zeitspanne z.B eine Stunte => Toleranz +/- 5 sec.
> Zeitspanne z.B fünf Stunden ebenfalls eine Toleranz von 5 sec.

Drücke dich doch bitte klar aus! Sind alle Zeitspannen oberhalb von 5 
Stunden irrelevant?

Zum Vergleich: Bei einer Zeitschaltuhr mit Tagesprogramm wiederholt sich 
das Programm samt Fehler jeden Tag. Wenn so eine Uhr 5 Sekunden pro 
Stunde abweicht, dann kommt man innerhalb eines Jahres auf mehr als 700 
Stunden Abweichung!

von MaWin (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Tim S. schrieb:
>
>> also eine Toleranz von 5 sekunden wären noch akzeptabel.
>
> 5 Sekunden in welcher Zeitspanne

Na offenkundig

Tim S. schrieb:
> Zeitberreichen wie z.B ein oder 5 Stunden

Lies doch einfach mal seine Anfrage statt rumzublöken.

Jedenfalls sind 5s von 18000s deutlich weniger als 3-10%, ein 
Uhrenquartz muss sein, reicht aber auch.

von EAF (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn so eine Uhr 5 Sekunden pro
> Stunde abweicht, dann kommt man innerhalb eines Jahres auf mehr als 700
> Stunden Abweichung!
Du vielleicht.
Sonst aber auch Keiner Einer.

von Tim S. (m80)


Lesenswert?

Stefan ⛄ F. schrieb:
> Tim S. schrieb:
>> Zeitspanne z.B eine Stunte => Toleranz +/- 5 sec.
>> Zeitspanne z.B fünf Stunden ebenfalls eine Toleranz von 5 sec.
>
> Drücke dich doch bitte klar aus! Sind alle Zeitspannen oberhalb von 5
> Stunden irrelevant?
Mehr als 5 Stunden sind nicht nötig. Jedoch wäre es natürlich schön wenn 
24 Std. abgedeckt sind.
Vorstellungsweise wie eine manuelle Zeitschaltuhr, wo die Uhrzeit keine 
Rolle spielt. Soll also nur da schalten wo die kleine"Hebel" 
rausgedrückt sind.
Sprich eingestellt auf zwei Stunden, soll 24 Stunden lang alle zwei 
Stunden +/- 5 sec ein Ereignis ausgeführt werden.

von Stefan F. (Gast)


Lesenswert?

Also geht es doch um eine Zeitschaltuhr, die das ganze Jahr lang durch 
laufen soll. Wie viel Abweichung sind für dich pro Jahr tolerierbar?

Ich frage weil man da mit normalen Quarzen ohne Kalibrierung schnell 
enttäuscht wird. Ich habe so dass Gefühl, dass du eher etwas mit 
externer Synchronisation (wie z.B. DCF-77) brauchst, um zufrieden zu 
sein.

Beschriebe doch mal deinen konkreten Anwendungsfall, damit wir dich 
besser verstehen. Und erkläre, warum du nicht handelsübliche 
Zeitschaltuhren verwenden kannst/willst.

Du hast "möglichst energiesparend" erwähnt, also geht es vermutlich um 
Batteriebetrieb. Halten die Batterien überhaupt so lange?

von Tim S. (m80)


Lesenswert?

Oder wie ein Timer der bei eingestellten 2 Stunden rückwärts zählt, ein 
Ereignis von z.B 5 Sekunden ausführt, dann den Timer wieder mit 2 
Stunden startet und das immer wieder von vorne.

von Bernhard S. (b_spitzer)


Lesenswert?

Stefan ⛄ F. schrieb:
> Wenn so eine Uhr 5 Sekunden pro
> Stunde abweicht, dann kommt man innerhalb eines Jahres auf mehr als 700
> Stunden Abweichung!
Du meinst wohl mehr als 700 Minuten...

von Stefan F. (Gast)


Lesenswert?

Bernhard S. schrieb:
> Du meinst wohl mehr als 700 Minuten...

Ja

von Hermann Kokoschka (Gast)


Lesenswert?

... und nach nunmehr ~25 Antworten/Rückfragen ist das Problem immer noch 
nicht hinreichend beschrieben.

Ich habe wenig Hoffnung für die Menschheit in 2022...

von Tim S. (m80)


Lesenswert?

Nein, weil der Timer ja nach dem Ereignis neu starten soll. Da war wohl 
Zeitschaltuhr der falsche Begriff...

von MaWin (Gast)


Lesenswert?

Tim S. schrieb:
> Sprich eingestellt auf zwei Stunden, soll 24 Stunden lang alle zwei
> Stunden +/- 5 sec ein Ereignis ausgeführt werden.

Das ist ja schon wieder was anderes als in deiner ursprünglichen 
Anfrage.

Kannst du dir bitte VORHER Gedanken machen, was du willst ?

Oder Bist du so ein dämlicher Informatiker der im Scrum jeden Tag sein 
planloses Ziel verändert, damit er ewig zu tun hat und nix bei rauskommt 
?

von Hermann Kokoschka (Gast)


Lesenswert?

Der Thread kann geschlossen werden.
Es macht keinen Sinn mehr.
Der TO ist nicht in der Lage, seine Anforderung zu beschreiben.
Punkt.

von Stefan F. (Gast)


Lesenswert?

MaWin schrieb:
> Lies doch einfach mal seine Anfrage statt rumzublöken.

Ich schlage vor, dass der MaWin und jetzt mal allen zeigt, wie man das 
richtig angeht.

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Ein normales Uhrenquarz - bei reichelt ab 0,20€ - hat eine Abweichung 
von +-20 ppm. Das sind pro Tag ca. 1.7 Sekunden, sollte also reichen. 
Das sind trotzdem 10 Minuten pro Jahr.
"Normale" Quarze haben oft 30ppm.

Es ist vermutlich für die Genauigkeit praktisch egal, ob du die 
Standardschaltung mit einem Feld-Wald-und-Wiesen-Quarz machst oder ein 
Uhrenquarz nimmst. Ein Uhrenquarz (mit 32,768kHz) braucht i.d. Regel 
weniger Strom als ein schnelleres Quarz (mit etlichen MHz).

Schau dir die Sleepmodes an, die der ATmega8 hat. Nimm den tiefsten, bei 
dem der Quarz-Oszillator und ein Timer, der den als Takt nimmt, noch 
durchläuft.

Ob du den Quarz oder den internen RC-Oszillator als CPU-Takt nimmst ist 
Geschmacksache, da die Zeitmessung nur vom Quarz und dem Timer abhängt. 
Auch für den Stromverbrauch spielt die CPU-Geschwindikeit kaum eine 
Rolle, weil der Chip fast immer schläft.

Vorsicht mit den Fuses, wenn du den CPU-Takt niedrig machst. U.U. ist 
das dann zu langsam für dein Programmiergerät.

von Stefan F. (Gast)


Lesenswert?

Tilo R. schrieb:
> Vorsicht mit den Fuses, wenn du den CPU-Takt niedrig machst. U.U. ist
> das dann zu langsam für dein Programmiergerät.

Das ist mir mal passiert. Zum Glück lieferte der Hersteller meines 
Programmieradapters ein passendes FW Update. Das rechne ich der Firma 
In-Circuit immer noch hoch an.

von m.n. (Gast)


Lesenswert?

Tim S. schrieb:
> Ist dafür ein Uhrenquarz
> erforderlich?? Externer Quarz ist vorhanden..

Ein Uhrenquarz ist notwendig, wenn die Ruhestromaufnahme im einstelligen 
µA Bereich liegen muss. Wenn der vorhandene Quarz verwendet wird, liegt 
die Stromaufnahme im einstelligen mA Bereich. Richtwerte findet man im 
Datenblatt unter "Idle Supply Current". Niedrige Versorgungsspannung und 
niedrige Taktfrequenz reduzieren die Stromaufnahme.
Wenn das Deine Ansprüche erfüllt, kannst Du die Schaltung mit externem 
Quarz so belassen.

Beitrag #6907673 wurde von einem Moderator gelöscht.
von Peter D. (peda)


Lesenswert?

Tim S. schrieb:
> Müsste schon beim atmega8 bleiben..

Nimm den Nachfolger ATmega88A oder ATmega88P, die brauchen >1µA mit 
Uhrenquarz.

Die ATtiny25..85 kommen nicht unter 10..20µA am Uhrenzquarz.

von Axel S. (a-za-z0-9)


Lesenswert?

Peter D. schrieb:
> Tim S. schrieb:
>> Müsste schon beim atmega8 bleiben..
>
> Nimm den Nachfolger ATmega88A oder ATmega88P, die brauchen >1µA mit
> Uhrenquarz.
>
> Die ATtiny25..85 kommen nicht unter 10..20µA am Uhrenzquarz.

Naja. Wenn er zur gleichen Zeit eine LED eingeschaltet hat:

Tim S. schrieb:
> Ich würde gerne eine LED in Zeitberreichen wie z.B ein oder 5 Stunden
> steuern. Während dieser Zeit z.B in zwei Stunden soll die LED
> eingeschaltet werden

und die mutmaßlich die selbe Energiequelle benutzt wie der µC, dann 
kommt es auf 10µA auch nicht an. Wenn er sagen wir mal 10mA durch die 
LED jagt, dann sind 10.001mA und 10.010mA praktisch das selbe. Aber er 
sagt nix über die LED. Wahrscheinlich saugt sie eher 700mA und dann käme 
es auch auf 1mA nicht mehr an.

von Peter D. (peda)


Lesenswert?

Peter D. schrieb:
> die brauchen >1µA mit
> Uhrenquarz.

Ups, sollte natürlich <1µA heißen.

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.