Forum: Mikrocontroller und Digitale Elektronik Mehrere AVRs miteinander verbinden?!


von Sven Z. (treito)


Lesenswert?

Hallo,

ich habe da mal ein bislang theoretisches Beispiel: Kann man mehrere 
ATMEGAs so miteinander verbinden, dass ein ATMEGA die Kontrolle 
übernimmt und die anderen IOs liefern?

Gruß,

Sven

von g457 (Gast)


Lesenswert?

> Kann man mehrere ATMEGAs so miteinander verbinden, dass ein ATMEGA die
> Kontrolle übernimmt und die anderen IOs liefern?

Selbstverständlich, wieso denn auch nicht?

von Sven Z. (treito)


Lesenswert?

Die Frage dahinter war auch, wie man das dann bewerkstelligt!

von g457 (Gast)


Lesenswert?

> Die Frage dahinter war auch, wie man das dann bewerkstelligt!

Zusammenspaxen, vorzugsweise mit einer Schnittstelle, die in Hardware 
anwesend ist, z.B. SPI oder UART, ggf. auch was breitbussigeres in 
Eigenentwicklung, ein adäquates Protokoll drauffrickeln, fertig.

Falls es rein um Ein- bzw. Ausgänge geht: Schieberegister könnten da 
auch helfen.

von Sven Z. (treito)


Lesenswert?

Es geht auch darum, ggf. Ein- und Ausgänge an anderer Stelle 
bereitzustellen, so dass man "nur" eine 2-adrige Leitung oder 
dergleichen (4-adrig mit Stromversorgung) dahinverlegen muss.
Die meisten µC haben wohl zwei PINs mit RxD und TxD. Ich habe irgendwo 
mal aufgeschnappt, dass damit wohl die Chip-Kommunikation möglich wäre 
und von daher habe ich gehofft, dass es ggf. ein fertiges Projekt gibt, 
auf dass man ggf. zurückgreifen kann...

von Kevin K. (nemon) Benutzerseite


Lesenswert?

dafür brauchst du kein Projekt. Über UART sendest du Bytes, die du so 
"verschlüsselst", dass die Empfangsstelle sie erkennt und auswertet.

von Karl H. (kbuchegg)


Lesenswert?

Sven Z. schrieb:
> Es geht auch darum, ggf. Ein- und Ausgänge an anderer Stelle
> bereitzustellen, so dass man "nur" eine 2-adrige Leitung oder
> dergleichen (4-adrig mit Stromversorgung) dahinverlegen muss.
> Die meisten µC haben wohl zwei PINs mit RxD und TxD. Ich habe irgendwo
> mal aufgeschnappt, dass damit wohl die Chip-Kommunikation möglich wäre

ja, sicher. Warum auch nicht.
Ob am anderen Ende der Leitung ein PC hockt oder ein anderer Mega, ist 
ja dem µC wieder wurscht.

> und von daher habe ich gehofft, dass es ggf. ein fertiges Projekt gibt,
> auf dass man ggf. zurückgreifen kann...

Ist eine ganz normale Anwendung. Wenn man es kann eine Sache auf 1 
Nachmittag. Wenn man es nicht kann, dauert es länger.


Aber ich hab da so eine Ahnung. Wir landen wieder beim hier im Forum 
allseits so beliebten: Ich würde gerne xyz bauen, mir fehlen aber die 
Grundlagen. Hilfe!

von Sven Z. (treito)


Lesenswert?

1. Natürlich fehlen mir die Grundlagen, jeder fängt mal klein an! Und 
ohne "Informationen" kann man auch nichts lernen, darum suche ich ja ein 
"Beispielprojekt", ein passendes Tutorial oder dergleichen...
2. Mein "Gedankenproblem" liegt eigentlich in der Art, dass ich mir 
vorstellen kann, 2 µC zu verbinden (RxD mit TxD und umgekehrt), aber wie 
dann einen ggf. dritten?! Wäre das auch noch möglich?!

von Karl H. (kbuchegg)


Lesenswert?

Sven Z. schrieb:
> 1. Natürlich fehlen mir die Grundlagen, jeder fängt mal klein an! Und
> ohne "Informationen" kann man auch nichts lernen, darum suche ich ja ein
> "Beispielprojekt", ein passendes Tutorial oder dergleichen...

Was hindert dich dann daran, zb im AVR-GCC-Tutorial den Abschnitt über 
UART zu lesen?

> 2. Mein "Gedankenproblem" liegt eigentlich in der Art, dass ich mir
> vorstellen kann, 2 µC zu verbinden (RxD mit TxD und umgekehrt), aber wie
> dann einen ggf. dritten?! Wäre das auch noch möglich?!

