Forum: Mikrocontroller und Digitale Elektronik USB / RS232 und TTL / RS232 Konverter


von Droid E. (eedroid)


Lesenswert?

Hallo,

als erstes habe durch einen USB / RS232 Konverter mit einem PC zu einer 
Hardware, welcher nur die RS232 Schnittstelle verfügt, eine 
Datenkommunikation aufgebaut: Datenübertragung funktioniert.

Dann habe ich mit einem Netduino (Arduino ableger) durch einen TTL / 
RS232 Konverter die Kommunikation zu der gleichen Hardware aufgebaut, 
Datenübertragung funktioniert nicht...

Die Kommunikation über den TTL / RS232 Konverter mit dem Netduino zu dem 
PC funktioniert prima, daher meine Überlegung: Die Hardware verlangt 
einen Hardware Handshake!?

Folgende Parameter habe ich bei dem seriellen port eingestellt:
9800  8  N / 1


Bevor ich jetzt den guten USB/RS232 Konverter auseinandernehme, frage 
ich doch mal hier nach!

Falls jetzt einer von euch dazu den USB/RS232 Konverter benötigt, würde 
ich diesen nachtürlich frei Haus versenden ;)

Gruß
eedroid

von BirgerT (Gast)


Lesenswert?

Ee D. schrieb:
> Falls jetzt einer von euch dazu den USB/RS232 Konverter benötigt, würde
> ich diesen nachtürlich frei Haus versenden ;)

Ich nehme 2..

Nee - bevor Du jetzt zur Post rennst, vielleicht mal Links auf die 
Beschreibung Deiner Geräte posten. Besonders das der "Hardware".

von Droid E. (eedroid)


Lesenswert?

hallo BirgerT,

vielen dank für deine Antwort! Aber ich weiß leider nicht mehr woher ich 
den USB/RS232 Konverter habe, ich habe das ganze auch noch nicht mit 
einem anderen Konverter getestet!

Irgendetwas macht der Konverter noch "automatisch" ...wahrscheinlich ein 
Hardware Handshake? CTS / RTS - DSR /DTR ?

So einen Konverter bräuchte ich an dem TTL Konverter oder aber auch 
einen Konverter für die TTL Pegel an den GPIO's !? Allerdings müsste ich 
dann auch noch wissen wann ich und wie ich diese anzusteuern habe!

Wahrscheinlich könnte man für den Hardware-Handshake ebenfalls den 
gleichen MAX232 nehmen, denn diese haben doch für TxD / RxD nur einen 
Kanal belegt und dann wäre der andere kanal noch frei für die 
Pegelanpassung TTL / RS232 !?

von BirgerT (Gast)


Lesenswert?

Schau mal, ob Du damit etwas anfangen kannst
https://de.wikipedia.org/wiki/Nullmodem-Kabel
und dort der Abschnitt
"Aufbau eines Nullmodem-Kabels ohne Hardwareflusskontrolle"

Und wahrscheinlich hat der TTL/RS232 Adapter nur drei Anschlüsse?
Dann müssten die in o.a. Artikel angegebenen Brücken über einen 
Zwischenstecker auf der "Hardwareseite" hergestellt werden (oder eben im 
D-Sub Stecker) des TTL/RS232 Adapters.

Hast Du denn TxD und RxD richtig über Kreuz angeschlossen?
Wenn Die "Hardware" mit dem PC funktioniert UND der Netduino mit dem PC 
funktioniert, dann muss beim Anschluss Netduino an "Hardware" die 
Sendeleitung und die Empfangsleitung angepasst (getauscht) werden.

Und die o.a. Baudrate 9800 stimmt so.
Also auf welchen Schnittstellen hast Du das alles eingestellt.

von mh (Gast)


Lesenswert?

9800 Baud ist ein bisschen ungewöhnlich, versuch doch mal mit 9600.

von Droid E. (eedroid)


Lesenswert?

@mh: hast natürlich recht, war nur ein tippfehler von mir hier im forum!

von Pandur S. (jetztnicht)


Lesenswert?

Ein USB-Serial macht nicht einfach von selbst Handshake. Mal mit dem 
Scope nachmessen

von Karl H. (kbuchegg)


Lesenswert?

Ee D. schrieb:

> Die Kommunikation über den TTL / RS232 Konverter mit dem Netduino zu dem
> PC funktioniert prima, daher meine Überlegung: Die Hardware verlangt
> einen Hardware Handshake!?

Möglich.
Wobei sich das ganz schnell mit einer Brücke an der RTS/CTS Leitung 
dieser Hardware testen lässt. Die Hardware gibt sich dadurch erst mal 
selbst die Freigabe zum Senden. Das ist natürlich kein Dauerzustand, 
aber um zu testen ob dieses Problem vorliegt reicht es.

