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
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".
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 !?
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.
9800 Baud ist ein bisschen ungewöhnlich, versuch doch mal mit 9600.
@mh: hast natürlich recht, war nur ein tippfehler von mir hier im forum!
Ein USB-Serial macht nicht einfach von selbst Handshake. Mal mit dem Scope nachmessen
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
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
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.
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...
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.
Ich halte gerade den Konverter in der Hand: HL-340
:
Bearbeitet durch User
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!
Nach dem USB to ser Wandler muss das Signal negiert werden. Beim USB to TTL kann der Controller direkt ran. Prost
Danny schrieb: > Nach dem USB to ser Wandler muss das Signal negiert werden. > Beim USB to TTL kann der Controller direkt ran. > Prost ?
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 |
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
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...
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.
Ich habe doch gerade deswegen den RS/TTL Konverter zwischen "Hardware" und Mikrocontroller!?
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!
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.
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ß
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.
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!?
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?
Wenn der invertiert, müsste es funktionieren. Ansonsten muß ich erstmal meine Glaskugel polieren, da ich Deine Schaltung nicht kenne...
Jetzt ist es mal Zeit für ein paar aussagekräftige Oszillogramme. Was soll denn diese ziellose Rätselei?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.