Ankündigung

Einklappen
Keine Ankündigung bisher.

Startschwierigkeiten

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

    Startschwierigkeiten

    Moin,

    ich mache gerade meine ersten Schritte mit Konnekting, aber so ganz verstehen wir uns noch nicht.
    An Hardware habe ich ein Sparkfun SAMD21 Mini Breakout und eine Siemens BCU mit Levelshifter dazwischen.
    Ich habe mit der Arduino IDE den DemoSketch aufgespielt und KDEBUG einkommentiert.

    1. Auffälligkeit: wenn ich die serielle Konsole öffne sehe ich erstmal nichts.
    2. Auffälligkeit: die eingebaute LED bleibt/ist aus

    Programmiert habe ich das Device mit der Suite auf PA 1.1.220 und die LED und Trigger GA auf 0/5/0 und 0/5/1.
    Drücke ich den Prog-Taster sehe ich auf der Konsole:
    PrgBtn toggle
    20:47:05.287 -> PrgLed 1
    20:47:05.287 -> PrgState 1
    Beim erneuten Drücken
    PrgBtn toggle
    20:47:06.778 -> PrgLed 0
    20:47:06.778 -> PrgState 0

    Programmieren mit der Suite scheint zu funktionieren. Da bekomme ich auch eine Menge Ausgaben auf der Konsole.
    Sende ich allerdings an eine der oben genannten GA sehe ich auf der Konsole nichts und die LED reagiert nicht.

    Versuche ich nur die Parameter mit der Suite zu programmieren, sagt die Konsole:
    20:49:25.008 ->
    20:49:25.008 -> konnektingKnxEvents index=255
    20:49:25.008 -> internalKnxEvents index=255
    20:49:25.008 -> buffer[0] hex=0x00 bin=00000000
    20:49:25.008 -> buffer[1] hex=0x0a bin=00001010
    20:49:25.008 -> buffer[2] hex=0x11 bin=00010001
    20:49:25.008 -> buffer[3] hex=0xdc bin=11011100
    20:49:25.008 -> buffer[4] hex=0x01 bin=00000001
    buffer[5] hex=0x00 bin=00000000
    20:49:25.041 -> buffer[6] hex=0x00 bin=00000000
    20:49:25.041 -> buffer[7] hex=0x00 bin=00000000
    20:49:25.041 -> buffer[8] hex=0x00 bin=00000000
    20:49:25.041 -> buffer[9] hex=0x00 bin=00000000
    20:49:25.041 -> buffer[10] hex=0x00 bin=00000000
    20:49:25.041 -> buffer[11] hex=0x00 bin=00000000
    20:49:25.041 -> buffer[12] hex=0x00 bin=00000000
    20:49:25.041 -> buffer[13] hex=0x00 bin=00000000
    20:49:25.041 -> protocolversion=0x00
    20:49:25.041 -> msgType=0x0a
    20:49:25.041 -> handleMsgWriteProgrammingMode
    20:49:25.041 -> no matching IA

    die Suite sagt:
    [Programmiere] Starte programmierung...
    [Programmiere] Ein Fehler ist aufgetreten.
    de.konnekting.deviceconfig.ProgramException: Programming failed
    at de.konnekting.deviceconfig.Program.program(Program .java:215)
    at de.konnekting.suite.ProgramDialog$4.run(ProgramDia log.java:192)
    at java.lang.Thread.run(Thread.java:745)
    at de.konnekting.suite.BackgroundTask$1.run(Backgroun dTask.java:59)
    Caused by: de.root1.slicknx.KnxException: No device responded for enabling prog-mode on address 1.1.220
    at de.konnekting.mgnt.KonnektingManagement.startProgr amming(KonnektingManagement.java:96)
    at de.konnekting.deviceconfig.Program.program(Program .java:145)
    ... 3 more
    Caused by: de.root1.slicknx.KnxException: Waiting for answer of type de.konnekting.mgnt.protocol0x00.MsgAck timed out.
    at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage(ProgProtocol0x00.java:201)
    at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectSingleMessage(ProgProtocol0x00.java:226)
    at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.e xpectAck(ProgProtocol0x00.java:230)
    at de.konnekting.mgnt.protocol0x00.ProgProtocol0x00.w riteProgrammingMode(ProgProtocol0x00.java:418)
    at de.konnekting.mgnt.KonnektingManagement.startProgr amming(KonnektingManagement.java:94)
    ... 4 more

    [Programmiere] Fertig! Dauer: 5017 ms


    Irgendwas ist hier noch im Argen. Wahrscheinlich isses ein ganz dämlicher Fehler, aber mir fällt ich Moment nichts mehr ein.
    Kann mir hier jemand weiterhelfen?

    Grüße

    Hans

    #2
    Scheint als ob dein Gerät nach dem Programmieren der Adresse für weitere Programmieraktionen nicht auf der Adresse hört.

    Wenn du dein KONNEKTING Device frisch einschaltest und ganz von vorne auf der Konsole mitloggst: Was kommt da?
    Hintergrund:
    Beim booten meldet das Gerät sein komplettes Setup, inklusive Adresse.

    Gruß
    Alex

    Kommentar


      #3
      Wenn ich das Device einschalte sehe ich auf der Konsole nix (1. Auffälligkeit). Ich kann die Konsole ja auch erst öffnen wenn der Port da ist. Bin ich dann evtl. zu langsam?
      Ist es ein Problem USB und BCU gleichzeitig dran zu haben?

      Kommentar


        #4
        Du kannst die Serielle Ausgabe beim SAMD bremsen und auf das öffnen der Seriellen Verbindung "warten". Beschreibung hier: https://www.arduino.cc/reference/en/...erial/ifserial
        USB und BCU gleichzeitig macht keine Probleme, solange du die 5 vom USB nicht an den Arduino bringst. Zumindest bei mir führt das mit der Siemens BCU zu Problemen, weswegen ich nur D+ D- und GND vom USB angebunden habe. Für die Spannugsversorgung brauche ich immer die BCU, aber das ist nicht tragisch, da ich ohne KNX ja eh nix machen kann.
        Zuletzt geändert von tuxedo; 27.04.2020, 20:00.

        Kommentar


          #5
          Sollte der Teil im DemoSketch nicht genau das tun?
          Code:
          #if defined(__AVR_ATmega32U4__) || defined(__SAMD21G18A__)
          // wait for serial port to connect. Needed for Leonardo/Micro/ProMicro/Zero only
          while (!DEBUGSERIAL)
          #endif
          Jedenfalls macht ein zusätzliches
          Code:
          while (!Serial) {
          ;
          }
          keinen Unterschied, keine serielle Ausgabe außer beim Drücken des ProgButton und beim vollständigen Programmieren

          Wie hast du denn 5V vom USB getrennt? Brutal am/im Kabel?
          Zuletzt geändert von tuxedo; 28.04.2020, 06:51.

          Kommentar


            #6
            Versuch mal communication test Sketch aus den Beispielen.
            Da kann man über Bus Monitor schauen ob die Telegramme rauskommen.
            Diesen Sketch muss man nicht Parammetrieren.

            Kommentar


              #7
              Bzgl. der 5V:

              In meinem Fall hab ich eine eigene Platine entworfen, da lässt sich das prima trennen. Im Endeffekt geht es darum die 5V vom USB nicht mit den 5V von der BCU zu verbinden. Bei dir ließe sich das damit lösen, dass du es genau umgekehrt machst: Nimm die 5V von USB und lass die 5V von der BCU weg. "Welche 5V" du nutzt ist eigentlich egal, solange du nicht beide miteinander verbindest.

              Unabhängig von Eugen's Communication test Sketch:

              Der Arduino sollte in der Lage sein von Anfang an zu loggen. Das ist in meinen Augen gerade dein Problem Nr. 1. KNX ist ein zweites Problem. Denn wenn auch KNX nicht geht, hast du immer noch keine Logausgabe. Und ohne Debugger mit den passenden Skills kommst du dann nicht weit.

              Du solltest also erst mal schauen, dass der Serialmonitor von Anfang an etwas ausgibt. Aus der Ferne ohne weitere Details wird es schwer da zuverlässig Hilfestellung zu geben.

              Kommentar


                #8
                So, hab die 5V von der BCU vom SAMD getrennt. Der Communication Test läuft perfekt, schreibt brav im Interval auf den Bus und die LED lässt sich auch schalten.

                Im DemoSketch gibt Konnekting.isReadyForApplication() im loop immer false aus. Egal ob programmiert oder nicht. Hier scheint ein/das(?) Problem zu liegen.
                Zuletzt geändert von HansMeiser; 28.04.2020, 10:13.

                Kommentar


                  #9
                  M.W. zeigt Konnekting.isReadyForApplication() an, ob das Gerät im Programmiermodus ist. Konnekting.isFactorySetting() dagegen zeigt an, ob das Gerät programmiert ist.

                  Kommentar


                    #10
                    Konnekting.isFactorySetting() gibt true aus
                    Konnekting.isReadyForApplication() gibt false aus
                    Auch nach erfolgter Programmierung in der Suite. Programmieren scheint also nicht zu funktionieren, bzw. die Programmierung nicht gespeichert zu werden.

                    // Arduino Zero has no "real" internal EEPROM,
                    // so we can use an external I2C EEPROM.
                    #include "EEPROM_24AA256.h" // external EEPROM

                    Könnte das hiermit zusammenhängen?
                    Zuletzt geändert von HansMeiser; 28.04.2020, 10:49.

                    Kommentar


                      #11
                      Kann es sein, dass nach (missglückter) Programmierung das Gerät noch im ProgModus bleibt? Normalerweise wird nach geglückter Programmierung ein Reset ausgelöst und damit der Programmiermodus beendet.

                      Kommentar


                        #12
                        Die Programmierung sieht laut Suite und Konsole gut aus und der Reset wird ausgeführt. Danach ist das Gerät aber wieder unprogrammiert. Brauch ich für das MiniBreakout vielleicht wirklich noch ein EEPROM?

                        Kommentar


                          #13
                          Also klar, entweder Extrenen i²c EEPROM oder mann müßte den Sketch auf internen Flash umschreiben, mit FlashStorage library.

                          Ohne EPROM bleibt den Board immer unprogrammiert, da die Daten im Nirvana landen.

                          Ich glaube ich muss mal Beispiele anpassen

                          Kommentar


                            #14
                            Dann werde ich mir mal FlashStorage ansehen, oder hätte ein externes EEPROM irgendwelche Vorteile?
                            Das Debug-Meldungen bei mir erst ab loop rauskommen, aber nicht in setup erklärt das allerdings noch nicht. Hast du dazu irgendeine Idee?

                            Kommentar


                              #15
                              FlashStorage nutzt internen Flash.
                              Nachteile:
                              - nur wenige Schreibzyklen bis der Chip stirbt (ca. 10000)
                              - jedes Mal, wenn Sketch eingespielt wird, wird auch "EEPROM"-Teil gelöscht -> Datenverlust

                              Vorteil:
                              - keine extra Hardware.


                              So nutzt man FlashStorage:
                              Diese Zeilen nehmen:

                              https://github.com/KONNEKTING/Konnek...mi.h#L140-L159


                              Diese Zeile löschen
                              https://github.com/KONNEKTING/Konnek...Sketch.ino#L39

                              und an der gleichen Stelle Zeilen von oben einfügen. (ungetstet, sollte aber gehen).

                              Wire.begin() auch löschen:
                              https://github.com/KONNEKTING/Konnek...ketch.ino#L114

                              Probiere erst mal damit, dann schauen wir weiter was mit Monitor los ist.

                              Und um sicher zu sein, diese Zeile ist aktiviert? ("Entkommentiert")
                              https://github.com/KONNEKTING/Konnek...Sketch.ino#L69
                              Zuletzt geändert von Eugenius; 28.04.2020, 12:33.

                              Kommentar

                              Lädt...
                              X