Forum: Mikrocontroller und Digitale Elektronik RS232 UART Anbindung


von Steffen (Gast)


Lesenswert?

Hab mal ne Frage und zwar zur RS232 Anbindung an den µC.
Unter dem Artikel RS232 steht das man die Pins 7 und 8 am Sub-d Stecker 
verbinden soll und die Pins 1 und 6. Rx TX is klar.

Aber im UART Tutorial is die Verbindung ganz anders gestaltet.
Wo liegt der der Unterschied außer das die Belegung anders ist...?

Dann noch ne frage und zwar habe ich gestern versucht mit einem 
Nullmodem kabel über die RS232 Schnittstelle zu kommunizieren aber es 
ging nicht. Ich habe meinen Stecker so beschalten das Pin 7 und 8 
verbunden sind und Pin 2 und 3 an den MAX232 gehen. Es geht nicht, is 
das Nullmodemkabel nicht das richtige wegen der internen Kreuzung?
Muss ich ein "normales " Kabel nehmen? Kann ich die interne Kreuzung des 
Nullmodemkabels durch Brückung nicht aufheben?

Danke schon mal

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Und, Pin 5 vergessen? Ohne den geht gar nichts.

von Steffen B. (worstmann)


Lesenswert?

Ja der is mit masse verbunden!

Mir gehts um die sache mit dem Kabel!

von Holger K. (krulli) Benutzerseite


Lesenswert?

hast Du denn schon mal Rx und Tx an der Buchse / Stecker getauscht? Das 
wird nämlich u.a. im Nullmodemkabel gekreuzt. Wenn Du es so wie Tutorial 
machen willst, dann brauchtst Du aber ein 1:1 Kabel. Das steht auch 
übrigens drin.

von Steffen B. (worstmann)


Lesenswert?

Ne habsch noch nich versucht.
Also kann man prinzipiell auch mit einem Nullmodem kabel kommunizieren?
Hab halt gelesen das das nich geht.
Ich müsste nur alle gekreuzten entkreuzen sozusagen?

von Dennis (Gast)


Lesenswert?

Zitat aus dem AVR-Tutorial:
>>Die Verbindung zwischen PC und Mikrocontroller erfolgt über ein 9-poliges 
>>Modem-Kabel (nicht Nullmodem-Kabel!), das an den seriellen Port des PCs 
>>angeschlossen wird.

von Dennis (Gast)


Lesenswert?

>>Ich müsste nur alle gekreuzten entkreuzen sozusagen?
Ja

von Steffen B. (worstmann)


Lesenswert?

Hat das jemand schonmal gemacht?
Welche genau muss ich dann "entkreuzen"?

von Holger K. (krulli) Benutzerseite


Lesenswert?

oder nimmst einfach ein 1:1 Kabel

von Steffen B. (worstmann)


Lesenswert?

ich hab aber grad keins dabei und extra bestellen will ich auch nich.

von Dennis (Gast)


Lesenswert?

http://www.kabelfaq.de/

Sollte eigentlich reichen, wenn Du RxD und TxD tauschst.

von Steffen B. (worstmann)


Lesenswert?

Schöne seite!!
ich versuchs mal!

Also hats noch keiner bisher probiert?

von Dennis (Gast)


Lesenswert?

Also:
Ein Nullmodekabel ist auch nur ein Kabel, d.h. paar Drähte mit bisserls 
Isolator drum rum, wie ein 1:1-Kabel halt auch. Nur daß eben Leitungen 
gekreuzt sind, RxD und TxD, ob andere auch noch, weiß ich nicht.
Wenn Du aber keinen Handshake brauchst, ist das eh wurst. Tausch RxD und 
TxD in Deinem Nullmodemkabel und mach die Beschaltung wie im 
AVR-Tutorial und dann sollte das funktionieren.

von Karl heinz B. (kbucheg)


Lesenswert?

Also:
Die Krux an der Sache mit der RS232 besteht darin, dass
verschiedene Geräte bei gleichem Ausgang (Männlein oder
Weiblein) verschiedene Belegungen haben können.
Normalerweise ist es so, dass auf dem Gerät, dass als
'hauptsächlicher Sender' fungiert, eine männliche Buchse drauf
ist. Das Gerät, das als 'hauptsächlicher Empfänger' fungiert
besizt eine weibliche Buchse. Ein Beispiel wäre zb. ein
Terminal oder ein Drucker, dass an einen Computer angeschlossen
wird. Der Computer ist der 'hauptsächliche Sender' und das
Terminal ist der 'hauptsächliche Empfänger'. Beide haben
zb. eine 24 polige RS232.
Dann sendet der Computer dort am Pin 2 und das Terminal erwartet
seine Daten am Pin 2. Hat das Terminal dem Computer etwas mitzu-
teilen, dann macht es das am Pin 3 und der Computer erwartet das
auch am Pin 3.
Daraus folgt: Ein Kabel für so eine Verbindung ist ein Nicht-
gekreuztes Kabel. Pin 2 auf der einen Seite ist mit Pin 2 auf
der anderen Seite verbunden. Ditto für Pin 3.

