Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

  • thewhobox
    antwortet
    Wusste jemand, dass man auch in den Ladeprozeduren chooses einbauen kann?? 😨

    Habs gerade im neuen Jalousietaster von MDT gesehen:
    Code:
    <LoadProcedure MergeId="1">
        <choose ParamRefId="M-0083_A-00A2-10-6169_P-325_R-1540">
            <when test="2">
                <LdCtrlCompareRelMem InlineData="FF" Mask="FF" Invert="true" ObjIdx="4" Offset="932" Size="1">
                    <OnError Cause="CompareMismatch" MessageRef="M-0083_A-00A2-10-6169_M-1" />
                </LdCtrlCompareRelMem>
            </when>
        </choose>
    </LoadProcedure>
    <LoadProcedure MergeId="2">
        <LdCtrlRelSegment AppliesTo="full" LsmIdx="4" Size="1154" Mode="0" Fill="0" />
        <LdCtrlRelSegment AppliesTo="par" LsmIdx="4" Size="1154" Mode="0" Fill="0" />
    </LoadProcedure>
    <LoadProcedure MergeId="4">
        <choose ParamRefId="M-0083_A-00A2-10-6169_P-324_R-1539">
            <when test="0">
                <LdCtrlWriteRelMem AppliesTo="full,par" ObjIdx="4" Offset="0" Size="1154" Verify="true" />
            </when>
            <when test="1">
                <LdCtrlWriteRelMem AppliesTo="full,par" ObjIdx="4" Offset="0" Size="835" Verify="true" />
                <LdCtrlWriteRelMem AppliesTo="full,par" ObjIdx="4" Offset="904" Size="250" Verify="true" />
            </when>
        </choose>
    </LoadProcedure>

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    ich hätte eine Frage zum ExtMemoryWrite.

    der stack wie er heute ist antwortet auf ein ExtMemoryWriteRequest mit einem ExtMemoryWriteResponse, aber ohne CRC (ReturnCode::Success statt ReturnCodes::SuccesswithCRC):

    https://github.com/thelsing/knx/blob...stemB.cpp#L127

    https://github.com/thelsing/knx/blob...layer.cpp#L735


    Jetzt wäre es natürlich trivial analog zum MemoryWrite den VerifyMode auszuwerten und je nachdem mit oder ohne CRC zu senden.
    Nur die Frage ist - was steht dazu im Standard? Was ist hier vorgesehen?

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    Zitat von mumpf Beitrag anzeigen
    In device_object.cpp: Code:

    case PID_MAX_APDU_LENGTH: - pushWord(254, data); + pushWord(56, data); break;
    Das ist aber nicht im master branch oder? Mein Geräte meldet nämlich 0xFE.


    Zitat von mumpf Beitrag anzeigen
    Der Punkt ist wohl der, dass wenn das Gerät mehr kann als die Schnittstelle, dann fällt die ETS auch auf den Standardwert zurück. Und so klappt das.
    Interessant. Ich hab auch ein MDT IP Interface (SCN.IP000.02) und ich sende problemlos 128Byte mit ExtMemoryWrite und es kommt auch im Modul an.
    Allerdings mit Kaenx.Konnekt.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,
    hab nochmal geschaut.

    Zitat von SirSydom Beitrag anzeigen
    Inwiefern freigeschaltet? PID_MAX_APDU ?
    In device_object.cpp:
    Code:
            case PID_MAX_APDU_LENGTH:
    -            pushWord(254, data);
    +           pushWord(56, data);
                break;
    Der Punkt ist wohl der, dass wenn das Gerät mehr kann als die Schnittstelle, dann fällt die ETS auch auf den Standardwert zurück. Und so klappt das.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    Zitat von thesing Beitrag anzeigen
    Bitte beachte, dass die Speicheradresse vom Stack immer relativ zu _platform.getEepromBuffer() ist. Du kannst damit also nicht so einfach auf ganz bestimmte Speicherbereiche schreiben.
    das ist mir völlig klar.
    Tatsächlich ist es mit dem aktuellen memory handling eh nicht sinnvoll machbar - es müssen ja durchaus einige kb übertragen werden, es muss also laufend in den flash geschrieben werden, auch 256kb ram sind irgendwann am Ende. Und ich hab ja 16MB Flash, die würde ich auch gerne nutzen können. Auch wenn das laaaaaange dauern würde

    Ich hätte jetzt mal den quick hack gemacht und den extended memory write direkt aus dem Stack in die Applikation geleitet. Dort dann alles weitere.
    Um hier eine in System passende, allgemeingültige Variante zu finden und ggf. den Flash-Support umbau im Stack das ist mir ne Nummer zu komplex, dafür bin ich viel zu wenig in der KNX Spec um da auch nur Ansatzweise einen Überblick zu haben wie das funktioniert.


    Zitat von mumpf Beitrag anzeigen
    Ich hab nur im Stack freigeschaltet, dass man mit dem MDT-Interface schneller programmieren kann (die nennen das "Long Frame Support"). Ob das jetzt die Extended Frames sind, weiß ich gar nicht
    inwiefern freigeschaltet? PID_MAX_APDU ?
    Long Frames und Extended Frames meinen soweit ich weiß das selbe.
    Wie läuft denn das schnellere programmieren dann ab? MemoryWrite? Hast du zufällig einen Trace ?

    Zitat von thesing Beitrag anzeigen
    Und wie proggerKA schon gesagt hat: Man kann prinzipiell jede Application auf den Stack programmieren. (Zumindest mit der korrekten Maskenversion).
    Ja, jetzt wo du das sagst - wenn man die Historie von KNX betrachtet macht das ja absolut Sinn, da waren ja oft eine BCU mit µC mit diversen Applikationen (HW) kombinierbar ..

    Zitat von thesing Beitrag anzeigen
    Kommerzielle Geräte prüfen oft PID_HARDWARE_TYPE. Siehe https://support.knx.org/hc/en-us/art...-HARDWARE-TYPE
    das würde man mit LdCtrlCompareProp lösen oder?
    Code:
    <LdCtrlCompareProp InlineData="00FA020723" ObjIdx="0" PropId="78"> <OnError Cause="CompareMismatch" MessageRef="M-00FA_A-0207-23-E298_M-1" /> </LdCtrlCompareProp>
    Was wird dann verglichen? Der Wert in InlineData gegen das Ergebnis eines PropRead auf 0,78 ?
    Und in der FW setzte ich den HW_Type über die facade mit knx.hardwareType() oder?

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Zitat von SirSydom Beitrag anzeigen
    du hast damit doch Erfahrung, oder?
    Neee, gar nicht, sorry. Ich hab nur im Stack freigeschaltet, dass man mit dem MDT-Interface schneller programmieren kann (die nennen das "Long Frame Support"). Ob das jetzt die Extended Frames sind, weiß ich gar nicht. Ich bin nicht so fit im Protokoll selbst, sorry.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • thesing
    antwortet
    Bitte beachte, dass die Speicheradresse vom Stack immer relativ zu _platform.getEepromBuffer() ist. Du kannst damit also nicht so einfach auf ganz bestimmte Speicherbereiche schreiben. Dafür würde ich an deiner Stelle ein neues InterfaceObject ähnlich wie dem ApplicationProgramObject hinzufügen. Das packst du auf einen festen Index und kannst dann dort über die Properties alles nötige machen. Dafür gibt es auch Bereiche für die Objekttypen und Properties für herstellerspezifische Erweiterungen.

    Und wie proggerKA schon gesagt hat: Man kann prinzipiell jede Application auf den Stack programmieren. (Zumindest mit der korrekten Maskenversion).
    Kommerzielle Geräte prüfen oft PID_HARDWARE_TYPE. Siehe https://support.knx.org/hc/en-us/art...-HARDWARE-TYPE

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    ich versuche mich aktuell am Firmware-Update hochschieben über MemoryWrite und Kaenx.Connect.
    Soweit sind erste Tests schonmal ganz vielversprechend, die Daten kommen an und auch Extended Frames klappen.
    Sobald jedoch >11 byte gesendet werden (Extended Frame) bekomme ich vom Stack beim Senden des Response folgende Ausgabe (erstmal 10 byte, dann
    32 byte).
    Die Writes gehen zum Testen erstmal NICHT in den speicher...
    Im zweiten Fall wird die MemoryResponse auch korrekt zurückgeschickt und empfangen von kaenx.connect.
    Ich kann leider nur per Wireshark tracen da mein IP-Interface kein Busmonitor kann (nur für die Daten zwischen ETS und Gerät, aber nicht zwischen kaenx und Gerät).

    Ist euch das bei Nutzung von Extended Frames auch schon aufgefallen?
    mumpf
    du hast damit doch Erfahrung, oder?

    Code:
    rec memWriteInd adr:FF 7F
    number: 0A
    data: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9
    snd memoryReadIndication adr:FF 7F 00 00
    number: 0A
    
    rec memWriteInd adr:FF 7F
    number: 20
    data: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
    snd memoryReadIndication adr:FF 7F 00 00
    number: 20
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF2
    got UNEXPECTED: 0x23
    got UNEXPECTED: 0x52
    got UNEXPECTED: 0x60
    got U_STATE_IND: 0x7F
    got U_STATE_IND: 0xFF
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x41
    got UNEXPECTED: 0xC1
    got U_STATE_IND: 0x6F
    got U_STATE_IND: 0xE7
    got L_ACKN_IND
    got U_FRAME_STATE_IND: 0x5B
    got UNEXPECTED: 0xEB
    got UNEXPECTED: 0xAE
    got UNEXPECTED: 0x89
    got U_CONFIGURE_IND: 0x59
    got UNEXPECTED: 0xE5
    got U_CONFIGURE_IND: 0x59
    got U_CONFIGURE_IND: 0x69
    got UNEXPECTED: 0x70
    Timeout during RX_L_DATA


    Wenn ich den verify-Mode über Property 0,14 ausschalte, tut alles wie es soll. Logisch.

    Einen Kommentar schreiben:


  • thewhobox
    antwortet
    Zitat von SirSydom Beitrag anzeigen
    Load-Procedures
    Die Lade-Prozeduren bestehen ja erstmal nur aus normalen MemoryWrite/PropertyRead etc Telegrammen.
    Diese werden glaub von application_layer.cpp an die bau_systemB.cpp weiter gegeben und dort verarbeitet.

    Die ETS selbst prüft nur Maskenversion und Hersteller.
    Man könnte das lösen indem man in die Ladeprozedur noch ein "LdCtrlCompareProp" einfügt.
    Quasi eine Property abfragen und bei Ungleichheit eine ErrorMessage ausgeben "Applikation ist nur für ModbusGateway".
    (Zum Beispiel die PID_ORDER_INFO)

    Die KNX Virtual Geräte haben zum Beispiel so eine Abfrage drin.
    Code:
    <LoadProcedures>
        <LoadProcedure MergeId="2">
            <LdCtrlRelSegment LsmIdx="4" Size="256" Mode="0" Fill="0" />
            <LdCtrlCompareProp InlineData="00FA020723" ObjIdx="4" PropId="13">
                <OnError Cause="CompareMismatch" MessageRef="M-00FA_A-0207-23-E298_M-1" />
            </LdCtrlCompareProp>
        </LoadProcedure>
        <LoadProcedure MergeId="4">
            <LdCtrlWriteRelMem ObjIdx="4" Offset="0" Size="256" Verify="false" />
        </LoadProcedure>
    </LoadProcedures>
    <Messages>
        <Message Id="M-00FA_A-0207-23-E298_M-1" Name="EM_APmismatch" Text="This application program can only be used for device D7." />
    </Messages>
    Zuletzt geändert von thewhobox; 22.09.2021, 11:59.

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    good news! Es scheinen nur Kollisionen gewesen zu sein. Denn auf dem leeren Testbus den ich mir dann aufgebaut habe läuft alles einwandfrei durch.

    Gott sei Danke, denn ich hab mir gestern bestimmt 2 Stunden das Hirn zermartert nur um ein paar wenige Byte Kommunikation zwischen uC und TPUart zu verstehen.

    Code:
    <p01
    p>03
    war noch verständlich. Aber dann auch nur ein Gruppentelegramm auf dem Bus...

    Code:
    p>BC L_Data.ind ohne repeat system prio
    p>09 (1/1/
    p>01 /1)
    p>E1 ?
    <p10 ACK
    
    p>81
    p>2B
    p>9C
    p>09
    p>01
    p>E1
    <p10
    
    p>81
    p>0B
    p>9C
    p>09
    p>01
    p>E1
    <p10
    
    p>81
    p>0B
    p>9C
    p>09
    p>01
    p>E1
    <p10
    
    p>81
    p>0B

    Das passte alles nicht zur Telegrammstruktur. Bis ich dann irgendwann darauf gekommen bin dass die Schnittstelle vom Testbus mit 0.0.0 sendet und der knx-stack bytes mit dem Wert 0 nicht ausgibt Das war dann mein Exkurs und ich lass es wieder sein.



    thesing

    könntest du noch was zum Thema "Kann der Stack das Laden "falscher" KNXProds verhindern? Kann man irgendwo im Stack einstellen welche Applikationsnummer, Version und/oder Hersteller der Stack beim Laden akzeptiert?
    Wo werden im Stack die Load-Procedures behandelt?

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    Zitat von thesing Beitrag anzeigen
    Falls es jemand debuggen möchte
    möchten täte ich schon gern, aber das TPUart Protokoll hab ich bisher außen vor gelassen (man kann ja nicht alles können). Ich hab mal einen Programmiervorgang gelogged, sowohl ETS als auch Serial.
    Ich werde noch nicht so recht schlau draus, ist das Protokoll irgendwo mal "in a nutshell" erklärt? DB hab ich, aber der Einstieg ist nicht so easy.

    Ich hänge meine Logs mal an und werde weiter versuchen den Knackpunkt rauszufinden. Und ich werde mal mit einem "stillen" Bus testen. Nicht dass es am Ende nur Kollisionen sind.

    knx_prog_log.zip

    Einen Kommentar schreiben:


  • thesing
    antwortet
    Falls es jemand debuggen möchte: in die *uart*-Methoden in der Platform printHex einfügen und dann mit der tpuart-Dokumentation analysieren was Sache ist.

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    und mit Siemens BCU siehts auch nicht anders aus:

    Code:
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6A
    got UNEXPECTED: 0x4E
    got L_ACKN_IND
    got UNEXPECTED: 0xA4
    got U_CONFIGURE_IND: 0x1
    got U_CONFIGURE_IND: 0x3D
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got UNEXPECTED: 0xA0
    got U_CONFIGURE_IND: 0x41
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x9
    got L_POLL_DATA_IND
    got U_STATE_IND: 0x57
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got UNEXPECTED: 0x28
    got UNEXPECTED: 0x72
    got U_CONFIGURE_IND: 0x65
    got L_ACKN_IND
    got UNEXPECTED: 0xD0
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x39
    got U_STATE_IND: 0x4F
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0xAA
    got U_STATE_IND: 0x57
    L_DATA_CON not received within expected time
    got unexpected L_DATA_CON
    got U_STATE_IND: 0x17
    got U_STATE_IND: 0x47
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got UNEXPECTED: 0x28
    got UNEXPECTED: 0x76
    got U_CONFIGURE_IND: 0x65
    got L_ACKN_IND
    got UNEXPECTED: 0xF5
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got UNEXPECTED: 0xAE
    got U_STATE_IND: 0x57
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got UNEXPECTED: 0x28
    got UNEXPECTED: 0x7A
    got U_CONFIGURE_IND: 0x65
    got U_CONFIGURE_IND: 0x1
    got UNEXPECTED: 0x1A
    got U_STATE_IND: 0x4F
    got L_ACKN_IND
    got U_STATE_IND: 0x4F
    got L_ACKN_IND
    got U_STATE_IND: 0x4F
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x8
    got U_SYSTEM_STAT_IND: 0x8
    got U_STATE_IND: 0x57
    got L_ACKN_IND
    got U_STATE_IND: 0x4F
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x1B
    got U_STATE_IND: 0x57
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x1D
    got UNEXPECTED: 0x46
    got UNEXPECTED: 0x5A
    got U_CONFIGURE_IND: 0x1
    got UNEXPECTED: 0x54
    got L_ACKN_IND
    got UNEXPECTED: 0x6
    got L_ACKN_IND
    got U_RESET_IND
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x25
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got UNEXPECTED: 0x26
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x5
    got L_ACKN_IND
    got U_STATE_IND: 0x27
    got L_ACKN_IND
    got UNEXPECTED: 0x6
    got L_ACKN_IND
    got UNEXPECTED: 0x2A
    got L_ACKN_IND
    got UNEXPECTED: 0x2
    got L_ACKN_IND
    got U_STOP_MODE_IND
    got U_CONFIGURE_IND: 0x9
    got U_STATE_IND: 0x57
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x4E
    got UNEXPECTED: 0x8E
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got UNEXPECTED: 0x6
    got U_STATE_IND: 0xFF
    got L_ACKN_IND
    got U_STATE_IND: 0xFF
    got U_CONFIGURE_IND: 0x9
    got U_STATE_IND: 0xFF
    got U_FRAME_STATE_IND: 0x13
    got U_STATE_IND: 0xFF
    frame with invalid crc ignored
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got UNEXPECTED: 0x6A
    got U_FRAME_STATE_IND: 0x53
    got U_STATE_IND: 0xD7
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0xD
    frame with invalid crc ignored
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x4E
    got UNEXPECTED: 0x4E
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got UNEXPECTED: 0x6
    got U_STATE_IND: 0xFF
    got L_ACKN_IND
    got U_STATE_IND: 0xFF
    got U_CONFIGURE_IND: 0x9
    got U_STATE_IND: 0xFF
    got U_FRAME_STATE_IND: 0x13
    got U_STATE_IND: 0xFF
    frame with invalid crc ignored
    got U_STATE_IND: 0xFF
    frame with invalid crc ignored
    got U_STATE_IND: 0xFF
    Timeout during RX_L_DATA
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x4E
    got UNEXPECTED: 0x4E
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got UNEXPECTED: 0x6
    got U_STATE_IND: 0xFF
    got L_ACKN_IND
    got U_STATE_IND: 0xFF
    got U_CONFIGURE_IND: 0x9
    got U_STATE_IND: 0xFF
    got U_FRAME_STATE_IND: 0x13
    got U_STATE_IND: 0xFF
    frame with invalid crc ignored
    got U_STATE_IND: 0xFF
    Timeout during RX_L_DATA
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x4E
    got UNEXPECTED: 0x4E
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got UNEXPECTED: 0x6
    got U_STATE_IND: 0xFF
    got L_ACKN_IND
    got U_STATE_IND: 0xFF
    got U_CONFIGURE_IND: 0x9
    got U_STATE_IND: 0xFF
    got U_FRAME_STATE_IND: 0x13
    got U_STATE_IND: 0xFF
    frame with invalid crc ignored
    got U_STATE_IND: 0xFF
    Timeout during RX_L_DATA
    expected L_DATA_CON not received
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got UNEXPECTED: 0x60
    got UNEXPECTED: 0xCE
    got UNEXPECTED: 0x16
    got unexpected L_DATA_CON

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    Ich hab gestern Nacht noch mit SAMD und RP2040 und dem unveränderten knx-demo sktech ausprobiert.
    Auch beim SAMD kommen die Meldungen:

    Code:
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x72
    got UNEXPECTED: 0x4E
    got L_ACKN_IND
    got UNEXPECTED: 0xA4
    got U_CONFIGURE_IND: 0x1
    got U_CONFIGURE_IND: 0x3D
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got UNEXPECTED: 0xA0
    got U_CONFIGURE_IND: 0x41
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x9
    got UNEXPECTED: 0xE8
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got UNEXPECTED: 0x28
    got UNEXPECTED: 0x7A
    got U_CONFIGURE_IND: 0x65
    got L_ACKN_IND
    got UNEXPECTED: 0xD0
    got L_ACKN_IND
    got U_CONFIGURE_IND: 0x39
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0xA6
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got UNEXPECTED: 0x60
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got UNEXPECTED: 0x28
    got UNEXPECTED: 0x7E
    got U_CONFIGURE_IND: 0x65
    got L_ACKN_IND
    got UNEXPECTED: 0xF5
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_SYSTEM_STAT_IND: 0x0
    got U_FRAME_STATE_IND: 0x53
    got L_ACKN_IND
    got U_SYSTEM_STAT_IND: 0x0
    got UNEXPECTED: 0xA6
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    expected L_DATA_CON not received
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0xF1
    got U_CONFIGURE_IND: 0x11
    got UNEXPECTED: 0x6
    got UNEXPECTED: 0x60
    got UNEXPECTED: 0xC2
    got UNEXPECTED: 0x1A
    got U_STATE_IND: 0x17
    got unexpected L_DATA_CON
    L_DATA_CON not received within expected time
    Basic restart requested
    Als nächstes teste ich mal mit TP-Uart statt NCN5120. (Siemens BCU statt NanoBCU)

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    Zitat von mumpf Beitrag anzeigen
    asap()
    Danke, probier ich gleich mal aus.

    Zitat von mumpf Beitrag anzeigen
    Beim programmieren sollte Dein Coding abgeschaltet sein.
    Ja, etwas anders aber gelöst sollte aber den gleichen Effekt haben:

    Code:
    void loop()
    {
    knx.loop();
    if (!knx.configured())
    return;
    
    [...]

    Einen Kommentar schreiben:

Lädt...
X