der Mega 2560 hat ja 4 UARTs , so wollte ich dann einen RS-232 - TTL Baustein von Pollin -> Bausatz RS232/TTL Wandler online kaufen | Pollin.de an Serial1 anschliessen.
Vom Pollin Board Port TX an Mega PIN 19 (RX1) und Pollin RX an Mega PIN18 (TX1) angeschlossen .
Serial1.Begin(9600);
Ich habe diverse Scripte versucht, aber schon bei Serial1.Available (..) bekomme ich immer 0 bytes geliefert.. Das an der Serial1 angeschlossene Gerät ist ebenfalls auf 9k6 initialisiert und liefert Daten..
Habe ich das richtig verstanden , das RX/TX über kreuz verdrahtet wird ? Ich habe auch mit "SoftwareSerial" an den Digital PINS des Mega's versucht, ebenso ohne Erfolg..
Hat jemand eine Idee oder bin ich mit dem Pollin Wandler auf dem Holzweg ?
Die Verdratung müßte richtig sein.
Wenn Du nur GND und 5V am Modul anschließt und RX mal auf GND und dann auf 5V anschließt welche Spannung hast Du an Pin 2 des RS232-Steckers? http://www.pollin.de/shop/downloads/D810036B.PDF
Grüße Uwe
DF4XX:
Hat jemand eine Idee oder bin ich mit dem Pollin Wandler auf dem Holzweg ?
Wenn es am angeschlossenen Gerät (um was für eines geht es eigentlich?) eine Konfigurationsmöglichkeit gibt, probiere dort mal die Einstellung "No Handshake" zu konfigurieren, wenn Du an Deiner Schnittstelle keine Handshake-Signale auswertest und zur Verfügung stellst.
Wenn das angeschlossene Gerät ein Hardware-Handshaking erwartet, das auch per Konfiguration nicht abschaltbar ist, kannst Du beispielsweise ein Auto-Handshake verdrahten.
das angeschlossene Gerät ist ein Amateurfunk Transceiver von Kenwood - TS-590 . Über die COM Schnittstelle möchte ich die aktuell eingestellte Sendefrequenz auslesen, um damit eine Relais Steuerung anzutriggern, für die passende Antenne.
Am TS-590 kann man nur die COM Speed einstellen.. Bei mir auf 9600 . Baudrate 8N1 . DTR/RTS ist nicht einstellbar.
Zum Testen empfiehlt sich auf beiden Seiten ein loopback-Test. Also bei angeschlossenem Arduino an Pin 12/11 vom MAX232 dort Pin 13 und 14 Verbinden und entsprechend auf der Gegenseite.
Imho waren die (richtigen) Kondensatoren am MAX232 nicht ganz unwichtig und natürlich die gemeinsame Masseverbindung (Pin5 SUB-D, MAX232 und GND vom Arduino).
EDIT: Ich habe gerade gesehen, Du hast einen MEGA - also die Pins entsprechend anpassen
Hilfreich ist evtl. auch Seite 17 vom MAX232 Datenblatt.
Hallo DF4XX,
ähnliches Problem hatte ich auch gehabt, da mein Receiver sich nicht an die Norm hielt. Es sieht so aus, dass bei dir unter Terminal Descriptions der COM Schnittstelle die Pins folgendermaßen belegt
sind. PIN2 RXD Transmit data und PIN3 TX Receive data (diese Bezeichnung habe ich aus der Gerätebeschreibung entnommen). Wenn das so sein sollte, dann wird das V24-Kabel nicht gekreuzt, also nur als Null-Modem-Kabel verwenden. Ich habe es nicht ausprobiert, da ich den MacDoppler für Satelliten- Verfolgung verwende. Hier wird noch zusätzlich die CI-V Adresse benötigt, die vom Gerät abhängig ist.
DF4XX:
Am TS-590 kann man nur die COM Speed einstellen.. Bei mir auf 9600 . Baudrate 8N1 . DTR/RTS ist nicht einstellbar.
Wenn das anzuschliessende Gerät ein Hardware-Handshaking standardmäßig erwartet, das nicht in seiner Konfiguration abschaltbar ist, dann mußt Du dem Gerät auch die passenden Signale auf den Handshake-Leitungen anbieten.
Zwei Leitungen für eine Art des Hardware-Handshake sind auf Deinem Pollin-Modul herausgeführt, an Jumperblock J3 mit den Bezeichnungen CTS/RTS.
Teste mal, ob beim Anschließen Deines Transceivers die RTS-Leitung am Baustein HIGH geht.
Ja?
Dann probiere mal folgendes: Setze an J3 eine Kurzschlussbrücke zwischen CTS und RTS und biete damit ein CTS/RTS Auto-Handshake an.
Wenn das Gerät diese Handshake-Leitungen nutzt, dann fragt es seine Sendeerlaubnis auf der RTS-Leitung an, indem es die RTS (Request to Send) Leitung "High" setzt. Dein Gerät sollte daraufhin mit dem High-Setzen der CTS ("Clear to send") Leitung reagieren und dem Gerät mitteilen, dass es bereit ist, die Sendung zu empfangen. Indem Du einfach eine Kurzschlussbrücke zwischen RTS und CTS setzte, leitest Du einfach die RTS-Anfrage auf das anfragende Gerät zurück, das Gerät erteilt sich damit selbst die Freigabe zum Senden und fängt an zu senden. Wenn es das RTS/CTS Handshake verwendet.
Einen Versuch wäre es wert.
Die zweite mögliche Art des Hardware-Handshake wäre das DSR/DTR Handshaking. "Data Set Ready" und "Data Terminal Ready". Das wären Leitungen, die Dein Max-Baustein überhaupt nicht bedient und da müßtest Du dann direkt am Kabel schon vor dem Max-Baustein die SubD-Steckerpins 4 und 6 (bei einem 9-poligen Kabel) miteinander verbinden, um das Auto-Handshake zu simulieren.