mehrere Module ueber uart

Gast #105529
Lesenswert?

Hallo,
ich moechte mehrere kleine Steuermodule (mit nem 2051 drauf, bis zu
32stck) ueber ihren uart parallel an den Uart eines 8252 anschliessen
um etwas Bussystemaehnliches zu realisieren :). Die Frage ist nun, ob
zb. das 5. Modul das empfangen kann, was der 8252 sendet, weil die
anderen Module ja auch an dieser Leitung haengen und ggf den Pegel
veraendern koennen.

danke im voraus und mfG
Gast #105534
Lesenswert?

Ja, Danke. Das Protokoll ist mir aber eigentlich recht egal, mir gehts
um die Hardwareseite. Kann ich einfach 32 µCs parallel an den uart des
masters anschliessen, ohne dass sie sich gegenseitig stoeren?

mfg
Gast #105540
Lesenswert?

Also wenn man sich das SNAP mal anschaut, sieht man wie das da gemacht
wurde. Ist ja auch egal. Solange nicht mehr als einer sendet und der
Bus nicht meterlang ist, sollte es keine Probleme geben.
Gast #105542
Lesenswert?

Wenn einer auf low geht, werden alle anderen mit auf low gezogen da ja
auf GND geschaltet wird und die es physikalisch da hin zieht.
Ich hatte mal an einen als normal konfigurierten Input-Pin mit Pull-Up
den Strom gemessen, weil ich wissen wollte, wie hoch der interne
Pull-Up-Widerstand ist.
Das waren bei 5V 137µA also 36KΩ.
Wenn das im UART-Mode ähnlich der Fall ist wären das bei 32 Pins 4384µA
(4,4mA).
Ein AVR-Pin hält angeblich max. kurz 40mA aus, also ca. das 9-fache und
4 1/2 mA kratzt Ihn dann nicht.
Miss doch einfach mal, wie viel Strom vom UART-Pin zur Masse fließt
dann weißt Du mehr.

Gruß
Andi
Gast #105546
Lesenswert?

Kenne mich da jetzt nicht sooo sehr aus, aber ist das Problem nicht
weniger der maximal zulässige Strom, sondern eben der Pegel? Stichwort:
FanOut?
Wenn ein Chip die Leitung auf low zieht, sinds ja noch 31 Chips, die
die Leitung hochziehen. Das sind also 31 Widerstände parallel gegen
Vcc, oder mache ich einen Denkfehler?
Gast #105547
Lesenswert?

Alles, was auf GND geschaltet wird, auch ohne Widerstand (Kurzschluß),
geht von high auf low.

Gut, ich kann gut reden mit meinem Problem des Input und Output an
einem Pin was noch nicht richtig gelöst ist.

Gruß
Andi
Gast #105548
Lesenswert?

Was ist eigentlich, wenn nicht ein Slave was zum Master senden will,
sondern zufällig mehrere?
Da gibs dann einen heftigen Datensalat welcher vom Master nicht
verwertbar ist.
Oder Du mast die Master-Software so, das der die Slaves der Reihe nach
abfragt, ob die was zum senden haben und stattest jeden Slave mit einer
eindeutigen "Abfrage-ID" aus worauf dann nur einer reagiert.
Was hast Du eigentlich vor?

Gruß
Andi
Gast #105549
Lesenswert?

Das ganze soll eine Steuerung fuer mehrere Pumpen werden (Durchfluss-
und Druckmessung). Der Master sendet die ID des Slaves, an dem die
Pumpe haengt, die sich nun einschalten soll, eine bestimmte Menge pumpt
und dann ueber den Slave wieder abgeschaltet werden soll. Da jeder Slave
seine eigene Adresse hat, wird immer nur der senden, der vom Master
"angesprochen wurde". Also I²C-aehnlich.

mfg
Gast #105551
Lesenswert?

Ich habe eine Idee für etwas ähnliches, bei mir reicht sogar eine
Leitung zur Kommunikation.
An jedem Controller (auch am Master) wird eine Pegelwandlung
vorgenommen. Bei High am TX werden 12V auf die Busleitung
durchgeschaltet, bei Low am TX ist die Busleitung offen.
Die RX-Pins sind über einen Spannungsteiler ebenfalls an die Busleitung
angeschlossen. Durch den Spannungsteiler wird die Busleitung auf 0V
gezogen, wenn kein TX-Signal vorliegt. Die Spannungsteiler werden auf
einen Strom von 1mA eingestellt. Durch die höhere Spannung und den
Strom, der fließen muß, wird die Datenübertragung sicherer, als bei
geringen Strömen.
Eine Kollision hätte keine folgen für die Hardware. Und eine Leitung
gespart...
Der einzige Nachteil: Dadurch, daß RX und TX sich die gleiche Leitung
teilen, ist nur Halbduplex möglich. Vorteil: Jeder Baustein hört seine
eigene Übertragung mit. Falls es zu Überschneidungen kommt, kann man
die Übertragung abbrechen, wenn gesendetes Byte <> empfangenes Byte.

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