Forum: Mikrocontroller und Digitale Elektronik ATtiny als Uhr


von 32768 (Gast)


Lesenswert?

Hallo,

ich möchte mit einem ATtiny 44 u.a. als Zeitquelle, die sich einmal pro 
Tag per DCF77 synchronisiert, verwenden. Das ganze soll 
Batteriebetrieben laufen, daher möglichst sparsam. Nun stell sich die 
Frage ob der Mikrocontroller mit externem Quarz betrieben werden sollte 
oder ob der interne Oszillator ausreicht. Die Genauigkeit der Uhr darf 
um bis zu 30 Sekunden abweichen.

Erfahrungen? Uhrenquarz? Einschränkungen mit niedrigem Takt (128kHz 
intern oder 32768 extern?)

Danke und eine schönen Sonntag.

von Falk B. (falk)


Lesenswert?

@ 32768 (Gast)

>ich möchte mit einem ATtiny 44 u.a. als Zeitquelle, die sich einmal pro
>Tag per DCF77 synchronisiert, verwenden.

Dann tu das.

> Das ganze soll
>Batteriebetrieben laufen, daher möglichst sparsam.

AVR - Die genaue Sekunde / RTC

> Nun stell sich die
>Frage ob der Mikrocontroller mit externem Quarz betrieben werden sollte

MUSS.

>oder ob der interne Oszillator ausreicht.

Nö.

> Die Genauigkeit der Uhr darf
>um bis zu 30 Sekunden abweichen.

Pro Stunde? ;-)

Ich hab vor einigen Jahren mal ein Projekt gemacht, wo der Uhrenquarz 
automatisch mittels DCF77 kalibriert wurde (über 24h). Danach lief er 
mit <1ppm Abweichung!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

32768 schrieb:
> Die Genauigkeit der Uhr darf
> um bis zu 30 Sekunden abweichen.

Das wird mit dem internen Ozillator auf jeden Fall knapp. Der ist nicht 
nur spannungs- und temperaturabhängig sondern auch noch ungenau :-) Es 
ist möglich, ihn zu kalibrieren, das ist aber nicht so viel wert, wenn 
danach die Temperatur sich ändert.

32768 schrieb:
> Uhrenquarz? Einschränkungen mit niedrigem Takt (128kHz
> intern oder 32768 extern?)

Die 32,768kHz Quarze sind schön genau, da sie exakt für Uhrenbetrieb 
gemacht wurden. Das gilt nicht für alle Quarze, ich kämpfe z.B. gerade 
mit einem 11,0592 MHz Quarz, der nicht da schwingt und nach 10 Tagen 
eine Minute verloren hat.
30 Sekunden pro Tag Genauigkeit schafft allerdings nahezu jeder Quarz.

von Eumel (Gast)


Lesenswert?

32768 schrieb:
> Das ganze soll
> Batteriebetrieben laufen, daher möglichst sparsam.

Dann nimm ein RTC Modul.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Eumel schrieb:
> Dann nimm ein RTC Modul.

Das ist vermutlich nicht nötig. Es ist ja möglich
* den Tiny niedrig zu takten, z.B. mit 32kHz oder 128kHz.
* ihn nur jede Sekunde kurz zu wecken, die Uhr aufzufrischen und einmal 
am Tag den DCF Sync zu machen.

von 32768 (Gast)


Lesenswert?

Falk Brunner schrieb:
>> Die Genauigkeit der Uhr darf
>>um bis zu 30 Sekunden abweichen.
>
> Pro Stunde? ;-)

Zwischen zwei erfolgreichen Synchronisierungen. Also wohl pro Tag.

von Eumel (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Das ist vermutlich nicht nötig

KOmmt halt auf die Anforderungen an. Du hast natürlich recht, dass man 
das auch ohne RTC sparsam hinkriegt. Mit aber wohl besser. Zumal du in 
den richtig tiefen Schlafmodus (powerdown) eh nur vom Watchdog geweckt 
werden kannst der aber mit dem ungenauen 128kHz läuft. Der Uhrenquarz 
läuft nicht weiter, dafür darf man nicht so tief schlafen ;)

