mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mehrere uC verbinden


Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich stehe vor folgendem Problem:

Ich habe ein modulares System mit einer Masterbaugruppe, in das 
Baugruppen hineingeschoben werden.

Da die Masse der notwendigen Signale so langsam das überschreitet, was 
auf der Backplane "verdrahtbar" ist, würde ich gerne vom bisherigen Weg 
abgehen und auf den slave Baugruppen einen Attiny Controller (mit 
hardware uart) einsetzen. Am master sitzt ein 644.


Meine Frage nun: Wie schaffe ich einen Kommunikationskanal zwischen den 
slaves und dem master? Die slaves müssen jeweils nur mit dem Master 
sprechen können und umgekehrt. Eine kommunikation zwischen ihnen ist 
nicht notwendig.

Ich könnte ja prinzipiell zu jedem der 8 slaves eine "select" Leitung 
legen und der Master schaltet dann periodisch eine select Leitung ein, 
fragt Informationen ab bzw. sendet Informationen und aktiviert dann die 
nächste select Leitung.

Wenn die select Leitung inaktiv ist, deaktiviere ich dann die pins für 
den Uart am slave - bzw aktiviere sie, wenn sie aktiv ist.


Bei diesem System bruach ich doch eigentlich keinerlei externe 
Bausteine, wenn jeder uC eine hardware uart hat oder?


Für bessere Ideen bin ich gerne offen; Beschäftige mich erst seit ein 
paar Wochen mit uCs und blicke noch nicht bei allem durch.


Vielen Dank!!


Steffen

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal I²C bzw TWI an. Sowas haben die meisten Atmels schon von 
Haus aus drin. Das ist ein Bus-System das genau deine Anforderungen 
erfüllen sollte.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Steffen

Wenn du schon überall einen UART zur Verfügung hast geht das nur 
bedingt. Der Uart ist normalerweise RS232 Standart und ist nicht für 
Punkt-Mehrpunkst vorgesehen Zu kleiner Innenwiederstand der Empfänger da 
paralell geschaltet. Aber das ist nur die Hälfte der Wahrheit. Für eine 
Punkt-Mehrpunktverbindung ist Hardware und das Protokoll entscheidend.

Möglichkeit1: RS485 Baustein an Mikrocontroller hängen. 3Pin von uC 
nötig (RX/TX Richtungsschalter --> Normale Ausgänge des UART + 1Portpin)

Möglichkeit2. SPI wenn deine uC das untertüzen.

Möglichkeit3. IIC wenn deine uC das untertüzen. (Etwas alt und langsam)

Gruss Michael

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wie lang sind den die Entfernungen, die du überbrücken musst?

>Der Uart ist normalerweise RS232 Standart

Nein. Der ist TTL.

MfG Spess

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist der AVR UART wirklich so schlecht, hat er so einen hohen 
Innenwiderstand? Und der Empfänger so einen niedrigen? Wenn man da ein 
paar µC dran hängt müsste die Kommunikation doch noch funktionieren 
oder? Man kann ja auch einen Transistor zum schalten verwenden.

Autor: Mehmet Kendi (mkmk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steffen wrote:
>
> Beschäftige mich erst seit ein  paar Wochen mit uCs und blicke noch nicht >bei 
allem durch.
>

Na, dann würde ich an deiner Stelle von einem Multi-MCU Design absehen. 
Ansonsten: Mehrere MCU, die auf einer Platine sind, verbinde ich mit 
SPI.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke schonmal für die superschnellen Rückmeldungen!

Die Entfernungen sind ~ 25cm: über einen signalstecker auf die 
backplane, signalstecker und dann noch ein paar cm auf der slaveplatine


Ich dachte eben daran mit einer "Selectleitung" zu jedem slave immer nur 
einen Slave Uart zu aktivieren und sonst auf Eingang zu schalten.


SPI schau ich mir gleich mal an!

Autor: Mätte T. (maette)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kommt drauf an welche Datenmengen du übertragen möchtest.
>Möglichkeit3. IIC wenn deine uC das untertüzen. (Etwas alt und langsam)
I²C ist eigentlich genau richtig, da du im Std.Mode 127 Slaves 
anschließen kannst und sie Software mäßig adressieren. Bei SPI brauchst 
du eine SS Leitung ( Slave Select ) und wenn das System erweiterbar 
bleiben sollte, musst du entweder solche Leitungen vorsehen oder halt 
ein anderen Bus verwenden.

Autor: Steffen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die Datenrate ist unkritisch. wenige Bytes pro Sekunde.

Dann seh ich mir i²c auch nochmal an. Danke!

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.