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).
Hat der ATMega256 nicht einen zweiten Oszillator, an den man einen Uhrenquarz dranhängen kann?
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. DS1307 DS1305 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
keine Batterie: Datenblatt: Seite 6 "If a backup supply is not required, VBAT must be grounded." Sascha
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.