https://www.mikrocontroller.net/articles/AVR-Tutorial:_UART#Hardware_Handshake

von Paul B. (paul_baumann)


Lesenswert?

Jetzt N. schrieb:
> Ein USB-Serial macht nicht einfach von selbst Handshake.

Der ist vorsichtig damit, weil er sich nicht einfach mal die Hände 
waschen kann...

MfG Paul

von serial killer (Gast)


Lesenswert?

ich hatte neulich ein ähnliches Problem, weiß nicht ob das bei dir auch 
so zutrifft. Ich hatte ein board mit einem ADM1385 als serial converter 
IC am µC. Das hat so funktioniert mit einem USB to RS232 converter Kabel 
am PC. Wenn ich aber ein USB to RS232 TTL 3.3V converter vom PC direkt 
dann an die Anschlüsse vom µC gehängt habe, dann ging die Kommunikation 
nur in einer Richtung (weiß grad nicht mehr welche). Als ich dann die 
Verbindung auf dem PCB vom µC zum ADM IC getrennt habe ging es dann. 
Also wirklich nur direkt am µC das 3.3V converter Kabel angeschlossen, 
sonst nichts.

von Droid E. (eedroid)


Lesenswert?

Hallo,

die Kommunikation zwischen Netduino und der "Hardware" funktioniert 
schon. Nur bekomme ich dann ganz andere Daten als Antwort zurück. Die 
Brücken an den Pins 7/8 und 1/4/6 zur "Hardware" hatte ich gleich zu 
Anfang getestet.

Gleich habe ich Feierabend, einen Scope habe ich jetzt auch bekommen. 
Werde dann das serielle Ende vom USB Konvertor aufschneiden und zuerst 
mal schauen was die Sichtkontrolle so sagt...

von Karl H. (kbuchegg)


Lesenswert?

Ee D. schrieb:
> Hallo,
>
> die Kommunikation zwischen Netduino und der "Hardware" funktioniert
> schon. Nur bekomme ich dann ganz andere Daten als Antwort zurück.

Was faselst du dann von Handshake.

Wenn die Antworten (die vorab bekannten) nicht die erwarteten sind, dann 
hast du ein Baudratenproblem. Da ändert auch Handshake daran nichts.

von Droid E. (eedroid)


Lesenswert?

Ich halte gerade den Konverter in der Hand: HL-340

: Bearbeitet durch User
von Droid E. (eedroid)


Lesenswert?

Oha! Ich bin zuerst nicht weiter gekommen, nachdem ich alles liegen 
gelassen hatte. Musste ich mich doch noch mal hinsetzen, folgendes habe 
ich jetzt gemacht: Ich habe an dem USB/RS232 Konverter eine RS232 
Verlängerung an geklemmt ...funktioniert immer noch - aber dann!

Jetzt bin ich hingegangen und habe an der Verlängerung an einem Ende 
alle Adern bis auf die Pins 2/3/5 alle abgeklemmt ...Datenübertragung 
funktioniert immer noch!

Am Netduino kommen und gehen auch Daten aber nicht die gleiche Menge und 
schon gar nicht die gleichen Werte! Aber es sind genau die Menge und 
Werte wie die welche ich vom Netduino versende ...wie kann das denn?

Aber wenn ich den Netduiono an den PC anklemme, dann kommen und gehen 
die gleichen Werte... Netduiono -> TTL/RS232 -> RS232/USB -> PC ...in 
beiden Richtungen gleichen Werte.

Ich habe für heute erst ein mal genug, muss erst mal eine Nacht darüber 
schlafen.

Gute Nacht!

von Danny (Gast)


Lesenswert?

Nach dem USB to ser Wandler muss das Signal negiert werden.
Beim USB to TTL kann der Controller direkt ran.
Prost

von Droid E. (eedroid)


Lesenswert?

Danny schrieb:
> Nach dem USB to ser Wandler muss das Signal negiert werden.
> Beim USB to TTL kann der Controller direkt ran.
> Prost

?

von P. M. (mikro23)


Lesenswert?

Ee D. schrieb:
> Danny schrieb:
>> Nach dem USB to ser Wandler muss das Signal negiert werden.
>> Beim USB to TTL kann der Controller direkt ran.
>> Prost
>
> ?
1
 RS232   TTL
2
-3..15V  +5V  = high
3
+3..15V   0V  = low

von Droid E. (eedroid)


Lesenswert?

Wenn ich eine 0x05 = 0000-0101 versenden möchte, kommt also eine 
1111-1010 = 0xFA an?

Dann müsste doch bei falschen 0xFA das richtige 0x05 ankommen?

Gruß
eedroid

von P. M. (mikro23)


Lesenswert?

