mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega324p: T2 als 'Echtzeituhr'


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beitrag "Uhrenquarz an Atmega324P: Was für Kondensatoren?"


Ich möchte diesen Beitrag noch einmal aufgreifen und fragen, ob jemand 
bezüglich der Genauigkeit mittlerweile Erfahrungswerte nennen kann.

Beim meinem 324P erhalte ich eine Frequenzabweichung von +200ppm, die 
mit 47pF Lastkapazität auf +100ppm reduziert werden kann. Dann schwingt 
der T2 Oszillator aber nicht mehr zuverlässig an.

Sicher freut man sich bei Atmel darüber, daß es überhaupt funktioniert, 
aber für mich sind 100ppm bei einer Uhr völlig untragbar.

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal den 32Khz von www.maxim-ic.com an.

Das ist ein sehr genauer Quarz.

Ich verwende auch gerne den DS3231 oder DS3232, die auch sehr genau 
sind.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Info:

Bei einem ATmega48 läßt sich der Oszillator mit 2 x 18pF exakt auf 
32768Hz abgleichen. Dieser hat aber eine höhere Stromaufnahme im 'power 
save' Modus. Und wie es dann beim ATmega48P aussehen wird, kann mangels 
Verfügbarkeit nicht getestet werden.
So werde ich wohl weiter einen separaten Uhrenbaustein verwenden.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der exakte Wert der Oszillatorfrequenz wirklich so entscheidend? 
Immerhin wird der Timer anders als bei externen RTCs erst passend 
programmiert und ist folglich gut kalibirierbar.

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frequenz gibt die "Tics" an, die die RTC zählen/auswerten soll.
Insofern ist eine stabile und genaue Frequenz das A und O.

Mit einem kalibrierten Timer solle es auch gehen (Timer liefert dann die 
Tics). Siehe Beispiel von Peter Dannegger in der Codesammlung.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pete K. wrote:

> Die Frequenz gibt die "Tics" an, die die RTC zählen/auswerten soll.
> Insofern ist eine stabile und genaue Frequenz das A und O.

Stabil ist wichtig. Genau nicht unbedingt. Denn ob man für den 
Sekundentakt durch 32768 oder durch 32771 dividiert ist egal, wenn man 
das per einmaliger Kalibrierung ermitteln kann.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ist der exakte Wert der Oszillatorfrequenz wirklich so entscheidend?

Für meine Anwendung schon. Geplant war, einen Uhrenbaustein PCF8583 und 
ein EEPROM ST24C04 und auch noch diverse IO-Schieberegister + 
Schrittmotorlogik zu ersetzen und über IIC anzusteuern.
Im Ruhezustand sollte dann die Uhr im 'power save' Modus weiterlaufen. 
Wenn diese Uhr innerhalb eines Jahre wenige Minuten von der Sonnenzeit 
abweicht, ist daß akzeptabel. Aber bei 100ppm ist das fast eine Stunde. 
Da Meßwerte mit Zeitstempel versehen werden sollen, ist die Abweichung 
viel zu groß.

Programmiert man T2 mit Vorteiler /128 so erhält man alle Sekunde einen 
Überlauf, der den Sekundentakt erzeugt. Die Stromaufnahme liegt beim 
324P bei ca. 1,3µA bei 3V, was völlig in Ordnung ist.
Da T2 nur 8Bit breit ist, kann man keinen Teilungsfaktor von 32771 
einstellen, wie das bei T1 der Fall ist. Und um T1 mit 32,768kHz zu 
betreiben, müßte man den kompletten µP Takt auf 32,768kHz einstellen. 
Damit würde zum einen T1 "vergeudet" und die Prozessorleistung nicht 
genutzt werden können.

Nun kann man sicherlich die Uhr durch tagtäglichen Feinabgleich dazu 
bringen, über ein Jahr die Zeit genau zu halten. Aber bei den 
aufgetretenen 200ppm Grundabweichung fürchte ich, daß jeder Prozessor 
einzeln abgeglichen werden muß. Für eine Serienfertigung ist das zu 
riskant und aufwendig. Da nehme ich dann doch lieber einen fertigen 
Uhrenbaustein.

Interessanterweise tickt der Mega48 ja ganz anders. Atmel scheint das 
Problem nicht zu kennen, sonst hätte man den Oszillator doch so 
aufgebaut, daß er für alle Modelle gleich verwendbar wäre 
(Quarz+Kondensatoren).

Ärgerlich bei AVR ist ja auch schon immer, daß der/die/das UART nicht 
mit dem internen kalibrierten Oszillator betrieben werden kann. Zum 
einen ist die Drift zu groß und zum anderen ist der werksseitige 
Abgleich so ungenau, daß man auch jeden Prozessor nachgleichen muß.

Was im Datenblatt so schön aussieht, ist in der Praxis nicht zu 
gebrauchen.

Autor: Skua C:\> (skua)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt auch 4,194304 MHz Uhrenquarze die sind meist genauer.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es liegt nicht am Quarz! Es liegt am internen Oszillator des AVR.
Für eine niedrige Stromaufnahme muß 32Khz verwendet werden.

Autor: Skua C:\> (skua)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mir bei einem 8031 mal einen Geschlachteten Wecker an den 
externen Timer Eingang gehängt das ging ganz gut.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.