Eine andere Frage ist aber die Ausgabe der Uhrzeit, wie wird die 
angezeigt?

von 32768 (Gast)


Lesenswert?

Im Datenblatt steht:
> By default, the successive approximation circuitry requires an input clock
> frequency between 50 kHz and 200 kHz to get maximum resolution. If a
> lower resolution than 10 bits is needed, the input clock frequency to
> the ADC can be higher than 200 kHz to get a higher sample rate. It is
> not recommended to use a higher input clock frequency than 1 MHz.

Fällt damit der ADC komplett flach?

von 32768 (Gast)


Lesenswert?

Eumel schrieb:
> Eine andere Frage ist aber die Ausgabe der Uhrzeit, wie wird die
> angezeigt?

Garnicht. Die Zeit wird nur zum Steuern verwendet.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

32768 schrieb:
> Fällt damit der ADC komplett flach?

Gute Frage. Im Datenblatt ist in Tabelle 20-7 tatsächlich 50kHz als 
Minimum angegeben. Müsste man also ausprobieren. Evtl. braucht man einen 
externen S&H Kondensator?

von Eumel (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Gute Frage. Im Datenblatt ist in Tabelle 20-7 tatsächlich 50kHz als
> Minimum angegeben. Müsste man also ausprobieren.

Dürfte trotzdem funktionieren. Eventuell wird er ungenau weil die Sample 
and Hold Schaltung die Spannung ja nicht ewig konstant halten kann.

von gert (Gast)


Lesenswert?

Falk Brunner schrieb:
> AVR - Die genaue Sekunde / RTC
geht aber nicht mit einem attiny

schon in der Übersicht auf der Atmelwebsite wird klar:

32khz RTC     tiny44: no   mega328p: yes
picoPower     tiny44: no   mega328p: yes


der mega ist immer noch billiger als eine externe RTC
ich kenne keinen tiny der das kann bzw. wüsste nicht wie

von Wilhelm S. (wilhelmdk4tj)


Lesenswert?

Hallo zusammen.

@ 32678

Ich habe gerade so etwas zusammengestrickt.
Tiny84 mit 7,...MHz-Quarz.
Dazu ein Pollin DCF77 Modul.

Passende Software in Bascom findest du auf der I-Seite von
DH2FAA unter Projekte, Nr. 5.
Er macht es mit einem Tiny2313; mit einem Tiny44-84 geht es genau so 
gut.

Ich habe den Code meinen Bedürfnissen angepasst. Mit
dieser Uhr steuere ich eine WSPR Bake mit einem DDS AD9850.
Ausgangsleistung ca. 100mW.
Läuft seit einigen Wochen problemlos.

73
Wilhelm

von 32768 (Gast)


Lesenswert?

gert schrieb:
> Falk Brunner schrieb:
>> AVR - Die genaue Sekunde / RTC
> geht aber nicht mit einem attiny
>
> schon in der Übersicht auf der Atmelwebsite wird klar:
>
> 32khz RTC     tiny44: no   mega328p: yes
> picoPower     tiny44: no   mega328p: yes
>
>
> der mega ist immer noch billiger als eine externe RTC
> ich kenne keinen tiny der das kann bzw. wüsste nicht wie

Es geht ja nicht um RTC sondern 32kHz Quarz.

von gert (Gast)


Lesenswert?

> Es geht ja nicht um RTC sondern 32kHz Quarz.

>> 32khz RTC     tiny44: no   mega328p: yes
genau darum gehts hier ja auch. Sprich 32khz RCT ist ja genau das 
Projekt:
AVR - Die genaue Sekunde / RTC: Echtzeituhr mit Uhrenquarz

habe ich auch in einem Projekt laufen und die verbraucht wirklich nix.

Ultra low power

> picoPower     tiny44: no   mega328p: yes

was du mit dem Mega+Quarz machen kannst, kannst du leider nicht mit dem 
Tiny+Quarz machen

von gert (Gast)


Lesenswert?

*
beim Tiny gibts kein Powersave sleepmode
und keinen asyncronen Timer

von gert (Gast)


Lesenswert?

achso, verstehe, du möchtest den tiny mit 32khz takten ...
http://www.youtube.com/watch?v=ZAiz_OPkx-M

von Coder (Gast)


Lesenswert?

Muss es denn einen Attiny sein?

von c-hater (Gast)


Lesenswert?

32768 schrieb:

> Erfahrungen? Uhrenquarz? Einschränkungen mit niedrigem Takt (128kHz
> intern oder 32768 extern?)

Wirklich in Frage kommt bei bei der Forderung nach minimalem 
Stromverbrauch nur 32768 extern. 128k intern verbraucht schon an sich 
deutlich mehr Strom und zwingt dich obendrein wegen der weitaus 
geringeren Genauigkeit mehrmals am Tag zu synchronisieren.

Übrigens: Bei dem Anforderungsprofil wäre ein Tiny24 völlig ausreichend. 
Warum Tiny44? Zieht doch nur unnütz Strom, um die de facto ungenutzten 
Flash-, EEPROM- und SRAM-Bereiche mit ihren Leckströmen zu versorgen.

von c-hater (Gast)


Lesenswert?

gert schrieb:

> beim Tiny gibts kein Powersave sleepmode
> und keinen asyncronen Timer

Und?!

Sie lassen sich doch direkt mit einem 32kHz-Uhrenquarz als 
Systemtaktquelle betreiben.

von gert (Gast)


Lesenswert?

da versteh ich was nicht dran:
wenn da nichts asyncron läuft und der Uhrenquarz mit 32khz alles taktet 
und damit ein Zähler hochgezählt werden muss, wie kann man dann noch 
mehr machen als nur das Hochzählen?

ich stell mir das so vor

im 1/32 Sekunden-Takt:
                    0
tick     +1         1
tack     +1         2
tick     +1         3
tack     +1         4
...
tick     +1        32


Wie kann man mehr machen? Also mehr Rechenschritte wie pollen, jetzt 
möchte ich das machen, jetzt das usw. ohne das Zählen zu vergessen?

Der Controller zieht mit dem Rhythmus auch extrem wenig Strom oder?

von Peter D. (peda)


Lesenswert?

Der ATtiny kann max in Idle Strom sparen, ein ATmega aber in Power-Save 
(32kHz an T2).
D.h. ein ATtiny braucht mindesten das 20-fache an Strom.

Nimm daher besser einen ATmega48 (1µA @5V).

von Eumel (Gast)


Lesenswert?

gert schrieb:
> da versteh ich was nicht dran

Mit einem Timer...

von Fallobst (Gast)


Lesenswert?

Peter Dannegger schrieb:
> D.h. ein ATtiny braucht mindesten das 20-fache an Strom.

GGenau dafür gibts u.a. den Clock-Prescaler. Bei einer Uhr kann der 
Attiny auch mit wenigen kHz laufen. 5µA sollten damit auf jeden Fall 
schaffbar sein.

von c-hater (Gast)


Lesenswert?

gert schrieb:

> wenn da nichts asyncron läuft und der Uhrenquarz mit 32khz alles taktet
> und damit ein Zähler hochgezählt werden muss, wie kann man dann noch
> mehr machen als nur das Hochzählen?

Schon die Fragestellung ist falsch. Du kannst nämlich alles mögliche 
machen, wenn du das dümmliche Hochzählen jemand anderem überläßt. Wozu 
gibt's schließlich Timer?

Der Tiny44 hat sogar einen 16Bit Timer. Den kannst du 2 Sekunden lang 
zählen lassen, während du 65536 Takte hast, in denen du was anderes tun 
kannst. Erst dann mußt du langsam mal entweder das TOV-Flag pollen oder 
dich in die entsprechende ISR verabschieden, um den Anschluß an die 
Realität nicht zu verlieren...

von c-hater (Gast)


Lesenswert?

Peter Dannegger schrieb:

> Der ATtiny kann max in Idle Strom sparen, ein ATmega aber in Power-Save
> (32kHz an T2).
> D.h. ein ATtiny braucht mindesten das 20-fache an Strom.

Vielleicht liest du einfach mal die Datenblätter, bevor du so einen Müll 
verzapfst?

Ein Tiny, der mit 32kHz Systemclock läuft braucht keinesfalls das 
20fache eines Mega im Power-Save mit 32k Quarz-Oszi am Timer2.

Tatsächlich braucht er nur unwesentlich mehr als der Mega. Und er 
braucht nicht aufzuwachen (und dann viel mehr Strom zu verbrauchen), um 
irgendwas über die reine Zählererei hinaus zu erledigen.

Insgesamt dürfte der Tiny in der Energiebilanz in der konkreten 
Anwendung mindestens gleichziehen, wahrscheinlich aber sogar mit 
deutlichem Vorsprung gewinnen.

von Peter D. (peda)


Lesenswert?

Fallobst schrieb:
> 5µA sollten damit auf jeden Fall
> schaffbar sein.

Nein, ich habs selbst getestet.
Der Idle-Mode frißt sogar mehr, als Aktive Mode mit runtergeteiltem Takt 
(256Hz). Aber unter 14µA @5V bin ich nicht gekommen.

von Peter D. (peda)


Lesenswert?

c-hater schrieb:
> Vielleicht liest du einfach mal die Datenblätter, bevor du so einen Müll
> verzapfst?

Lies Du sie erstmal.
Die ATmega schaffen 1µA Power-Save, da sehen die ATtiny (14µA bei 256Hz) 
aber alt aus.
Ich hab sogar extra verschiedene Tiny und Chargen getestet, keine 
Ausreißer.
Mit einem 1F Goldcap halten sie eine Woche durch, dann ist Schluß.

Die ATtiny sind eindeutig die schlechtere RTC.

von c-hater (Gast)


Lesenswert?

Peter Dannegger schrieb:

> da sehen die ATtiny (14µA bei 256Hz)
> alt aus.

Von welchem Urschleim-Tiny hast du denn diesen Wert her?

Das Diagramm zu diesem Thema im DB des Tiny24/44/84 (Seite 190) endet 
bei 100 _k_ Hz und ca. 10µA bei 5V (bei 1.8V sind's sogar nur rund 
2µA). Interpoliert man die Geraden weiter runter auf 32kHz, kommt man 
bei ca. 4 bzw. unter 1 µA an.

Das ist allerdings der Idle Mode, aber in diesem Modus LÄUFT der Timer 
und das Interruptsystem, die Zeitzählung ist also sichergestellt und 
kann bei Überlauf die CPU wecken. Siehe DB, Seite 33.

Die kann dann also nach dem Aufwachen bei rund 100µA (5V) oder 20µA 
(1,8V) (DB Seite 187) mit 32kHz tun, was sie eben zu tun hat und dann 
wieder in den Idle-Mode wechseln.

> Lies Du sie erstmal.

Ich KANN das. Du mußt es erst noch beweisen. Bisher war das nicht sehr 
überzeugend...

von c-hater (Gast)


Lesenswert?

c-hater schrieb:

> Die kann dann also nach dem Aufwachen bei rund 100µA (5V) oder 20µA
> (1,8V) (DB Seite 187) mit 32kHz tun, was sie eben zu tun hat und dann
> wieder in den Idle-Mode wechseln.

Korrektur: Das waren wieder die Werte bei 100kHz, bei 32kHz sind 
(interpoliert) irgendwas bei 40 bzw. 7µA zu erwarten.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Wir wissen doch nicht mal, was für Batterien der TE benutzen will. Wenn 
das eine G13 Knopfzelle ist, kann jedes µA zählen, aber mit z.B. 2 AAA 
Zellen ist es nahezu wurscht, ob der Tiny 10µA oder 40µA zieht.

von 32768 (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Wir wissen doch nicht mal, was für Batterien der TE benutzen will. Wenn
> das eine G13 Knopfzelle ist, kann jedes µA zählen, aber mit z.B. 2 AAA
> Zellen ist es nahezu wurscht, ob der Tiny 10µA oder 40µA zieht.

Ich möchte zwei mal AA verwenden.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

32768 schrieb:
> Ich möchte zwei mal AA verwenden.

Hehehe, dann streich einfach die eine Hälfte der Diskussion. Alles, was 
unter 100µA liegt, ist für die dicken Brummer kein Problem - und zwar 
jahrelang, wenn du nicht gerade die 5 ct Batterien vom Krabbeltisch 
nimmst.

von Electronics'nStuff (Gast)


Lesenswert?

32768 schrieb:
> Ich möchte zwei mal AA verwenden.

LOL, die haben bis zu 2.8Ah, wenn du zwei nimmst hast du fast 5Ah.

Deine Uhr läuft so Handgelenk mal Pi 56'000h (bei einer Stromaufnahme 
von 50µA @ 3V).

Das wären also ungefähr 6 1/2 Jahre.

von Electronics'nStuff (Gast)


Lesenswert?

"Fast 5Ah" das sollte natürlich "über 5Ah" heissen.

von gert (Gast)


Lesenswert?

> die haben bis zu 2.8Ah, wenn du zwei nimmst hast du fast 5Ah.
nene, er wird die wohl in Reihe schalten um auf 3V zu kommen. Also 
doppelte Spannung, aber Kapazität bleibt gleich. Also ungefähr so lange 
bis die Batterie ausläuft ;)

