Forum: Mikrocontroller und Digitale Elektronik Probleme mit der seriellen Schnittstelle


von Johannes (Gast)


Lesenswert?

Hallo,

vielleicht kann mir einer einen Tip geben. Ich wollte mal mit der 
seriellen Schnittstelle ein wenig rumspielen. Leider funktioniert es 
nicht richtig und ich versuchte das Problem zu finden.

Ich habe eine "echte" serielle Schnittstelle an meiner Dockingstation 
(ibm Thinkpad) und mir einen USB-TTL Wandler gekauft (wird mit Silicon 
Labs CP210x USB to UART Bridge) erkannt.

Brücke ich nun RXD und TXD an den jeweiligen Schnittstellen und sende 
mit einem Terminalprogramm irgendwas, wird dies auch wieder empfangen. 
Nun wollte ich von der einen zu anderen senden. Ich habe das 
Terminalprogramm zwei mal gestartet und mit dem jeweiligen COM-Port 
verbunden. dann habe ich mit ein Kabel gebastelt und GND TXD und RXD 
verbunden. Mit TXD RXD Kreuzung kam gar nichts an (Pinbelegung von 
Wikipdea). Vielleicht ist die Platine falsch beschriftet (oder gabs da 
nicht auch mal ein Dreher bei IBM PCs???)

Leider kommt nur Mist an, also es wird was empfangen, jedoch nur 
Hieroglyphen. Alle Einstellungen (Baud, Parität etc.) sind gleich.

Hat jemand eine Idee, ich wäre sehr Dankbar.

Grüße
Johannes

von Lisa (Gast)


Lesenswert?

Wie hoch hast du die BAUD den eingestellt?
Vielleicht gibt es bei der USB-Bridge ein Maximum?

von Dennis (Gast)


Lesenswert?

Johannes schrieb:
> Leider kommt nur Mist an, also es wird was empfangen, jedoch nur
> Hieroglyphen.

Ziemlich sicher Baudrate falsch...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Johannes schrieb:
> Ich habe eine "echte" serielle Schnittstelle an meiner Dockingstation
> (ibm Thinkpad) und mir einen USB-TTL Wandler gekauft (wird mit Silicon
> Labs CP210x USB to UART Bridge) erkannt.

Die kannst Du nicht miteinander verbinden. Die "echte" serielle 
Schnittstelle Deiner Dockingstation arbeitet mit RS232-Pegel (-12V für 
1, +12V für 0), Dein USB-TTL-Wandler arbeitet, wie der Name impliziert, 
mit TTL-Pegel - 5V für 1, 0V für 0.

Verbindest Du die beiden, zerstörst Du den RxD-Eingang des 
USB-TTL-Wandlers, weil der eine deutlich zu hohe Spannung abbekommt.

