Ankündigung

Einklappen
Keine Ankündigung bisher.

Keine Kommunikation von Uno zu BCU

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Keine Kommunikation von Uno zu BCU

    Hallo Zusammen,
    Das ganze Thema Eigenbau KNX interessiert mich sehr. Ich habe mir deswegen ein neues Arduino Uno und die Siemens 5WG1 117-2AB12 zugelegt.
    Leider klappt die Kommunikation seit mehreren Tagen nicht.

    Als ersten Einstieg hatte ich geplant eine Gruppenadresse vom Bus zu lesen und die on Board LED zu schalten.
    Leider ohne großen Erfolg...

    Auch der Versuch mit verschieden Libraries ist gescheitert.
    Übersehe ich etwas beim Zusammenspiel UNO und BCU? Mein Verdacht ist momentan das mir die USB Schnittstelle die Kommunikation über TX/RX blockt. Hat jemand damit Erfahrungen und kann mir helfen ?

    Danke schon mal!

    #2
    Zeig mal deinen Beispielcode ...

    USB und gleichzeitig den BCU kannst du beim Uno nicht anschließen. Das beißt sich...

    Kommentar


      #3
      Hallo Tuxedo,
      Ja gleichzeitig dachte ich mir schon ...
      Hier erstmal das Beispiel (Ich wollte eigentlich gerne eure Entwicklung nutzen bin jetzt aber nach diverseren Versuchen bei der MagGyver Lib angekommen weil dort expliziet steht das das Uno läuft... Einzige Änderung zum Example ist PA_INTEGER).


      #include <KnxTpUart.h>

      // Initialize the KNX TP-UART library on the Serial port of ARDUINO UNO
      KnxTpUart knx(&Serial, PA_INTEGER(1, 3, 10));

      int LED = 13; // Variable for output 13 (LED on ARDUINO UNO)

      byte targetGa[2]; // Variable for received group address

      void setup() {

      pinMode(LED, OUTPUT); // Set pin as Output

      Serial.begin(19200, SERIAL_8E1);
      knx.uartReset();

      knx.addListenGroupAddress(GA_INTEGER(2, 6, 0)); // Adds group address which we are interested in
      knx.addListenGroupAddress(GA_INTEGER(5, 6, 0)); // Adds group address which we are interested in

      knx.groupRead(GA_INTEGER(2, 6, 0)); // Query the value or State of the group address -> evaluation in function "serialEvent()"
      knx.groupRead(GA_INTEGER(5, 6, 0)); // Query the value or State of the group address -> evaluation in function "serialEvent()"
      }

      void loop() {
      }

      void serialEvent() {
      KnxTpUartSerialEventType eType = knx.serialEvent();
      if (eType == KNX_TELEGRAM) {
      KnxTelegram* telegram = knx.getReceivedTelegram();
      if (!((telegram->getSourceArea() == 15) && (telegram->getSourceLine() == 15) && (telegram->getSourceMember() == 20))) { // Thus we do not respond to our data sent even
      if (telegram->isTargetGroup()) { // That have data received a group address?
      if (telegram->getCommand() == KNX_COMMAND_ANSWER) { // Is command answer command?
      telegram->getTarget(targetGa); // Save data receiving
      if (compareTarget(targetGa , GA_INTEGER(2, 6, 0))) { // Receiving data -> evaluate
      digitalWrite(LED, telegram->getBool()); // Output 13 (LED) on the received value set, 1 = on, 0 = off
      }
      else if (compareTarget(targetGa , GA_INTEGER(5, 6, 0))) {
      // From here your own processing of the above group address 5/6/0
      }
      }
      }
      }
      }
      }

      // Function for the reconciliation between received group address and our required group address
      static bool compareTarget(byte byteArray1[2], byte byteArray2[2]) {
      for (int i = 0; i < 2; i++) {
      if (byteArray1[i] != byteArray2[i]) {
      return false;
      }
      }
      return true;
      }


      Mir ist noch folgendes aufgefallen - Solange das Uno am USB ist und ich einen Reset auslöse springt die serielle Kommunikation kurz an (TX/RX LED). An der BCU dann passiert komischerweise gar nichts.

      Kannst du mir vielleicht ein Beispiel mit eurer Lib empfehlen das auf dem Uno schon läuft? Dann können wir den Fehler besser eingrenzen .

      Kommentar


        #4
        Ist das ein china clone mit ch340g chip? Damit geht es gar nicht...

        sonst ein schnelles Beispiel:
        https://github.com/KONNEKTING/Konnek...ation_test.ino

        Einspielen und schon soll es gehen
        Zuletzt geändert von Eugenius; 14.04.2017, 13:19.

        Kommentar


          #5
          Hallo Eugenius,
          Nein es ist ein originales Arduino UNO aus dem Arduino-Starter-Kit.

          Kommentar


            #6
            Dann teste mein Link.
            Verkabelung auch richtig?
            5V - 5V
            RX - TX
            TX - RX
            GND-GND

            Kommentar


              #7
              Hallo Eugenius,
              Upload ohne Fehler ist erfolgt.
              Verkablung habe ich geprüft.
              Im ETS auf die hardcoded GA 7/7/7 im Gruppenmonitor Ein/Aus gesendet... Leider keine Reaktion des Uno :'(.....

              Kommentar


                #8
                Unsere Lib unterstützt (von uns getestet):

                * UNO
                * Leonardo
                * Micro
                * Nano
                * Pro Mini
                * Zero, und alles was SAMD21 als Microcontroller hat

                Kommentar


                  #9
                  Dieses Beispiel sendet auch selbst 0 und 1 abwechselnd...
                  Also klingt nach HW problem...
                  wenn es wirklich orginal Uno ist, hat er 6 poliger Pinheader in der Nähe von pin 13,12...
                  da muss (glaube ich) pin 5 und 6 brücken. Dann wird UART chip in reset modus versetzt. Machmal hilft es. Das stand in anderem Thread...

                  Kommentar


                    #10
                    Hallo Eugenius,
                    es funktioniert eine permanente Brücke hilft leider nicht aber kurz die Pins verbinden hilft !
                    Vielen Dank für eure Unterstützung!

                    Kommentar


                      #11
                      Hi,

                      Zitat von Eugenius Beitrag anzeigen
                      Ist das ein china clone mit ch340g chip? Damit geht es gar nicht...
                      weißt du, warum es mit einem CH340G nicht geht? Ich habe hier nämlich einen China-Arduino Nano mit dem Chip liegen und versuche damit vom Bus zu lesen. Schreiben funktioniert, nur lesen irgendwie nicht, die RX LED blinkt zwar kurz aber Serial.available() und Serial.peek() sind der Meinung es ist nichts da.

                      Habs zuerst mit Konnekting versucht aber da ging das Programmieren nicht, dann mit der "kleinen" KnxTpUart Library aus einem anderen Thread hier aber lesen funktioniert einfach nicht. Schreiben schon.

                      Kommentar


                        #12
                        Das Problem ist der Chip. Der ist mit zwei Widerständen an den AVR angebunden. Entferne die Widerstände und es geht. Allerdings geht dann USB nicht mehr.

                        Ursache ist nicht ganz klar. Aber irgendwie​ beeinflusst er die serielle Kommunikation, selbst wenn er nicht benutzt wird.

                        Kommentar


                          #13
                          Ah, danke! Dann werde ich das mal machen müssen, sobald mein externer Programmer da ist, damit ich das Teil dann noch programmieren kann. Das sind die beiden Widerstände auf der Unterseite in der Nähe des Chips, oder? Sehe da nur drei und der dritte ist etwas weiter weg.

                          Kommentar


                            #14
                            Das sind 2 Widerstände die an D0 und D1 angeschlossen sind. Mehr kann nur der Schaltplan sagen

                            Kommentar

                            Lädt...
                            X