Ee D. schrieb:
> Dann müsste doch bei falschen 0xFA das richtige 0x05 ankommen?

Im Prinzip ja...

wenn Deine TTL-Eingänge die +-15V überleben...

von BirgerT (Gast)


Lesenswert?

Ee D. schrieb:
> Dann müsste doch bei falschen 0xFA das richtige 0x05 ankommen?

Nee leider nicht ganz, weil die Start- und Stopbits ja nicht gedreht 
sind.

Aber was ist mit dem Tausch von RxD und TxD Verbindungen?

TxD eines Gerätsmuss mit RxD des anderen Geräts verbunden sein.

von Droid E. (eedroid)


Lesenswert?

Ich habe doch gerade deswegen den RS/TTL Konverter zwischen "Hardware" 
und Mikrocontroller!?

von Droid E. (eedroid)


Lesenswert?

BirgerT schrieb:
> Ee D. schrieb:
>> Dann müsste doch bei falschen 0xFA das richtige 0x05 ankommen?
>
> Nee leider nicht ganz, weil die Start- und Stopbits ja nicht gedreht
> sind.
>
> Aber was ist mit dem Tausch von RxD und TxD Verbindungen?
>
> TxD eines Gerätsmuss mit RxD des anderen Geräts verbunden sein.


Nein. Wenn ich Tx und Rx Tausche passiert nichts!

von P. M. (mikro23)


Lesenswert?

Wie  BirgerT grade richtig bemerkte, müssen die Start- und Stopbits 
natürlich auch invertiert werden. Das geht nur wenn Du das Signal extern 
invertierst.

von Droid E. (eedroid)


Lesenswert?

Peter M. schrieb:
> Ee D. schrieb:
>> Danny schrieb:
>>> Nach dem USB to ser Wandler muss das Signal negiert werden.
>>> Beim USB to TTL kann der Controller direkt ran.
>>> Prost
>>
>> ?
>
>
1
>  RS232   TTL
2
> -3..15V  +5V  = high
3
> +3..15V   0V  = low
4
>


Ich weiß es nicht aber ich glaube das nicht! Der PC und die "Hardware" 
haben beide eine RS232 Schnittstelle.

Wenn ich mit dem TTL/RS232 Konverter eine Verbindung aufbaue, dann 
passen die versendeten Daten mit den empfangenen Daten überein.

Wenn ich jetzt aber eine Verbindung mit dem TTL/RS232 zu der "Hardware" 
aufbaue dann leider "Unsinn"

Wenn ich eine Verbindung mit dem PC mit einem USB/RS232 Konverter 
Aufbau, dann kommen und gehen die richtigen Daten.

Wenn mir einer von euch so einen Oegelwandler zur Verfügung stellen 
könnte, dann würde ich das gerne ausprobieren. Ich wäre auch dazu bereit 
den TTL/RS232 Konverter zu versenden...

Gruß

von P. M. (mikro23)


Angehängte Dateien:

Lesenswert?

Ich nehme an, daß Du RS232 mit dem USART eines µC verbinden willst.
Dazu reicht die angehängte Schaltung, die ich hier mal gefunden habe 
aus.

von Droid E. (eedroid)


Lesenswert?

Peter M. schrieb:
> Ich nehme an, daß Du RS232 mit dem USART eines µC verbinden willst.
> Dazu reicht die angehängte Schaltung, die ich hier mal gefunden habe
> aus.

Nein, dafür habe ich dich den TTL / RS232 Konverter!?

von Droid E. (eedroid)


Lesenswert?

Wenn ich von einer 1 eine 0 machen möchte, dann hätte ich eher sowas 
hier vermutet: uln2003a

Dafür würde ich die Tx und Rx Signale der UART Schnittstelle vor dem 
TTL/RS232 Konverter nehmen.

Oder?

von P. M. (mikro23)


Lesenswert?

Wenn der invertiert, müsste es funktionieren.

Ansonsten muß ich erstmal meine Glaskugel polieren, da ich Deine 
Schaltung nicht kenne...

von pink panther (Gast)


Lesenswert?

Jetzt ist es mal Zeit für ein paar aussagekräftige Oszillogramme. Was 
soll denn diese ziellose Rätselei?

von BirgerT (Gast)


Lesenswert?

Zwischen Deinem TTL/RS232 Wandler und der Hardware müssen wohl die 
beiden Drähte für RxD und TxD gedreht werden?! (Nullmodemkabel)

Wie wird Deine "Hardware" mit dem PC verbunden? nur über den 
USB-Serial-Adapter, oder ist da noch ein anderes Kabel dazwischen?

Oder - Deine "Hardware" benötigt richtige RS232 Pegel, die zwar vom USB 
Serialwandler am PC erzeugt werden, aber nicht von dem 
TTL-RS232-Wandler.

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.