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.
@ 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!
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.
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.
Falk Brunner schrieb:>> Die Genauigkeit der Uhr darf>>um bis zu 30 Sekunden abweichen.>> Pro Stunde? ;-)
Zwischen zwei erfolgreichen Synchronisierungen. Also wohl pro Tag.
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?
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?
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?
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.
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
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
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.
> 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
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.
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.
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?
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).
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.
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...
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.
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.
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.
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...
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.
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.
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.
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.
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.
> 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 ;)
* 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"
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?
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.