mikrocontroller.net

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


Autor: Sven Z. (treito)
Datum:

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

Autor: g457 (Gast)
Datum:

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

Autor: Sven Z. (treito)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage dahinter war auch, wie man das dann bewerkstelligt!

Autor: g457 (Gast)
Datum:

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

Autor: Sven Z. (treito)
Datum:

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

Autor: Kevin K. (nemon) Benutzerseite
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Sven Z. (treito)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Sam .. (sam1994)
Datum:

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

Autor: Sven Z. (treito)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Sven Z. (treito)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Sven Z. (treito)
Datum:

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

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

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.