Ich möchte 2 AVR per gemeinsamen Netzschalter starten und möchte, dass diese an einem Tag höchstens eine Sekunde auseinanderlaufen. Das heißt als Beispiel. Jede volle Stunde soll jeder AVR etwas machen. Also beide zur gleichen Zeit an verschiedenen Orten. Erste Testschaltungen mit Timer und blinkender Led zeigen trotz Quarz, dass bereits nach 1 Stunde beide AVRs ziemlich auseinandergehen ... Verstehe ich nicht !! Gehen denn die Timer nicht durch auch bei Interrups, die sind doch mit dem Prozessortakt verbunden? Danke für Hilfe ....
Hi, Jens, Du: "...Testschaltungen ...zeigen trotz Quarz.., dass ... nach 1 Stunde beide AVRs ziemlich auseinandergehen ..." wenn "ziemlich" deutlich mehr ist als 10e-4 beduetet, dann ist das pathologisch, dann ist das Symptom eines Fehlers. Denn die Timer laufen durch - wenn Du sie richtig programmiert hast, also z.B. im CTC-Mode. Ciao Wolfgang Horn
Die Annahme, zwei Quarzoszillatoren würden synchron laufen, nur weil auf dem Gehäuse des Quarzes dieselbe Frequenz steht, ist etwas gewagt.
dann solltest du einen AVR als Master deklarieren, dieser verteilt dann ein Signal an alle anderen, diese nehmen das per ext Interrupt dann an....
ja mit Master geht alles ... Eigentlich müsste man doch eine quarzgenaue Uhr mit dem AVR realisieren können, oder bin ich da auf einen Zeit-IC wie DS 1302o.a. angewiesen. ich habe jetzt den Timer1 bei beiden AVRs laufen ohne Interrupt. Nun vergleiche ich die Werte und es läuft eben auseinander, ziemlich viel in einer Stunde ....
Grundgenauigkeit eines handelsüblichen Quarzes: +/-50ppm. 2 Stück können also im Extremfall um 100ppm auseinander liegen, was ungefähr 1 Sekunde in 3 Stunden entspricht, also an der LED bereits im Bruchteil einer Stunde sichtbar wird. Temperaturunterschiede, unterschiedlicher Aufbau des Oszillators etc. addieren sich noch dazu.
Ach ja, apropos Quarzuhren und RTCs: Uhrenquarze mögen mit 30ppm etwas genauer sein, aber ohne Kalibrierung wird daraus auch keine gute Uhr. Will man es genau haben, muss man sie mit einem Trimmkondensator kalibrieren. Quarzkochbuch: http://www.axtal.de/info/buch.html. Mit µCs kann man das ggf. auch einfacher haben, indem man einen 16bit Timer so betreibt, dass der Teiler möglichst hoch ist (dicht unter den maximalen 65536), und dann an ebendiesem Wert etwas dreht.
Sollte man einen Uhrenquarz 32,768 kHz verwenden? Dann wird aber mein Takt so langsam oder gibt es da eine Lösung mit 8Mhz und trotzdem Uhrenquarz? Wie funktionieren denn da die Quarzuhren? Die gehen doch auch sehr genau.... Danke für Tipps ....
> Dann wird aber mein Takt so langsam oder gibt es da eine Lösung mit 8Mhz > und trotzdem Uhrenquarz? Bei vielen AVRs kann man einen Timer vom Uhrenquarz separat takten lassen, während der AVR mit internem Takt oder einem zweiten Quarz läuft. Ich würde aber erst mal versuchen, per Software zu trimmen. Also beide einige Stunden laufen lassen, Abweichung ablesen und Teilungsfaktor entsprechend korrigieren.
Im Prinzip ist die Ungenauigkeit des Qurazes nicht das einzige Problem. Wenn Du den Netzschalter einschaltest dann werden nicht beide AVRs gleichzeitig mit der Codeausführung beginnen.
Jens wrote: > Sollte man einen Uhrenquarz 32,768 kHz verwenden? Wozu ? Das ändert überhaupt nichts. Im Gegenteil, Uhrenquarze sind temperaturempfindlicher als MHz-Quarze. Du mußt beide Quarze trimmen, anders wirds nie was. Bei MHz-Quarzen kann man das am besten in Software machen: Beitrag "Die genaue Sekunde / RTC" Peter
ja mit dem Netzschalter das stimmt. Aber mir reicht eine Genauigkeit von einer Sekunde pro Tag. Am nächsten Tag starte ich die Schaltung erneut. Jetzt ist es so -- Netzschalter ein und beide laufen ziemlich genau zugleich los --- und dann eben nach einer Stunde fast 1s Unterschied ... ich probiere das jetzt mit dem Trimmen .... Danke
> Aber mir reicht eine Genauigkeit von einer Sekunde pro Tag.
Das entspricht 11,5 ppm
Bei aktuellen AVRs kannst du die CKOPT-Fuse setzen und bekommst dann den internen Takt an einem Portpin raus. Damit kannst du den zweiten AVR takten, und schon laufen sie dir nicht mehr auseinander. ;-) Bei älteren AVRs kann man den Takt an XTAL2 abgreifen, sollte dafür aber die CKOPT-Fuse gesetzt haben und eigentlich auch besser eine Pufferstufe zwischen beiden einfügen.
Wenn mit "Netzschalter" wirklich das 230V-Netz gemeint ist, Netzspannung zur syncronsiation verwenden. Natürlich auf der Sekundärseite der Netztafos.
> Aus dem "gemeinsamer Netzschalter" schließe ich, daß sich beide nahe > beieinander befinden, richtig? Ich hätte jetzt aus "beide zur gleichen Zeit an verschiedenen Orten" geschlossen, daß genau das nicht der Fall ist. Vielleicht liegt ja ein langes Stromkabel dazwischen.
> Jede volle Stunde soll jeder AVR etwas machen. > Also beide zur gleichen Zeit an verschiedenen Orten. Da, wo ich früher (vor 15 Jahren) gearbeitet habe, hat man das mittels DCF-Empfang synchronisiert. So ein DCF-Empfängermodul kostet ja nicht die Welt, zumal bei einem Projekt, wo es so sehr auf Synchronität ankommt. Ob das heute noch üblich ist, weiß ich allerdings nicht. schulterzuck
Ja es ist so. Es gibt mehrere Travos an einem Ort. Dann gehe ich mit ca. 15V ~ Einzelleitungen (10 Stück) ca. 50m jeweils weit weg (durchs Wasser auch noch). Und an den Enden sind die Controller. Ich möchte halt nur mit je einer 3adrigen Leitung arbeiten und nicht unbedingt einen Bus aufbauen. Im Test habe ich gerade die Nutzung der Netzspannungsfrequenz. Das geht erst mal sehr gut. Eine Diode, eine Z-Diode, ein Optokoppler, und evtl. noch ein Teiler (4040) und dann an den INT des AVRs. Auch mit 50Hz ohne Teiler geht es, logisch.
Ein hochohmiger Widerstand an einen AVR-Eingang hätte es auch getan... Den Rest machen die Eingangsschutzdioden. Sowas gibt's sogar für 230 V als Appnote von Atmel.
>Ich möchte 2 AVR per gemeinsamen Netzschalter starten und möchte, dass >diese an einem Tag höchstens eine Sekunde auseinanderlaufen. Das entspricht, wie hier schon gesagt wurde, ungefähr 1/86400 = 11 ppm. Das ist schon ziemlich anspruchsvoll. Mach Dich mal über die Temperaturabhängigkeit der Frequenz von Schwingquarzen schlau; die beträgt nämlich günstigstenfalls (AT-Schnitt) schon ca. ±10 ppm bei 20 °C Temperaturänderung. Eine mögliche Lösung für Dein Problem wären - wenn kein Kabel zwischen den Bausteinen liegt - DCF77-gesteuerte Uhren.
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.