www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 AVR zeitsynchron ohne Bus


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ....

Autor: Wolfgang Horn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Annahme, zwei Quarzoszillatoren würden synchron laufen, nur weil auf 
dem Gehäuse des Quarzes dieselbe Frequenz steht, ist etwas gewagt.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann solltest du einen AVR als Master deklarieren, dieser verteilt dann 
ein Signal an alle anderen, diese nehmen das per ext Interrupt dann 
an....

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ....

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ....

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Horst Gschwandtner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Aber mir reicht eine Genauigkeit von einer Sekunde pro Tag.

Das entspricht 11,5 ppm

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn mit "Netzschalter" wirklich das 230V-Netz gemeint ist, Netzspannung 
zur syncronsiation verwenden. Natürlich auf der Sekundärseite der 
Netztafos.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

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.