Forum: Mikrocontroller und Digitale Elektronik Zwei uC synchron? 1MHz internenr RC-Osci.


von Fragender (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

ich habe vor zwei uC (ATMEGA8) zu betreiben. Dabei möchte ich dass beide 
synchron arbeiten. Ich möchte bei beiden variable Impulse erzeugen und 
damit zwei LED's ansteuern. Das ganze wird über einen Schalter 
aktiviert. (siehe Anhang)
Diese Schaltung musss nicht wirklich Sinn machen. Ich möchte es anhand 
dieser einfachen Schaltung veranschaulichen, was ich vor habe.

Würde es denn so gehen oder wären die Impulse nicht synchron zueinander?

Ich verute mal das eventuell segnifikante Abweichungen existieren würden 
aufgrund interner Schwankungen bzw ungleicher Frequenz des internen 
RC-Oszillators? Stimmts?

Wenn ja, wie kann man dafür sorgen, dass sie synchron laufen? 1 MHz 
Quarz anschlieesen?

von Gast (Gast)


Lesenswert?

Wie du schon richtig erkannt hast würden die LED's Aufgrund von 
Abweichungen der RC-Oszillatoren nicht synchron leuchten.

Quarze alleine würden aber auch nicht funktionieren, da man auch dort 
minimale Abweichungen hat. Zudem können bzw. werden die Quarze 
unterschiedlich schnell anschwingen, das ganze wäre also auch mit Quarz 
nicht sofort ohne zutun synchron.

Wie du siehst, Anschalten und fertig reicht also nicht, du müsstest die 
Chips auf anderem Wege miteinander Synchronisieren.

von Fragender (Gast)


Lesenswert?

Hallo

ja, dann wirds schwierig. Muss ich dann anders lösen..

Eine andere Frage. Kann ich denn zwei uC an der selben 
Versorgungsspannung anschliessen? Hab es nämlich noch nie mit zwei 
versucht. Auch mit de Schalter für zwei uC? :)

von Chris L. (kingkernel)


Lesenswert?

Stell per Fusebit die Funktion an, dass der erste den Prozssortakt auf 
Pin B-Irgendwas ausgiebt und nimm das als Taktquelle für den zweiten 
Controller

Oder nimm nen Quarzoszilator und speise damit beide µC

von Gast (Gast)


Lesenswert?

Klar kannst du 2 Controller an die selbe Versorgungsspannung hängen aber 
vergiss nicht ihnen jeweils einen eigenen Abblockkondensator zu 
spendieren. Die Sache mit dem Schalter sollte ebenfalls kein Problem 
sein, höchstens das Prellen des Tasters müsste eventuell abgefangen 
werden.

Ansonsten kann ich mich nur meinem Vorrredner anschließen, das sollte 
der einfachste weg sein, beide Chips mit dem selben Takt zu versorgen.

von Fragender (Gast)


Lesenswert?

hallo


vielen herzlichen dank. werde es so probieren.

grüsse

von Horst (Gast)


Lesenswert?

Den selben Takt halte ich für die LEDs für überflüssig:
Nehmen wir an, man kann einen Unterschied von 1/24 sec (ca. 40 ms) 
erkennen, und ein Takt dauert 1/1MHz (0,001ms), dann können die 
Controller einige Takte aus einander laufen, bis sie einen merkbaren 
Unterschied liefern.
Würden die Prozessoren gleich schnell auf die Taste reagieren, wäre es 
also völlig egal, ob die Takte einige % abweichen.

Wichtiger ist: Sie müssen zur selben Zeit einen Anlass zum reagieren 
erkennen. Z.B. über die Taste. hier ist die Frage: kann einer der 
Controller in einem Programmteil stecken, der das Erkennen des 
Tastendrucks verzögert?

Wenn beide Controller nur ständig die Taste abfragen, oder die Taste per 
Interrupt erkannt wird, sehe ich keine Gefahr, dass du einen Unterschied 
merkst. Dann ist das Signal von der Taste die Synchronisation, die du 
suchst.

Ansonsten eine andere Idee zur Synchronisierung: Ein Controller fragt 
die Taste ab und gibt dem anderen dann Bescheid. Z.B. über einen ext. 
Interrupt,



Unterschiede in der Reaktion kommen von der Leitungsverzögerung 
(vernachlässigbar für das menschliche Auge, außer der Signalweg ist 
etliche Meter lang), durch etwaiges entprellen (vernachlässigbar für das 
menschliche Auge), ... oder aber dadurch, dass der Controller mit etwas 
anderem beschäftigt ist.

Der Takt zu synchronisieren ist dann sinnvoll, wenn die Controller über 
längere Zeit das selbe machen sollen, ohne dabei auf Signale von außen 
zu reagieren. Und dann ist das Problem eher: Hat ein Prozessor einen 
Reset (z.B. Brownout) und der andere nicht? Werden sie gleichzeitig 
gestartet? Bzw. werden sich auch bei gleichzeitigem Starten einige Takte 
aus einander liegen. Ist das für deine Anwendung wirklich wichtig?

Das aus einander Laufen der Takte liegt am Ende einer langen Liste von 
Problemen, die du GAR NICHT HAST.

Der einzige Fall, den ich kenne, und wo synchrone Takte einen Sinn 
machen, ist die synchrone Kommunikation, wenn anhand der Takte die 
einzelnen Bits aus einander gehalten werden. Und je nach 
Übertragungsgeschwindigkeit im Vergleich zum Controllertakt ist auch 
hier evtl. ein zyklisches Synchronisierungssignal ausreichend und der 
tatsächlich selbe Takt nicht notwendig.

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
Noch kein Account? Hier anmelden.