Forum: Mikrocontroller und Digitale Elektronik Mehrere Controller über ein Quarz


von Marcel P. (Firma: Mapi Modellbau) (mapi)


Lesenswert?

Hallo,

ich erarbeite gerade eine Schaltung für eine Lauflichtsteuerung.
Diese wollte ich über einen Atmega 128 ansteuern.
Kanäle sind insgeammt 24 Kanälen. Die sich in 4 Gruppen wiederholen.

Aufgrund der Platine habe ich aber keinen Platz für eine atmega 128.

Mein Gedankengang:

Ich nehme einen kleineren Controller. für jede Gruppe einen. Jeder 
bekommt
das gleiche Programm.
Ich habe aber Angst das sich diese voneinader abweichen wenn die 8-9 
Stunden laufen.

Frage kann ich diese alle Zusammen über ein Externes Qaurz sysconisieren 
oder gibt es eine andere Möglichkeit?

LG Marcel

von npn (Gast)


Lesenswert?

Nimm doch Portexpander, die du über I²C oder SPI ansteuerst 
(beispielsweise). Dann kannst du mit einem Controller mehrere Ports 
ansteuern und weißt immer, daß alles timingmäßig synchron läuft.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Prinzipiell kannst Du mehrere Controller mit einem Taktgenerator 
betreiben. Wenn Du eine zusätzliche Pufferstufe verwendest, kannst Du 
auch den Taktgenerator eines Deiner Controller (wenn mit ext. Quarz 
stabilisiert) anzapfen und das so gewonnene Taktsignal in die anderen 
Controller einspeisen.

Du kannst auch einen separaten Quarzoszillator als Taktquelle für alle 
Controller verwenden; die Anzahl hängt vom "fan-out" des 
Quarzoszillators ab, die sich aber wiederum mit entsprechenden 
Pufferstufen steigern lässt.

von npn (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> anzapfen und das so gewonnene Taktsignal in die anderen
> Controller einspeisen.

oder den CKOUT des Controllers nutzen...

von foo (Gast)


Lesenswert?

Marcel Pieroth schrieb:
> Ich habe aber Angst das sich diese voneinader abweichen wenn die 8-9
> Stunden laufen.
>
> Frage kann ich diese alle Zusammen über ein Externes Qaurz sysconisieren

Es hat oft Vorteile einen gemeinsamen Takt zu verwenden, aber ob die 
Prozessoren synchron bleiben, ist nicht zuletzt eine  Frage der 
Software.

von Martin S. (led_martin)


Lesenswert?

Die Controller mit dem selben Takt zu versorgen, ist an sich nicht 
schwierig, wie hier ja schon geschrieben wurde, garantiert aber nicht 
den Gleichlauf. Wenn z.B. ein Störimpuls einen der Controller resettet, 
muß die Synchronität ja wieder hergestellt werden, oder das ganze System 
neu gestartet werden. Man kommt also nicht drum rum, die Synchronität zu 
überwachen, und gegebenenfalls wiederherzustellen. Das wird, mit 
gemeinsamem Takt allerdings einfacher, da das langsame Wegdriften 
wegfällt. Möchtest Du PWM an den Licht-Kanälen machen? Wenn nein, wäre 
eine Porterweiterung z.B. mit Schieberegistern sicher einfacher. Zwei 8 
Bit Schieberegister an der Hardware-SPI sind auch nur 2 zusätzliche 
Bausteine, daran 16 Ausgänge, und die jetzt noch fehlenden 8 direkt am 
Controller.

Mit freundlichen Grüßen - Martin

von Joe F. (easylife)


Lesenswert?

Marcel Pieroth schrieb:
> Kanäle sind insgeammt 24 Kanälen. Die sich in 4 Gruppen wiederholen.
>
> Aufgrund der Platine habe ich aber keinen Platz für eine atmega 128.
>
> Mein Gedankengang:
>
> Ich nehme einen kleineren Controller. für jede Gruppe einen.

Es sollen also alle 4 Controller auf 24 Outputs genau das gleiche 
machen?

Da reicht doch genau 1 Controller, und du hängst an jeden der 24 Output 
je 4 "Lampen-Treiber" ran...

Oder sind es 6 Kanäle (x 4)? Ganz schlau werde ich nicht, aber egal.
Alles was sich "wiederholt", d.h. das gleiche Signal bekommt, kann man 
auch direkt hardwareseitig zusammenschalten.

von Mike A. (Gast)


Lesenswert?

Marcel Pieroth schrieb:
> Frage kann ich diese alle Zusammen über ein Externes Qaurz sysconisieren
> oder gibt es eine andere Möglichkeit?

Man kann alle Prozessoren über einen Pin synchronisieren. Einer stellt 
den Master dar und gibt das Synchronisationssignale raus.

von Joe F. (easylife)


Lesenswert?

Kann man machen, nur stellt sich mir trotzdem noch die Frage, wozu man 4 
Dirigenten braucht, die untereinander synchron dirigieren sollen, und 
die jeweils einen Geiger dirigieren, wenn jeweils 4 Geiger auch auf 
einen Dirigenten gucken könnten... ;-)

von Marcel P. (Firma: Mapi Modellbau) (mapi)


Lesenswert?

Hi,

Vielen vielen dank an die Vielen und vor allem schnellen Antworten.

Ihr habe mich eine großen Schritt weiter gebracht.

DANKE

lg marcel

von Joe F. (easylife)


Lesenswert?

Na, sei doch noch so nett, und erläutere kurz wie deine Lösung jetzt 
aussieht.

von Marcel P. (Firma: Mapi Modellbau) (mapi)


Lesenswert?

Hallo,

ich habe das ganze nun so aufgebaut das ich einen Atmega 128 nutze und 
diese dann mit den Ausgängen eingeteilt habe.
Ich habe aber auch an Ausgängen abgespeckt da das andere aus 
Platzgründen auf
der Platine nicht so enfach umzusetzten war.

Vielen Dank für eure Mithilfe und Infos daran!!

lg Marcel

von Marcel P. (Firma: Mapi Modellbau) (mapi)


Angehängte Dateien:

Lesenswert?

Hier noch ein Bild der Platine

von google (Gast)


Angehängte Dateien:

Lesenswert?

Das sieht toll aus. Ein Detail jedoch stört mich, siehe Bild. Warum hast 
Du die Durchkontaktierungen auf die Pads gelegt? War auf der anderen 
Seite nicht genug Platz zum Rand der Platine hin? Denn bei den anderen 
hast Du es doch auch nach außen verlagert.

von MaWin (Gast)


Lesenswert?

Die richtige Lösung für mehrere uC an einem Quartz sollte im (alten) 
Thread vielleicht nicht fehlen:

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.7

> Ich habe 2 Controller an einem Quartz angeschlossen, d.h. XOUT von
> Controller 1 an XIN von Controller 2, aber es schwingt nicht.
> Gibt es eine zuverlässige Lösung ?

Natürlich geht auch ein Quartzoszillator, dessen Ausgang dann nur an XIN 
verteilt wird.

von Marcel P. (Firma: Mapi Modellbau) (mapi)


Angehängte Dateien:

Lesenswert?

Die Klärung diese Frage liegt auf der Rückseite der Platine .... Siehe 
Foto ;-)

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.