von amateur (Gast)


Lesenswert?

Ich schätze mal, bei so großen Trümmern (AA), wird schon die 
Selbstentladung in ähnlicher Größenordnung sein.

von gert (Gast)


Lesenswert?

@ 32768
hey wär cool, wenn du den Code online stellst. Dann gibts ne Alternative 
zum NAchbauen mit einem ATtiny. Ist kleiner und billiger!
Danke

von gert (Gast)


Lesenswert?

* achso ja und noch vergessen:

32768 schrieb:
> Nun stell sich die
> Frage ob der Mikrocontroller mit externem Quarz betrieben werden sollte
> oder ob der interne Oszillator ausreicht. Die Genauigkeit der Uhr darf
> um bis zu 30 Sekunden abweichen.

siehe auch Beitrag "Die "genaue" Sekunde - Tool für Oszillator Kalibrierung"

von 32768 (Gast)


Lesenswert?

gert schrieb:
> @ 32768
> hey wär cool, wenn du den Code online stellst. Dann gibts ne Alternative
> zum NAchbauen mit einem ATtiny. Ist kleiner und billiger!

Welchen Code?

von gert (Gast)


Lesenswert?

32768 schrieb:
> Welchen Code?

Vielleicht eine kleine Anleitung, etwa so wie bei 
AVR - Die genaue Sekunde / RTC: Echtzeituhr mit Uhrenquarz
 wie man den ATtiny mit dem Uhrenquarz taktet und wie man den Timer 
hochzält und zwischendurch eventuell schlafen legt?

Die genaue Sekunde wird hier immer wieder nach gebaut.
Wenn es die Alternative mit dem ATtiny gibt, hat man eben eine kleinere 
und günstigere Möglichkeit Zeit zu messen und kann es direkt nach bauen, 
ohne Etwiklungsarbeit.

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.