hallo jungs, ich habe ein kleines problem und habe wohl mommentan ein brett vor dem kopf, ich habe 3 Atmegas die alle auf uart verbunden sind zweck komunikation, logisch soweit, aber jetzt die frage wo genau und welche diode verwenden, zum entkoppeln der jeweiligen uart´s. ueber eine beispiel zeichnung wuerde ich mich freuen, doktor GOOGLE gibt mir da nicht die richtigen antworten zu. danke, dietmar
Drei UARTs miteinander und dann entkoppeln? Was soll das werden, ein Bus? Spontan fällt mir höchstens ein wire-AND ein. Das heißt von jedem Sender eine Diode auf den Bus und an den Bus ein Pullup. Das geht dann in Richtung TWI. Letzteres wäre höschtwahrscheinlich sowieso deutlich einfacher, denn bei deiner UART Variante fehlt dir die Collision detection, das heißt es kann passieren, dass mehrere gleichzeitig senden wollen und dann kommt auf den Bus nur noch Müll und du merkst es evtl noch nicht mal. Oder soll das eine Art Ring-Topologie werden? Das kostet dann aber unnötig viel CPU Zeit, weil die Daten durch alle Zwischenstationen durchgereicht werden müssen. Wie üblich brauchts hier mehr Input...
hallo danke schon mal fuer deine antwort, erstmal nein es soll rein ring werden, ich habe einen sogenanten master atmega und 2 slave atmega die beiden liegen parallel am uart, ohne ss pin, das mit dem sprechen ist ok weil es spricht nur der der gefragt wird, ist halt wie ein bus, nur die entfernung ist nur 5 cm und deshalb will ich keinen 485 auf bauen, ich muss nur halt die 2 atmegas entkoppeln, aber das ist es gerade, da habe ich ein brett vor dem kopf. aber ueber weitere hilfe wuerde ich mich freuen.
dietmar schrieb: > hallo danke schon mal fuer deine antwort, > > erstmal nein es soll rein ring werden, Von Ring war auch nicht die Rede :-) > ich habe einen sogenanten master atmega und 2 slave atmega die beiden > liegen parallel am uart, ohne ss pin, das mit dem sprechen ist ok weil > es spricht nur der der gefragt wird, OK. Tx Ausgang vom Master an die Rx Eingänge der Slaves. Tx Ausgänge der Slaves über je eine Diode und hinter der Diode zusammenschliessen und an den Rx Eingang vom Master Spricht der Master, dann kriegen das alle Slaves mit Antwortet ein Slave, so kann der die Leitung (wegen der Dioden) auf High ziehen, ohne dass der andere Slave einen Kollaps kriegt. Sprechen beide Slaves gleichzeitig, so gibt es Datensalat
> erstmal nein es soll rein ring werden, ... > : > ich habe einen sogenanten master atmega und 2 slave atmega die beiden > liegen parallel am uart, ... Wie sieht denn dieser Ring aus? Mir scheint das eher ein Stern zu sein... :-/ Ein Ring wäre sowas:
1 | .---- rx uC1 tx ------- rx uC2 tx ------- rx uC3 tx ------. |
2 | | | |
3 | '---------------------------------------------------------' |
@lkmiller: Richtig, deine Zeichnung ist der Ring, den ich in Erwägung zog. Nach dem zweiten Post von dietmar ist auch klar, dass es so was nicht sein soll, zur Zeit meiner Antwort (also nach dietmars erstem Post) war das zumindest für mich noch nicht klar. @kbuchegg: Da das serielle Protokoll der UARTs als Idle einen High-Pegel aufweist, müssten die Dioden meiner Meinung nach in Richtung Slave gehen. Das heißt der Master hat an seinem Rx den Pull-Up aktiviert und die beiden Slave können über jeweils eine Diode diesen Eingang auf Masse ziehen (=wire-AND). Deine Variante wäre ein wire-OR, was wg dem High als Idle Pegel nicht funktionieren würde.
Meinst Du dann evtl. sowas hier?? www.ibkirchen.de/zipliste/wissen/rs232mul.html Gruß TK
Florian W. schrieb: > @lkmiller: Richtig, deine Zeichnung ist der Ring, den ich in Erwägung > zog. > > Nach dem zweiten Post von dietmar ist auch klar, dass es so was *nicht* > sein soll, zur Zeit meiner Antwort (also nach dietmars erstem Post) war > das zumindest für mich noch nicht klar. > > @kbuchegg: Da das serielle Protokoll der UARTs als Idle einen High-Pegel > aufweist, aber nur, wenn du die komplette RS232 mit den 12V Pegeln benutzt:-) Wenn du 5V serielle machst (also ohne MAX232 dazwischen), dann ist der Ruhepegel Low. Nun macht es aber wenig Sinn, wegen 5cm auf der Platine, den UART Ausgang eines Mega mit einem MAX232 auf 12V Pegel zu bringen und zu invertieren, nur um diese Leitung dann 3 cm weiter mit einem weiteren MAX232 wieder zurückzuinvertieren und wieder auf 5V zu holen.
@ TK genau das hatte ich gesucht? Ist die loesung gut? Weil ich habe das problem, ich arbeite an einen kleinen projekt, habe aber nur atmega8 und in meinem end projekt solln die atmega8 raus und durch einen atmega640 ersetzt werden, weil ich brauche 16 ADC eingaenge mit den drei atmegas habe ich dann 18. danke fuer die schnelle hilfe von allen
Karl heinz Buchegger schrieb: > aber nur, wenn du die komplette RS232 mit den 12V Pegeln benutzt:-) > > Wenn du 5V serielle machst (also ohne MAX232 dazwischen), dann ist der > Ruhepegel Low. Falsch. Idle ist stets logisch 1, bei TTL-Pegeln also High. Der Beginn des Startbits ist eine High-Low-Transition. Findest du so auch in jedem Datenblatt. Bei RS232 entspricht logisch 1 auf den Datenleitungen (und nur da!) -3V..-15V. Damit passt es dann auch wieder mit der "Invertierung" durch den MAX232, die sich im Fall der Datenleitung aber nur auf die Pegel, nicht auf den Logikwert bezieht. Andreas
dietmar schrieb: > ich brauche 16 ADC eingaenge mit den drei atmegas > habe ich dann 18. Warum nimmst Du dann nicht einfach einen oder 2 Multiplexer CD4767 / 74HC4051 / CD4051? Das dürfte die billigere Lösung sein, vorausgesetzt du hast genügend Zeit zwischen den Wandlungen zum Umschalten und zum Ladungsausgleich. Ansonsten: die Diodenlösung funktioniert nur bei 5V-Versorgung zuverlässig. (der maximale Low-Pegel liegt bei 0,2*VCC was bei 2,7V nur 0,54 Volt sind). Es sei denn Du verwendest Schottky-Dioden mit niedriger Durchlassspannung. Ich würde da lieber ein richtiges Und-Gatter spendieren. Gruß Anja
Andreas Ferber schrieb: > Karl heinz Buchegger schrieb: >> aber nur, wenn du die komplette RS232 mit den 12V Pegeln benutzt:-) >> >> Wenn du 5V serielle machst (also ohne MAX232 dazwischen), dann ist der >> Ruhepegel Low. > > Falsch. Idle ist stets logisch 1, bei TTL-Pegeln also High. Der Beginn > des Startbits ist eine High-Low-Transition. Findest du so auch in jedem > Datenblatt. Da hab ich ja wieder einen schönen Bock geschossen. Danke für die Korrektur.
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.