www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IC's ohne TriState zusammenschalten..


Autor: excelsior (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: SiO2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Anton (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Gerhard Gunzelmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christoph Kessler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder einen Widerstand in Serie zu den Ausgängen

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja,
PC -> Rx1
Tx1 -> Rx2
Tx2 -> PC

In diesem Fall must du im Datum auch kennzeichnen, welcher Controller
angesprochen werden soll.

MW

Autor: Bob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: excelsior (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.