Hi Leute, ich habe folgendes Problem: Ich habe zwei µC's auf einem Board, die über eine simple USART miteinander kommunizieren sollen. Dazu sind Rx / Tx direkt miteinander verbunden. Jetzt möchte ich aber, daß ich von einem PC aus mit dem Com-Port mich in die Kommunikation der beiden µC's "einmischen" kann. Somit wandel ich die RS-232 Signale mit einem MAX232 erstmal in TTL-Signale. Die Frage ist nun, kann ich die Ein- und Ausgänge des MAX232 einfach parallel an die beiden Rx / Tx der µC's "klemmen" ? Oder gibt es da elektrische Probleme?! Ich habe mal gehört das man Ausgänge von TTL-Ic's nicht ohne weiteres zusammenschalten darf (ausser TriState). Danke!
Naja, dürfen tut man schon, nur gehts dann putt. Frage: Was soll das bringen? Ne möglichkeit wäre, du nimmst 2 bidirektionale treiber, die du mit dem Rechner steuern kannst.
Hallo! Dann mach an die Ausgänge des MAX232 je einen Komparator mit Pull-up-Widerstand hin (z.B. LM33), dann kannst Du sie parallel schalten.
Hallo zwei "Sender", also 2 Ausgänge dürfen nicht aufeinander geschaltet werden. Lösung für das Problem gibts mehrere. 1. Die beiden uC werden z.B. über SPI miteinander verbunden, statt mit UART. dann ist die UART frei für den PC. Oder man verwendet uC mit 2 UART'S 2. Wenn beides wie beschrieben üer UART laufen soll, dann ist zu überlegen, obs vielleicht einen Master geben kann, der einen Multiplexer steuert und damit gezielt Verbindungen herstellt. 3. gibts die Möglichkeit eben Tristate-treiber oder Open-Collector-Treiber dazwischenzuschalten. Aber wirklich sauber ist nur Ansatz 1. Gerhard
Na ja, PC -> Rx1 Tx1 -> Rx2 Tx2 -> PC In diesem Fall must du im Datum auch kennzeichnen, welcher Controller angesprochen werden soll. MW
Servus Excellsi, hatte bei meiner Diplomarbeit ein ähnliches Problem. Muss mich im wesentlcihen der Argumentation von Gerhard anschließen. Ich hatte in meinem System einen Master und mehrere Slaves in einer Art Netzwerk. Dies wurde über UART mit RS485 realisiert. Dennoch wollte ich, dass der Master mit dem PC kommunizieren konnte. Die Lösung war, dass ich einen Switch dazwischen geschaltet habe (ich glaube CMOS4051) und dann entsprechend auf Pegelwandler RS485 bzw. auf den MAX232 gegangen bin. Nun war die Frage, wie schalte ich den Switch? Im Normalfall findet immer eine Kommunikation über RS485 statt, d.h. Netzwerk-intern. Da der MAX232 über zwei PEgelwandler verfügt, habe ich mich entschlossen Hardware-Handshake über RTS/CTS zu realisieren, d.h. möchte der angeschlossene PC mit dem MAster komm. so meldet er sich über RTS am MAster an. Wenn dieser bereit ist Daten zu empfangen/senden (in PC-Richtung), so schaltet dieser den Switch. Etc., etc. Falls du es genau wissen möchtest, kann ich dir auch die betreffende Passage (Word-Dokument) senden. Gruß Bob
ok, Danke schonmal für die Antworten. Leider habe ich wenig Platz auf meinem Layout, weshalb zwei Treiber nicht in Frage kommen. @Bob: Deine Lösung finde ich wirklich interessant! Habe auch schon überlegt mit CTS usw.. zu arbeiten. Kannst Du mir die Unterlagen vielleicht schicken?? (Funktioniert das ganze auch noch mit 115 kbps?) Danke (excelsior2000@gmx.de)
Man kann auch für die TXDs je ein npn-pnp Transistorpäärchen, die hintereinander geschaltet sind (als nichtinvertierendender Puffer) und auf einen gemeinsamen PullDown-Widerstand gehen. Jeder TXD kann dann senden auf die am PullDown angeschlossenen RXDs, ohne daß ´was kaputt geht. Man muß nur sicherstellen, daß nicht beide TXDs zur selben Zeit senden, da es dann zu Bitmüll kommt. Das kann dann der jeweilige Master überprüfen, indem er vor dem beabsichtigten Datentransfer die RXD-Leitung prüft, ob er darf, oder vom gerade sendenden Element ein Freigabe-Byte erhält. Rein Schltungstechnisch wird das sehr klein aufzubauen sein (4 Transen und 7 Widerstände)
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.