Hallo Leute!
Ich verwende in einem Projekt den ATMEGA256. Dieser Prozessor soll neben
anderen Funktionen auch die Uhrzeit und Datum anzeigen können. Es wird
sich später um ein Stand-Alone-Gerät handeln.
Soweit ich schon bemerkt habe, geht der 16MHZ-Quarz zu ungenau, um eine
korrekte Uhrzeit über Monate hinweg zu garantieren.
Aus diesem Grund soll ein Uhrenbaustein her.
Das eine, was mir Sorgen macht, sind die Treiber, die man schreiben
muss, um so einen Baustein anzusprechen. Je einfacher diser Baustein
nämlich anzusprechen ist, desto früher bin ich mit den Treibern fertig,
es sei denn, es gibt schon fertige C-Quellcodes, was ich vermute. Es ist
egal, ob der Bautein über I2C oder SPI entsprechend abgefragt werden
kann.
Das Zweite sind die Eagle-Bibliotheken. Es wäre total großartig, wenn
hier schon ein Device exisiteren würde.
Ich freue mich schon auf eure Anworten.
Danke im Voraus.
Tschüss
Martin
Treiber? Hast du Windows auf dem Atmel laufen?
für gewöhnlich schickt man den RTC-Bausteinen
die Registerinhalte rüber und liest wann immer man
will die aktuelle Zeit wieder aus, that's ist.
Zum Betreff:
> Wie spät ist es
Es ist gerade 10:29 Uhr.
> Soweit ich schon bemerkt habe, geht der 16MHZ-Quarz zu ungenau, um eine> korrekte Uhrzeit über Monate hinweg zu garantieren.
Wenn es ein Zimmergerät ist, so ist die Betriebstemperatur ausreichend
konstant und somit auch die Abweichung des Quarzes. Er hat dann eben
einfach nur nicht genau 16MHz. Durch einen Versuch liese sich aber ein
Korrekturfaktor ermitteln, um die Zeitberechnung ausreichend genau zu
bekommen.
MfG:AVR und mehr
Martin wrote:
> Soweit ich schon bemerkt habe, geht der 16MHZ-Quarz zu ungenau, um eine> korrekte Uhrzeit über Monate hinweg zu garantieren.
Lies dir mal den Beitrag "Die genaue Sekunde / RTC" durch.
Es geht auch ohne RTC ziemlich genau (unter bestimmten Umständen).
Die RTCs sind üblicherweise auf einen Quarz angewiesen. Die normalen
32Khz Quarze sind nicht sehr genau.
Schau Dir mal den DS32Khz Baustein von maxim-ic.com an, der ist
stabilisiert und den kannst Du dann an eine I2C (z.B. DS1307DS1305 von
maxim) RTC oder direkt an den ATMega256 hängen.
Wenn Du einen Vbat Eingang hast, kannst Du sogar die Uhr zeitweise von
Netz trennen. Hauptsache Quarz und RTC laufen weiter.
Martin wrote:
> Ich verwende in einem Projekt den ATMEGA256.
Interessant. Wo hast du den gekauft? Meines Wissens hat der das
Atmel-Entwicklungszentrum in Trondheim nie verlassen...
Habe beide Lösungen laufen, beide gehen für Quarz-Systeme genau.
Unterscheiden tun sie sich in vielen anderen Dingen, die nix mit der
Uhrzeit zu tunn haben:
ATmega mit 32kHz Quarz:
Vorteil: System behält alle Daten und kann aus dem Standby geweckt
werden.
Nachteil: Deep-Sleep geht nicht, da da nur der Reset wieder aufweckt.
Ergo etwas höhere Stromaufnahme, damit größeres Backup ( Akku, GoldCap)
erforderlich.
PCF85xx Serie:
Vorteil: Bringt je nach Variante noch EEPROM oder Backup-RAM mit. Kann
vorprogrammiert werden und dann einen Interrupt jede Sekunde oder nur
bei Alarm auslösen. Interrupt kann ATmega auch aus Deep-Sleep wecken (
INT auf Reset legen).
Extrem niedriger Strom. Kleiner GoldCap reicht schon für Wochen.
Nachteil: Zusätzliche Bauteile, zusätzlicher Platz
Software musst Du für jede der Lösungen schreiben:
Beim 32kHz Quarz musst Du Dir erst etwas programmieren, dass aus dem
periodischen Interrupt eine Uhr macht. Diese Informationen musst Du dann
auch noch in lesbare Form verwandeln.
Der PCF verfordert eine I2C Software, die aber bereits fertig zum
Abpinnen verfügbar ist. Dafür belohnt er dich mit Vorteilen:
1. liegen die Daten je nach Baustein bereits als BCD oder Binär vor (
kann man bei einigen Bausteinen auch programmieren)
2. Führt er einen Kalender mit Wochentag und Schaltjahr
3. Kann man mit einem I2C Treiber gleich ganz viele andere Bausteine
ansprechen.
Nun ist es an Dir zu entscheiden, was einfacher oder zweckdienlicher
ist. Wie Du dem Anfang meines textes entnehmen kannst, habe ich es je
nach Anwendungsfall mal so und mal so gemacht.
Gruß, Ulrich
Hallo Leute!
Danke für eure großartigen Antworten und vielen Hinweisen.
Zugegeben, der Titel meines Beitrags ist etwas gewagt.
Ich meinte den ATMEGA2561 und nicht den ATMEGA256. Wusste gar nicht,
dass dieser auch mal geplant war. Danke, habe ich wieder was gelernt.
Windows wäre für den ATMEGA etwas übertrieben. Möchte mir bei einem
Stand-Alone-Gerät nicht künstlich zusätzliche Probleme aufhalsen, zudem
der Bootvorgang von Windows mit einem ATMEGA mit Sicherheit mehrere
Jahre benötigen würde :-)
Ich verwende den Codevision-AVR-Compiler.
Aus diesem Grund habe ich mich für den DS32KHZ als Quarz und
den DS1307 als Uhrenbaustein entschieden.
Weiß allerdings nicht was passiert, wenn ich den DS1307 als Quarz und
den DS32KHZ als Uhrenbaustein laufen lassen würde, kleiner Scherz.
Tolle Sache, bin schon gespannt.
Eine Frage habe ich aber noch zum DS1307.
Wenn ich z.B. keinen Batteriebetrieb benötige, was mache ich dann beim
DS1307 mit dem BAT-Pin? Lasse ich den offen oder muss ich den an GND
hängen? Ich habe leider hierzu keine Information im Datenblatt gefunden.
Mit VCC kann ich ihn mit Sicherheit nicht verbinden, weil VCC mit 5V
versorgt wird und VBAT mit 3V?
Danke Leute für eure Hilfen.
Tschüss
Martin