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
Such mal nach S.N.A.P. bzw. SNAP. Das dürfte alle Fragen beantworten. seb
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
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
Also du kannst dir das ja mal reinziehen. Es kann immer nur einer senden. Wenn das befolgt wird sollte es keine Probleme geben.
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
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
Hm, moeglich. Ich werds wohl einfach mal irgendwie aufbauen und sehen was dabei rauskommt. mfg
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.
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
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
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
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?
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
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
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
Und das ganze soll natuerlich fast beliebig erweiterbar sein. Drum haengt nicht jede Pumpe an einem Portpin. mfg
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.