Forum: Mikrocontroller und Digitale Elektronik mehrere Atmegas Parallel zu Max232?


von cablecore (Gast)


Angehängte Dateien:

Lesenswert?

Nabend Community

Ich habe folgendes Problem,

Ich habe in ein PC-Programm geschrieben um vom PC aus, Aus/Eingänge von 
mehreren Atmegas zu verwalten, Adc´s auslesen usw...

Ich überlege gerade wie ich die Kommunikation der µC´s am einfachsten 
hinbekomme, da ich mit i²c nicht so gut klarkomme wollte ich den Uart 
benutzen. Im Anhang habe ich mal ne skizze reingelegt, würde das so 
funktionieren ?

zB:

Das PC Programm sendet "A12"
Ein Atmega kennt den Befehl und schaltet einen Ausgang, alle anderen 
wissen nicht was sie damit sollen und ignorieren den Befehl einfach...


Theoretisch müsste das doch funktionieren oder ?

vielen dank

Cablecore

von Hc Z. (mizch)


Lesenswert?

Du kannst die Sendeleitungen der AVRs nur dann zusammenschalten, wenn Du 
dafür sorgst, dass zu jedem Zeitpunkt nur ein UART-Sender aktiviert ist 
und dass solange die anderen AVRs ihren Tx-Pin hochohmig (Input) 
schalten.  Für den Fall, dass kein AVR-Tx aktiv ist, würde ich einen 
Pullup vorsehen oder den internen aktivieren.

Alle Empfänger gleichzeitig lauschen zu lassen ist dagegen kein Problem.

von Rainer M. (excogitator)


Lesenswert?

Sicherheitshalber würde ich aber noch an jedem Tx-Pin einen Widerstand 
in Reihe einplanen, damit im Fehlerfall sich die µCs sich nicht 
gegenseitig die Ausgangspins schrotten.

Gruß
Rainer

von Chris (Gast)


Lesenswert?

Ich würde wetten, dass für deine Anwendung ein einziger Controller 
ausreicht.

von cablecore (Gast)


Lesenswert?

Hi Hc Zimmerer

Das hört sich gut an, danke für deine schnelle Hilfe

wenn ich das richtig verstanden habe, dann mache ich also an jeden Tx 
einen 10k als pullup und dann können alle ihre signale verschicken?

von cablecore (Gast)


Lesenswert?

Ich würde dagegen wetten @chris

von g457 (Gast)


Lesenswert?

Eine Alternative wäre Daisy-Chaining [1]. Vorteil: sehr einfacher Aufbau 
und einfach erweiterbar, keiner killt des anderen IO-Pin; Nachteil: Die 
Latenz steigt etwas, jeder µC muss die Daten durchreichen, wenn einer 
verreckt sind die anderen taubstumm.

[1] http://de.wikipedia.org/wiki/Daisy_Chaining

von Hc Z. (mizch)


Lesenswert?

cablecore schrieb:
> wenn ich das richtig verstanden habe, dann mache ich also an jeden Tx
> einen 10k als pullup und dann können alle ihre signale verschicken?

Nein, das hast Du nicht richtig verstanden.  Da die Sendepins parallel 
geschaltet sind, brauchst Du natürlich nicht an jedem einen Pullup.

Außerdem muss die Software dafür sorgen, dass zu jedem Zeitpunkt nur ein 
einziger der Pins auch wirklich ein Sendepin ist, die anderen müssen 
hochohmig sein.  Aber das schrieb ich bereits.

von Phil J. (sunflower_seed)


Lesenswert?

mit RS485 wärs einfacher

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Phil J. schrieb:
> mit RS485 wärs einfacher

aber nur, wenn für jeden einzelnen µC ein eigener RS485-Transceiver 
vorgesehen ist.

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.