RS232 missbrauchen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • RS232 missbrauchen

      Hallo,
      ich habe ein eher ungewöhnliches Problem... nein sagen wir eine ungewöhnliche Idee...

      Ich würde gerne in dem Raum, in dem meine Duo2 steht, eine dauerhafte Temperaturmessung im Stundentakt ermöglichen.

      Allerdings möchte ich dafür keine zusätzliche Steuerung (Raspberry o.ä.) anschließen. Nun hat die VU+ ja eine RS232-Schnittstelle für die Ausgabe der Bootinformationen bzw. zum Flashen.

      Wisst Ihr zufällig ob es auch möglich wäre, diese Schnittstelle anderweitig einzusetzen ohne die „Standardnutzung“ zu beeinträchtigen ? Ich würde dann einen A/D-Wandler mit RS232-Konverter anschließen und das Messergebnis via IP weiterleiten.

      Hardware und Software könnte ich prinzipiell selbst erstellen, aber wenn Ihr schon im Vorfeld sagt, dass das nicht geht würde ich mir die Zeit natürlich sparen.
    • Das ist in der Tat interessant... was es nicht alles gibt...vielen Dank für den Tipp !

      Dann müsste ich nur noch eine Möglichkeit schaffen, zwischen zwei weiteren Messmöglichkeiten umzuschalten (der Plan war ursprünglich die Innentemperatur und auf der anderen Seite des Fensters die Außentemperatur und die Wassertemperatur des Pools zu erfassen).

      Aber ich glaube ich bestelle gleich mal ein paar davon :D
    • Vielen Dank, das werde ich mir auch anschauen.

      Edit:
      So, ich habe mir heute mal die Zeit genommen und bin ein Stückchen weiter ... aber gleichzeitig vermutlich auch ein noch größeres Stück zurück gefallen :(

      Die Hardware habe ich gemäß der oben beschriebenen Anleitung aufgebaut, zunächst in der 2-Draht-Ausführung und mit nur einem Sensor. Auf die VU (Duo2) habe ich digitemp aufgespielt und entsprechende Rechte (777) vergeben. Zwischen Box und Hardware hängt ein ca. 1m langes RS232 (1:1) Verlängerungskabel. Der Aufruf des Scriptes mit digitemp -s/dev/ttyS0 -i hat auch dazu geführt, dass auf der TxD-Leitung (Pin 3) Daten übertragen wurden (mit -7V/+7V-Pegel), alle anderen Pins blieben auf ca. 0V.
      Da ich mit dieser Hardware keine Reaktion vom Sensor bekommen habe, habe ich vorsorglich auf die 3-Draht-Variante gemäß der Anleitung gewechselt. Das hat dazu geführt, dass sich die Versorgungsspannung am Sensor von 4,17V auf 4,37V erhöht hat (was ja aber beides ok gewesen wäre, gemäß Datenblatt sind 3..5,5V zulässig). Leider gab es auch hier keine Antwort vom Sensor. Das Oszilloskop zeigt allerdings auch keinerlei Datenverkehr an der Datenleitung des Sensors.

      Und nun das besonders blöde: ich sehe jetzt auch an der TxD-Leitung keinen Datenaustausch mehr, auch nicht ohne den angeschlossenen Adapter und nach mehrfachem Restart des Receivers. Ich befürchte, dass ich mir -warum auch immer- den RS232-Transceiver in der Box geschossen habe. Damit wäre das Projekt wohl erstmal wieder begraben so wie es aussieht :(

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von NaseDC ()

    • Braucht der Sensor ggfs Hardwarehandshakeleitungen, um Dinge auf die serielle auszugeben? Wenn die Box diese nicht liefert, müssten RTS/CTS und ggfs DTR/DSR auf der Seite den Sensors gebrückt werden.

      Wie wird der Sensor sonst betrieben? Mit einem Kabel mit mehr als 3 Adern?
    • Neben RxD und TxD wird nur DTR verwendet, so wie im obigen Link. Aber mein Problem ist ja, dass auf TxD gar nichts mehr passiert, was für mich nach einem Hardwareschaden aussieht, da ja anfangs noch Daten anlagen beim Aufruf des Scripts. Wobei ich ehrlich gesagt keinen Grund dafür sehe, denn auf TxD liegen im Ruhezustand -7V an, d.h. eigentlich ist der Strom über den 1,5 kOhm Widerstand begrenzt (D4 ist in Sperrichtung), selbst bei Kurzschluss fließen keine 5mA (alle anderen Pins sind ja auf 0V).

      Edit:
      ich habe mir heute nochmal Zeit genommen und mich mit dem Projekt beschäftigt.
      Tatsächlich kommen doch noch Daten auf der TxD-Leitung an, mein in die Jahre gekommenes Oszilloskop hat jedoch Probleme bei der Darstellung (ist leider noch kein Speicher-Oszi und das Triggern ist auch nicht so einfach). Damit ist das Projekt doch noch nicht gestorben.

      Allerdings gibt der Sensor nach wie vor keine Antwort, ich vermute dass die Pegel die bei diesem ankommen zu klein sind. Mit meinem Oszi kann ich es nur aktuell nicht verifizieren.
      Vielleicht hat jemand eine Idee, ich habe meine umgesetzte Hardware mal beigefügt (sieht etwas wild aus, aber die Hardware entspricht definitiv dem Schaltplan, habe es mehrfach verifiziert).
      Dateien

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von NaseDC ()

    • Also als ersten Tipp hätte ich gegeben, einen USB-RS232-Interface zu nehmen oder die originale Schnittstelle mit einem MAX232 zu schützen.

      Weiterhin verstehe ich den Schaltplan nicht. Du ziehst den RxD auf Sensorseite dauerhaft auf Grund?
    • Ok, einen zusätzlichen Treiber mit externer Spannunsversorgung kann eigentlich nicht schaden.

      Die RxD-Leitung ist nicht auf Ground gebrückt, sie stellt aber für den Sensor das Ground-Potential dar (gemäß obigem Link Serial Port Temperature Sensors - Serial Hardware Interface).


      Edit:
      was ich vielleicht auch mal testen könnte wäre die gleiche Anwendung am Windows-PC...vielleicht sind hier doch andere Pegel ?! Das wiederum könnte ich nach meinem Urlaub im Geschäft messen, da hätte ich sowohl USB/RS232-Adapter als auch Speicher-Oszis...

      Edit2:
      So, ich habe mal wieder ein wenig weiter gemacht und meine Schaltung am PC getestet.. und siehe da: hier funktioniert sie ! Zumindest weitestgehend... im Geschäft getestet hatte ich manchmal ein korrektes Messergebnis und manchmal ein CRC-Error (63 statt 00). Ich vermute das lag an der doch recht hohen EMV-Belastung an meinem Arbeitsplatz. Ich habe die Schaltung daraufhin noch ein wenig angepasst (z.B. Keramikkondensator direkt am Sensor, Schottky-Dioden parallel zu den vorhandenen Schottky-Dioden,...), damit wurde es nochmal ein wenig zuverlässiger.

      An der VU wird aber leider immer noch kein Messwert gelesen. Ich vermute es liegt daran, dass die RS232 der VU nur RxD und TxD zur Kommunikation verwendet und DSR in Folge dauerhaft auf 0V verbleibt. Ich muss es nochmal verifizieren, aber ich denke das ist die Ursache. Wenn dem so ist brauche ich wohl eine neue Idee :(

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von NaseDC ()

    • So, nächster Stand:

      ich habe noch einen Digitus DA-70156 gefunden. Damit habe ich den Adapter nochmal am heimischen Laptop mit dem digitemp für Windows getestet. Das Ergebnis ist topp, keinerlei CRC-Fehler und korrekte Ergebnisse.

      Spoiler anzeigen

      C:\digitemp>digitemp -i -s9 -q -cc:\digitemp\temp\digitemp.cfg
      Turning off all DS2409 Couplers
      .
      Searching the 1-Wire LAN
      282CA5340C0000C9 : DS18B20 Temperature Sensor
      ROM #0 : 282CA5340C0000C9


      C:\digitemp>digitemp -a -q -cc:\digitemp\temp\digitemp.cfg
      Aug 05 17:06:30 Sensor 0 C: 25.94 F: 78.69


      C:\digitemp>digitemp -a -q -cc:\digitemp\temp\digitemp.cfg
      Aug 05 17:06:37 Sensor 0 C: 26.00 F: 78.80


      C:\digitemp>digitemp -a -q -cc:\digitemp\temp\digitemp.cfg
      Aug 05 17:06:44 Sensor 0 C: 26.00 F: 78.80


      C:\digitemp>digitemp -a -q -cc:\digitemp\temp\digitemp.cfg
      Aug 05 17:09:35 Sensor 0 C: 26.81 F: 80.26


      C:\digitemp>digitemp -a -q -cc:\digitemp\temp\digitemp.cfg
      Aug 05 17:10:09 Sensor 0 C: 26.50 F: 79.70


      Jetzt ist nur die Frage: wie sag ich's meiner VU ? Ich könnte hier ja auch theoretisch den Digitus-Konverter benutzen, einen Linux-Treiber hätte ich auch.

      Jetzt mein Problem: ich bekomme das Cross-Compiling einfach nicht hin, ich bin da offenbar zu blöd dazu :( Tante Google konnte mir leider auch nicht dabei helfen. Ich könnte es auf meiner VM oder auf dem Raspberry durchführen (beides Ubuntu-Buster), bekomme es aber nicht hin. Gibt es irgendwo eine -für Linux-Dummies verständliche- Anleitung ? Oder kann mir jemand die beiden Projekte für eine VU+ Duo2 (mipsel) compilieren ?

      Treiber Digitus:DA-70156_driver_Driver Linux_20160727.zip
      Digitemp aktuelle Version: digitemp.git

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Pfälzer ()

    • Hallo,
      nun habe ich es doch noch geschafft...allerdings nicht mit der eingebauten RS232, sondern mit dem USB-Seriell-Adapter.
      Mit einem Webserver auf meiner NAS greife ich nun mit einem php-Script via ssh2 auf die VU zu und kann mir nun z.B. übers Handy die Temperaturen vom Wohnzimmer, vom Pool und von draußen anzeigen.
      Bei Interesse kann ich Euch das php-Script zukommen lassen.
      Dateien