Was ist aber wenn ich jetzt 2 Computer miteinander verbinden
möchte. Nun in dem Fall haben normalerweise beide einen
männliche Buchse, d.h. man braucht schon mal ein anderes
Kabel, alleine wegen der unterschiedlichen Stecker.
Der Eine, Computer A sendet auf Pin 2, der andere Computer B
möchte das Gesendete auf seinem Pin 3. Umgekehrt genauso:
Computer B sendet auf Pin 3 was der Computer A wiederum auf
Pin 2 empfangen möchte. In diesem Fall benötigt man also
ein gekreuztes Kabel.

Wenn nur alles so einfach wäre! In der Praxis ist es so,
dass es eher 6 unterschiedlche Konfigurationen gibt:
gekreuztes Kabel mit Männchen an beiden Seiten
gekreuztes Kabel mit Weibchen an beiden Seiten
nicht gekreuztes Kabel mit Mänchen an beiden Seiten
nicht gekreuztes Kabel mit Weibchen an beiden Seiten
gekreuztes Kabel mit Männchen / Weibchen
nicht gekreuztes Kabel mit Männchen / Weibchen

Vor allem früher hatte daher jeder Sysadmin kleine
Zwischenstecker, die aus einem Männchen ein Weibchen
machten und umgekehrt. Noch ein Zwischenstecker um
das Kabel zu kreuzen bzw. auszukreuzen und man war eigentlich
für alle Fälle gerüstet. Mit der Verbreitung des PC ist
das etwas besser geworden :-)

Nun gibt es im Kabel ja nicht nur die Leitungen für die Daten.
Da sind zb. noch die Leitungen für das Handshake:
CTS: Clear to send
RTS: request to send
Bei einer 24 poligen RS232 sind das die Pins 4 und 5. Für sie
gilt dasselbe wie für die Datenleitungen 2 und 3. Mit der einen
Leitung signalisiert Partner A zum Partner B: Ich bin bereit
etwas zu empfangen, bzw. ich bin nicht bereit dazu. Mit der
anderen Leitung geht das selbe Spiel in der Rückleitung.

Wenn dein PC also in der Einstellung stehen hat, dass er
Harware Handshake machen soll, dann sendet der so lange nichts
wie die CTS Leitung den falschen Pegel hat. Diesen falschen
Pegel hat sie zb auch dann, wenn am anderen Ende der Pin gar
nicht beschaltet ist. Auf einem µC werden traditionell die
CTS/RTS nicht beachtet, sodass die entsprechenden Pins auf der
RSR232 frei bleiben würden. Nur: In dem Fall würde der PC
nicht senden, falls er zufällig auf Hardware-Handshae steht.
Daher macht man einen Trick: Man lässt den PC sich selbst die
Hardware-Freigabe geben, indem man CTS mit RTS verbindet.
Der PC beschickt ja eine der beiden (weiss nicht mehr welchen)
mit dem richtigen Pegel. Der geht durchs Kabel, wird durch die
Brücke auf der µC-RSR323 Seite auf der anderen Ader wieder
zurückgeschickt und der PC weiss: Ja der Empfänger ist aufnahme-
bereit. Das er sich selbst die Freigabe gegeben hat, merkt der
nicht.

von Holger K. (krulli) Benutzerseite


Lesenswert?

Willste jetzt noch ein Erfahrungsbericht, wie man aus einen gekreuzen 
Kabel ein 1:1 Kabel macht? Lötkolben nehmen, oder bastel Dir ein neues 
Kabel. Buchse und Stecker wirste doch da haben. 2-2, 3-3, 5-5 reicht für 
nen AVR

von Stefan (Gast)


Lesenswert?

Versuchsweise und wenn wegen Ladenschluss Material für ein richtiges 
Kabel beschafft und zusammengelötet werden kann...

...kann man in Buchsen auch Drähte klemmen und auf Steckerpins passen 
auch Lötnagelhülsen. Und mit einem Krokodilklemmen-Käbelchen kann man 
beides verbinden.

Den TX Pin an einem Gerät mit RS232 findet man mit einem Voltmeter bei 
der Messung gegen GND anhand der negativen Spannung -3V bis -15V. Beim 
Verbinden zweier Geräte ist im einfachsten Fall TX1 auf RX2 und RX1 auf 
TX2 und GNG1 auf GND2 zu verbinden.

von Holger K. (krulli) Benutzerseite


Lesenswert?

Tolle Bastler, die nicht mal ein paar Centartikel auf Reserve zu liegen 
haben ;)

von Steffen B. (worstmann)


Lesenswert?

So danke für die ausführlichen und weniger brauchbaren Tips(krulli).
Ich werds probieren.
Schönes we

von Holger K. (krulli) Benutzerseite


Lesenswert?

ok, vielleicht sollte ich doch längere Texte schreiben oder hier doch 
nicht mehr posten

von Karl heinz B. (kbucheg)


Lesenswert?

> Vor allem früher hatte daher jeder Sysadmin kleine
> Zwischenstecker

Einen Zwischenstecker hab ich noch vergessen, den auch
jeder Sysadmin hatte: Auf dem sind Leds drauf, die
den Pegel der Leitung anzeigen. Damit kann man zumindest
einen Teil der Ratespiele - gekreuzt/nicht gekreuzt
umgehen, in dem man das Kabel einfach mal ansteckt
und nachsieht ob alle Leds leuchten.

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.