von Anja (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> zerstörst Du den RxD-Eingang des
> USB-TTL-Wandlers, weil der eine deutlich zu hohe Spannung abbekommt.

Eine RS232-Schnittstelle ist strombegrenzt. Es besteht also eine gewisse 
Chance daß der TTL-Eingang das überlebt hat.

Gruß Anja

von hilfe ein wahnsinniger (Gast)


Lesenswert?

Das ein RS232 Treiber invertiert, kommt eh nichts, auch wenn man 
USB-Serial-zu TTL verbindet, und die Verbindung das ueberlebt.

von Wolfgang (Gast)


Lesenswert?

hilfe ein wahnsinniger schrieb:
> Das ein RS232 Treiber invertiert, kommt eh nichts ...

Warum nicht. Irgendwo wird sich auch in dem invertierten Datenstrom ein 
Bit finden lassen, das als Startbit interpretierbar ist. Allerdings wird 
es Framing Errors hageln.

von Jörg E. (jackfritt)


Lesenswert?

Aber bei framing errors kommen doch keine falschen daten an oder?

von Johannes (Gast)


Lesenswert?

> Die kannst Du nicht miteinander verbinden. Die "echte" serielle
> Schnittstelle Deiner Dockingstation arbeitet mit RS232-Pegel (-12V für
> 1, +12V für 0), Dein USB-TTL-Wandler arbeitet, wie der Name impliziert,
> mit TTL-Pegel - 5V für 1, 0V für 0.
>
> Verbindest Du die beiden, zerstörst Du den RxD-Eingang des
> USB-TTL-Wandlers, weil der eine deutlich zu hohe Spannung abbekommt.

Danke! Ist klar, wäre ich aber nie drauf gekommen. Das Ding funktioniert 
noch. Jetzt muss ich mir noch so ein Ding suchen bzw. einen MAX232.
Vielen Dank!


> Das ein RS232 Treiber invertiert, kommt eh nichts, auch wenn man
> USB-Serial-zu TTL verbindet, und die Verbindung das ueberlebt.

Sorry kapier ich nicht, kannst du das noch mal schreiben?

von Wolfgang (Gast)


Lesenswert?

Jörg Esser schrieb:
> Aber bei framing errors kommen doch keine falschen daten an oder?

Wenn die Fehler im Übertragung dadurch entstehen, dass irgendwelche 
Bits als Startbit interpretiert werden, haben die empfangenen Daten 
inhaltlich überhaupt nichts mit den gesendeten zu tun.

Eine fehlende Invertierung führt dazu, dass die vom Sender gesendeten 
Startbits wegen der falschen Polarität nicht vom Empfänger erkannt 
werden können. Trotzdem versucht der Empfänger das ankommende 
Kauderwelsch zu interpretieren und spukt irgendwelchen Mist aus.

von Johannes (Gast)


Lesenswert?

Habe ich das jetzt richtig verstanden:

Der RS232 Treiber in meiner Dockingstation invertiert die Pegel auch 
noch, d.h. ich brauche ein Max232 für die Pegelanpassung und noch nen 
inverter für Rxd und Txd?

von Johannes (Gast)


Lesenswert?

Ok der Max232 invertiert ja schon .... hätte ich mal das Datenblatt 
gelesen.

Weiß jemand ob bei IBM PCs RxD und TXD vertauscht sind? Irgendwas hatte 
ich mal gehört, finde aber keine Informationen bei Google...

von Karl H. (kbuchegg)


Lesenswert?

Johannes schrieb:
> Ok der Max232 invertiert ja schon .... hätte ich mal das Datenblatt
> gelesen.
>
> Weiß jemand ob bei IBM PCs RxD und TXD vertauscht sind? Irgendwas hatte
> ich mal gehört, finde aber keine Informationen bei Google...

Das kann man zur Not auch selber feststellen.
Einfach eine LED samt Vorwiderstand an beide Leitungen klemmen, 
Terminalprogramm starten und Stein auf die Tastatur legen. Die LED die 
flackert ist die Leitung aus der die Daten rauskommen.
Die andere ist dann logischerweise RxD

Es gibt Dinge, die hat man mit einfachen Mitteln schneller selbst 
festgestellt, anstatt sie zu ergoogeln.

Abgesehen davon.
Was denkst du? Kann es sich IBM wirklich leisten, eine andere 
Steckerbelegung zu verwenden als der Rest der Welt? Was denkst du, was 
dann bei denen in der Hotline los wäre, wenn es nicht möglich ist, jedes 
x-beliebige Standardgerät einfach anzustecken?

: Bearbeitet durch User
von Reinhard Kern (Gast)


Lesenswert?

Karl Heinz schrieb:
> Das kann man zur Not auch selber feststellen.

Noch bessere Idee: nach der Steckerbelegung googeln. Das ist nichts 
vertauscht, gegenüber was denn? Aber nach der Pinbelegung eines Steckers 
sollte man sich schon richten, wenn nachher was funktionieren soll, und 
nicht bloss einfach drauflosvermuten. Und vom 9poligen COM-Stecker a la 
IBM gibt es nur eine Version.

Gruss Reinhard

von Karl H. (kbuchegg)


Lesenswert?

Reinhard Kern schrieb:
> Karl Heinz schrieb:
>> Das kann man zur Not auch selber feststellen.
>
> Noch bessere Idee: nach der Steckerbelegung googeln. Das ist nichts
> vertauscht, gegenüber was denn? Aber nach der Pinbelegung eines Steckers
> sollte man sich schon richten, wenn nachher was funktionieren soll, und
> nicht bloss einfach drauflosvermuten. Und vom 9poligen COM-Stecker a la
> IBM gibt es nur eine Version.

Volle Zustimmung.

Allerdings gibt es einem dann auch eine gewisse Sicherheit, wenn man mit 
eigenen Augen sieht, dass die Daten tatsächlich auch aus dem Anschluss 
rauskommen, aus dem sie kommen sollen. Man glaubt dann schon eher, dass 
man selber einen Fehler gemacht hat und nicht IBM

(ditto das berühmte "der Compiler hats verbockt"-Syndrom)

von Johannes (Gast)


Lesenswert?

Karl Heinz schrieb:
> Reinhard Kern schrieb:
>> Karl Heinz schrieb:
>>> Das kann man zur Not auch selber feststellen.
>>
>> Noch bessere Idee: nach der Steckerbelegung googeln. Das ist nichts
>> vertauscht, gegenüber was denn? Aber nach der Pinbelegung eines Steckers
>> sollte man sich schon richten, wenn nachher was funktionieren soll, und
>> nicht bloss einfach drauflosvermuten. Und vom 9poligen COM-Stecker a la
>> IBM gibt es nur eine Version.
>
> Volle Zustimmung.
>
> Allerdings gibt es einem dann auch eine gewisse Sicherheit, wenn man mit
> eigenen Augen sieht, dass die Daten tatsächlich auch aus dem Anschluss
> rauskommen, aus dem sie kommen sollen. Man glaubt dann schon eher, dass
> man selber einen Fehler gemacht hat und nicht IBM
>
> (ditto das berühmte "der Compiler hats verbockt"-Syndrom)

Ist ja gut Jungs... kommt wieder runter. Mir ging es am Ende nur um eine 
zusätzliche Information. Irgendwas war da  und man konnte es nicht mehr 
ändern, aber auch ganz gut damit leben. Vielleicht verwechsele ich auch 
was...

Trotzdem Danke.

von gnd3 (Gast)


Lesenswert?

naja, ein Körnchen Wahrheit ist schon drin. Ursprünglich hatten die 
COM-Port-Stecker 25 Pins mit TXD auf 2 und RXD auf 3. IBM hat dann die 
9-poligen eingeführt und (u.a.) Pin 2 und 3 vertauscht.

Dazu kommt noch die Verwirrung durch die Stecker am Modem. Da ist die 
Belegung genau umgekehrt wie am PC, damit man ein 1:1 Kabel verwenden 
kann.

Damit es nicht zu einfach wird, verwendet man bei anderen seriellen 
Geräten meist die gleiche Belegung wie am PC (und ein gekreuztes Kabel). 
Oder eine Hersteller-eigene Belegung, damit die Leute für 48 Euro ein 
Spezialkabel kaufen :(

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

gnd3 schrieb:
> Dazu kommt noch die Verwirrung durch die Stecker am Modem.

Deswegen hat das Modem ja auch keinen Stecker, sondern eine Buchse.

Da ist also keine wirkliche Verwirrung. Sondern das ist genau richtig 
gemacht.

von Michael L. (michaelx)


Lesenswert?

gnd3 schrieb:
> naja, ein Körnchen Wahrheit ist schon drin. Ursprünglich hatten die
> COM-Port-Stecker 25 Pins mit TXD auf 2 und RXD auf 3. IBM hat dann die
> 9-poligen eingeführt und (u.a.) Pin 2 und 3 vertauscht.

Auf dem 9-poligen Anschluss ist aber noch mehr "vertauscht" gegenüber 
dem 25-poligen. Auch GND ist woanders u.s.w. ... ;-)

> Dazu kommt noch die Verwirrung durch die Stecker am Modem. Da ist die
> Belegung genau umgekehrt wie am PC, damit man ein 1:1 Kabel verwenden
> kann.

Nein! Nicht die Belegung ist umgekehrt, sondern die Richtung. Was beim 
PC Eingang ist, ist am Modem Ausgang und umgekehrt.

> Damit es nicht zu einfach wird, verwendet man bei anderen seriellen
> Geräten meist die gleiche Belegung wie am PC (und ein gekreuztes Kabel).
> Oder eine Hersteller-eigene Belegung, damit die Leute für 48 Euro ein
> Spezialkabel kaufen :(

Das ist nur billige Polemik. Wenn du dir die Bedeutung und Verwendung 
der RS-232 mal ganz kurz angeschaut hättest, würdest du nicht sowas 
schreiben.

;-)

von B e r n d W. (smiley46)


Lesenswert?

> und mir einen USB-TTL Wandler gekauft

Falls da wirklich ein TTL-Signal rauskommt, kann das direkt mit dem 
Mikrocontroller verbunden werden. Zur Sicherheit würde ich 1k 
Widerstände in die Leitung schalten. GND muss man natürlich auch 
verbinden.

> Vielleicht ist die Platine falsch beschriftet

Das kann ich bestätigen! Einige dieser Teile sind etwas seltsam 
beschriftet.

> Einfach eine LED samt Vorwiderstand an beide Leitungen klemmen

Das wurde ja schon geschrieben:
Einfach eine LED mit Vorwiderstand mit der Kathode auf GND schalten. 
Wenns flackert, ist es Tx. Ich verwende einen 9-poligen Adapter, der 
zwischen den Anschluss gesteckt werden kann. Rot ist für Tx, Grün für 
Rx. Ein sehr hilfreiches Tool zu Inbetriebnahme von Schnittstellen.

Ist ein Oszilloskop vorhanden? Dann beim Tx die Dauer des kürzesten 
Impulses ermitteln. Der Kehrwert ist die Baudrate.

: Bearbeitet durch User
von Johannes (Gast)


Lesenswert?

B e r n d W. schrieb:
> Das wurde ja schon geschrieben:
> Einfach eine LED mit Vorwiderstand mit der Kathode auf GND schalten.
> Wenns flackert, ist es Tx. Ich verwende einen 9-poligen Adapter, der
> zwischen den Anschluss gesteckt werden kann. Rot ist für Tx, Grün für
> Rx. Ein sehr hilfreiches Tool zu Inbetriebnahme von Schnittstellen.
>

das hatte ich probiert.
Am echten Com Port geht das, bei dem TTL-Ding ist die Leitung dauerhaft 
high, wenn nichts gesendet wird. Deswegen habe ich eine LED von +5V auf 
RXD und TXD gehängt (welche wirklich vertauscht sind auf der china 
platine)

von B e r n d W. (smiley46)


Lesenswert?

> Deswegen habe ich eine LED von +5V auf RXD und TXD gehängt

Ja, stimmt! Bei TTL ist es andersrum: High=Stopbit.

von Icke (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> gnd3 schrieb:
>> Dazu kommt noch die Verwirrung durch die Stecker am Modem.
>
> Deswegen hat das Modem ja auch keinen Stecker, sondern eine Buchse.
>
> Da ist also keine wirkliche Verwirrung. Sondern das ist genau richtig
> gemacht.

Der PC war ursprünglich als Terminal gedacht und somit wurde auch für 
SUB ein Männchen eingesetzt.

IBM hat aber unterschätzt, das der PC selbst plötzlich die Rolle eine 
Hostsystems übernahm
(DCE/DTE).

Daher ist die Auslegung des PC' s durchaus aus dieser Sicht nicht 
korrekt.

DS.

von Peter (Gast)


Lesenswert?

Das hat Dir ja bestimmt schon einer gesagt:

Du brauchst ein CROSSOVER-Kabel, wenn Du zwei PC-Anschlüsse miteinander 
verbinden willst.

Peter

von Martin V. (oldmax)


Lesenswert?

Hi
Da habt ihr euch schön ausgelassen.. aber mal besser zum Verständnis: 
TxD ist "Transmit Data" und RxD ist "Receive Data". Nun ist nur noch 
über Google heraus zu  bekommen, wie eine RS 232 Buchse belegt ist. 
Transmit gehört auf der anderen Seite auf Receive und umgekehrt. Man 
spricht gern über "CrossOver" aber im Prinzip ist lediglich klar, das er 
Empfangspin ja nur gesendete Daten verarbeiten kann. Eigentlich sollte 
ein Controller ein TTL - Signal lesen können, aber ich weiß nicht, ob er 
die Daten so liefert, wie es der USART des Controllers erwartet. 
(Stichwort : Invertiert) Ein Max schafft da abhilfe. Dann braucht es 
keinen Umsetzer, lediglich ein "Crossover" Kabel. Wie das Ding 
verschaltet werden muss, da hilft vielleicht ein Download vom Atmel 
Evaluationsboard. Oder Google.
gruß oldmax

von Michael L. (michaelx)


Lesenswert?

Martin Vogel schrieb:
> Hi
> Da habt ihr euch schön ausgelassen.. aber mal besser zum Verständnis: ...

Oje. :-(

> Ein Max schafft da abhilfe. Dann braucht es
> keinen Umsetzer, ...

Der MAX232 ist der Umsetzer. ;-)

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.