Hallo, ich habe eine kurze Verständnis-Frage: Ich möchte ein Messgerät, welches via RS232 alle 100ms einen Datenstring sendet, mit meinem Microcontroller verbinden und dort also die Daten auslesen. Irgendwie kann ich die Daten aber leider nicht lesen. Deswegen habe ich nun mit einem Osziloskop geschaut, was denn am Pin 3 (TxD) des 9-poligen Steckers des RS232 Messgeräte-Kabels überhaupt ankommt. Eigentlich würde ich hier ja nun eine Art Rechtecksignal erwarten, also meine Daten, oder nicht? Was ich stattdessen bekomme, zeigt das Bild im Anhang. Außerdem bekomme ich merkwürdigerweise ein Signal, wenn ich am RxD-Pin (Pin 2) messe, was ich jetzt nicht erwartet hätte. Kann es sein, dass das RS232 - Kabel kaputt ist? Oder das Messgerät selbst? Danke und LG
Also ich sehe da Rechtecke auf dem Oszillogramm... Wie ist Dein Messaufbau? AC- oder DC-Kopplung am Oszi eingestellt? GND-Kabel mit Pin 5 (Data-GND) des 9-poligen Steckers verbunden? Viele Grüße! Sven
Tino T. schrieb: > Kann es sein, dass das RS232 - Kabel kaputt ist? Eher hast Du Rx/Tx vertauscht. Keine Ahnung, ob Du ein 1:1-Kabel oder ein Nullmodem-Kabel verwendest. > Was ich stattdessen bekomme, zeigt das Bild im Anhang. Außerdem bekomme > ich merkwürdigerweise ein Signal, wenn ich am RxD-Pin (Pin 2) messe, was > ich jetzt nicht erwartet hätte. Das sieht nach einem Nullmodem-Kabel aus. Oder Dein Gerät verhält sich wie ein Modem mit TX an Pin2 statt Pin3. Das nennt man dann DCE statt DTE. Bedenke: TX kommt an RX, RX an TX. TX erkennt man bei RS232 an dem negativen Pegel - meist ca. minus 10V, wenn nicht gesendet wird. Miss das mal nach und schließe dann Deinen µC entsprechend an. Im einfachsten Fall musst Du nur TX und RX vertauschen. Hilfreich: https://de.wikipedia.org/wiki/RS-232
:
Bearbeitet durch Moderator
Tino T. schrieb: > Was ich stattdessen bekomme, zeigt das Bild im Anhang Da steht groß "Autoset" im Bild, damit bekommt man i.d.R. nicht das was man wirklich sehen will am Oszi. Man sollte die <60 Sekunden investieren und manuell entsprechende Einstellungen vornehmen. Eine AC Kopplung ist bei einem DC Digitalsignal nicht soo toll...
Vielen Dank schonmal für die Antworten. Dass ich RxD und TxD vertauscht habe bzw. es sich einfach um ein Nullmodemkabel handelt, kann schon sein. Nachdem ich entsprechende manuelle Einstellungen am Oszi vorgenommen habe, habe ich an Pin 2 tatsächlich ein echt gutes Rechtecksignal messen können (Anhang: oszi2_edit, Anhang oszi2 kriege ich nicht gelöscht, ist aber nicht mehr gültig, habe den Fehler hier gerade schon gefunden). Ich will diese Daten nun an meinen Mikrocontroller senden, indem ich eine RS232 click board von MikroE verwendet. Mit dem MAX3232, der darauf vorhanden ist, sollte das Signal ja eigentlich bloß auf den entsprechenden TTL Pegel (bei meinem Microcontroller habe ich 3.3 V supply voltage) umwandeln. Wenn ich aber nun mit dem Oszi an den Pins TX und RX messe, die vom RS232 click board zum Microcontroller gehen, mit Masse vom Oszi am GND vom Board, bekomme ich am TX-Pin ein Signal, dass der Versorgungsspannung 3.3V entspricht, und am RX-Pin ein sehr unerwartetes , siehe Anhang oszi3 und oszi4. Man erkennt hier zwar bei oszi4 einmal eine Rechteck-Form , jedoch habe ich dafür ein Zeitfenster von 1 microsekunde gewählt, was doch sehr sehr klein ist. Das kann ich mir beim besten Willen nicht erklären, denn egal, ob ich nun RxD und TxD vertausche, der Microcontroller kann doch hier keine vernünftigen Daten abgreifen ? Meine Frage zielt jetzt natürlich etwas in eine andere Richtung, da es nun plötzlich um den RS232 to TTL converter geht. Aber ich hoffe, dass mir trotzdem jemand weiterhelfen kann. Achso, und ich habe eine DC-Kopplung eingestellt, das sollte doch stimmen, oder? Dankeschön!
:
Bearbeitet durch User
Tino T. schrieb: > Wenn ich aber nun mit dem Oszi an den Pins TX und RX messe, die vom > RS232 click board zum Microcontroller gehen, mit Masse vom Oszi am GND > vom Board, bekomme ich am TX-Pin ein Signal, dass der > Versorgungsspannung 3.3V entspricht, Das ist normal, TX ist auf UART-Ebene high, wenn nicht gesendet wird. > und am RX-Pin ein sehr > unerwartetes , siehe Anhang oszi3 und oszi4. Hast Du denn schon den TX-Pin, mit dem Du mittels TX vom µC aus an RX Deines Geräts senden willst, schon auf dem µC initialisiert? Sendet Dein µC also schon was? Musst Du überhaupt etwas vom µC aus senden, wenn Du Dein Messgerät auslesen willst? Wenn nein, lege RX des Messgeräts (UART-Ebene) per Pullup (10k) auf high (3,3V).
:
Bearbeitet durch Moderator
> Das ist normal, TX ist auf UART-Ebene high, wenn nicht gesendet wird. Achso okay, na das ist ja schonmal gut! > Hast Du denn schon den TX-Pin, mit dem Du mittels TX vom µC aus an RX > Deines Geräts senden willst, schon auf dem µC initialisiert? Sendet Dein > µC also schon was? > > Musst Du überhaupt etwas vom µC aus senden, wenn Du Dein Messgerät > auslesen willst? Wenn nein, lege RX des Messgeräts (UART-Ebene) per > Pullup (10k) auf high (3,3V). Nee, genau, ich will gar nichts senden, sondern nur das, was mein Messgerät sendet (und wo ich ja auch schon festgestellt habe durch das Messen am Anfang, dass konstant etwas gesendet wird), am Microcontroller empfangen. Die TX und RX Pins habe ich bereits initialisiert/zugeordnet, das sollte so eigentlich passen. > lege RX des Messgeräts (UART-Ebene) per Pullup (10k) auf high (3,3V). Oh, okay, dann probiere ich das mal aus. Ich bin mir nicht sicher, ob ich vielleicht einen internen Pullup habe, da ich hier in der Software eine Einstellungsmöglichkeit des Receive-Pins zu "Pullup" gefunden habe. Ansonsten, einen externen Pullup machen könnte etwas komplizierter sein, denn es handelt sich eben um so ein Click-Board, wo ich an die Pins nach dem Aufstecken nicht mehr so einfach drankomme, siehe Anhang. Deswegen könnte ich mir vorstellen, dass es eigentlich nicht so gedacht ist, einen externen Pullup zu verwenden? Ich hoffe, ich habe dich da jetzt überhaupt richtig verstanden? Ich werde mal gucken, ob ich irgendwas im Datenblatt meines microcontrollers finden werde. Dankeschön !!
Ich habe mich mittlerweile nochmal mit dem Thema Nullmodem/1:1 beschäftigt und habe festgestellt, dass ich tatsächlich ein solches Nullmodem für meinen Konverter brauche. Jetzt ist das Problem gelöst und ich bekomme die erwarteten TTL-Signale am RX-Pin!! Vielen Dank für die Hilfe!!
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.