Auch das ist im Prinzip noch möglich.
RS232 ist zwar eigentlich nicht dafür gedacht, aber in deiner speziellen 
Konstellation bei der es einen dezidierten Master gibt, der die Slaves 
zur Rückmeldung auffordern kann, ist das ein elektrisches Problem, so 
dass die Slaves untereinander keinen Kurzschluss erzeugen wenn einer 
antwortet.

Das wäre jetzt mit einer UART Lösung. Andere Lösungen sind nach wie vor 
möglich.

Der zentrale Mega schickt auf seiner UART-Sendeleitung (die alle Slaves 
gemeinsam abhören) raus:  µC mit der Nummer 5, gib mir den Zustand 
deines 9. Eingangspins.
Alles Slaves hören mit und der µC dem die Nummer 5 zugeordnet wurde, 
antwortet mit der betreffenden Information. Die restlichen Slaves 
ignorieren ganz einfach den Befehl.

von Sam .. (sam1994)


Lesenswert?

Möglicherweise braucht man Schutzdioden. Dann musst du dir ein Protokoll 
ausdenken.

z.b. 3|1F2E34CC

3 als ID der Rest als hexadezimale Daten. Antworten darf natürlich nur 
der gefragte µC.

von Sven Z. (treito)


Lesenswert?

Karl Heinz Buchegger schrieb:

> Auch das ist im Prinzip noch möglich.
> RS232 ist zwar eigentlich nicht dafür gedacht, aber in deiner speziellen
> Konstellation bei der es einen dezidierten Master gibt, der die Slaves
> zur Rückmeldung auffordern kann, ist das ein elektrisches Problem, so
> dass die Slaves untereinander keinen Kurzschluss erzeugen wenn einer
> antwortet.
>
> Das wäre jetzt mit einer UART Lösung. Andere Lösungen sind nach wie vor
> möglich.

Ah Danke, das war es! Quasi Token Ring, also z.B. eine 5-polige Leitung 
und gut.
Ja logisch, daran habe ich gerade nicht gedacht.

Das gcc-Tutorial kenne ich, aber wie gesagt, mir fehlte die Vorstellung 
bzgl. 3 Atmels und mehr!

Aber wie gesagt, bislang war es nur eine Gedankenspielerei; ggf. möchte 
ich so eine Art "Überwachungszentrale" eines Tages bauen. Naja, es ging 
auch mehr darum, ob man mit den Atmels eine SPS ersetzen könnte. Quasi 
einen Atmel für die CPU und jeweils einen Atmel für die "Ein-/ 
Ausgangskarten".

von Karl H. (kbuchegg)


Lesenswert?

Sven Z. schrieb:

> Ah Danke, das war es! Quasi Token Ring, also z.B. eine 5-polige Leitung
> und gut.

Token Ring ist zwar etwas ganz anderes.
Ist zwar in der µC Szene jetzt wahrscheinlich nicht so verbreitet, wie 
eine Stern-Topologie oder ein Bus, aber .... warum nicht?

> Das gcc-Tutorial kenne ich, aber wie gesagt, mir fehlte die Vorstellung
> bzgl. 3 Atmels und mehr!

Ein Mensch (Bundeswehr, Schifffahrt, Baukolonne, ...) kann viele 
Menschen führen, indem er klare Anweisungen rausgibt. Ob das jetzt in 
Form von "Stille Post und weitersagen" (=Token Ring) passiert oder in 
Form von "einer spricht und alle hören zu und ansonsten heißt die Devise 
'Schnauze halten'" passiert, das ist die Entscheidung desjenigen, der in 
der Mitte steht. In deinem Fall dann eben du, weil du dem zentralen µC 
mitteilst (und natürlich auch den µc drumherum) was sie zu tun haben.

von Sven Z. (treito)


Lesenswert?

Ich sagte ja auch "quasi Token Ring". Im Prinzip dachte ich an so eine 
Art "Token Stern", aber keine Ahnung, ob es sowas gibt geschweige denn 
einen Fachbegriff dafür.
Mir war halt "elektrisch" nicht klar, wie man die µC verbinden müsste. 
Naja gut, entweder alle lauschen und es darf nur der senden der vorher 
einen entsprechenden Code empfangen hat oder aber der Master-µC schaltet 
"hardwaremässig" den entsprechenden Slave-µC frei. Das würde dann aber 
pro Slave ein Pin am Master benötigen.
Okay sei es drum. So langsam kommen mir Ideen...

von Peter D. (peda)


Lesenswert?


von Sven Z. (treito)


Lesenswert?

Peter Dannegger schrieb:
> Beitrag "mehrere MC seriell über Datenbus verbinden (1Draht)"
>
> Peter

Ah Okay, danke, das sieht doch sehr gut aus!

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.