ATtiny als Uhr

Gast #3187844
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.
#3187855
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!
(Firma: matzetronics) #3187857
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.
Gast #3187873
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?
Gast #3187876
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?
#3187967
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
Gast #3187996
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.
Gast #3188028
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
Gast #3188248
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.
Gast #3188264
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?
Gast #3188375
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...
Gast #3188407
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.
#3188420
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.
Gast #3188452
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...
Gast #3199047
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren