Forum: Mikrocontroller und Digitale Elektronik mehrere Module ueber uart


von andré (Gast)


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

von Sebastian (Gast)


Lesenswert?

Such mal nach S.N.A.P. bzw. SNAP. Das dürfte alle Fragen beantworten.

seb

von andré (Gast)


Lesenswert?

Hmm, also ich find da rein gar nichts. Bei google findet man dazu nur
irgendwelches Ethernet-Zeugs aber nix, womit man zusammen mit dem uart
etwas anfangen koennte.

mfg

von DerDirk (Gast)


Angehängte Dateien:

Lesenswert?

Ich glaube ihr meint das...

von Sebastian (Gast)


Lesenswert?

Nu genau. Damit kannst du nem Menge kleine uC miteinander verbinden.

von andré (Gast)


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

von Sebastian (Gast)


Lesenswert?

Also du kannst dir das ja mal reinziehen. Es kann immer nur einer
senden. Wenn das befolgt wird sollte es keine Probleme geben.

von gast (Gast)


Lesenswert?

der will doch nur wissen ob der ausgang des uart bei 32 angeschlossenen
eingänge zusammen bricht oder nicht (ob da genug strom raus kommt)

das kann ich leider nicht beantworten

von andré (Gast)


Lesenswert?

Genau, gast hat es treffend formuliert :)

mfg

von Andi (Gast)


Lesenswert?

Sind die Signale an der UART nicht high und reagieren auf low?
Kann man dan nicht einen PNP-Transistor verwenden mit genügend Amper?

Gruß
Andi

von andré (Gast)


Lesenswert?

Hm, moeglich. Ich werds wohl einfach mal irgendwie aufbauen und sehen
was dabei rauskommt.

mfg

von Sebastian (Gast)


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.

von andré (Gast)


Lesenswert?

Irgendwie verstehst du mein Problem nicht.

http://mitglied.lycos.de/kolbe17/masl.JPG

Die Tx-Leitungen an den Slaves sind ja High. Angenommen einer der
Slaves will nun ne 0 senden und geht auf Low. Dann ziehen die anderen
Slaves die Leitung doch wieder hoch und am Master kommt ne 1 statt der
0 an. Mal mit Transistoren versuchen.

mfg

von Andi (Gast)


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

von andré (Gast)


Lesenswert?

Hm, stimmt. Hab mal eben nachgemessen: bei meinem 8252 fliessen nur
8,9µA, also also nur 0,28mA. Genauso funktionierts ja auch in die
andere Richtung :), super.

Danke und mfG

von Andi (Gast)


Lesenswert?

Sind 8,9µA nicht 0,0089mA?

von Andi (Gast)


Lesenswert?

Ups, Du meintest wohl alle 32 zusammen mir 0,28mA :-)

von Christof Krüger (Gast)


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?

von Andi (Gast)


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

von Andi (Gast)


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

von andré (Gast)


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

von andré (Gast)


Lesenswert?

Und das ganze soll natuerlich fast beliebig erweiterbar sein. Drum
haengt nicht jede Pumpe an einem Portpin.

mfg

von thkais (Gast)


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.

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.