mehrere uC verbinden

Gast #945680
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
Gast #945701
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
#945713
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.
Gast #945727
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!
#945729
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren