Ankündigung

Einklappen
Keine Ankündigung bisher.

ESP8266 KNX mit ETS

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

  • mumpf
    antwortet
    Das mit der eigenen PA geht hier:
    https://github.com/thelsing/knx/blob...e_object.h#L42
    Bei mir hat die 0 aber immer funktioniert. Trotzdem hab ich das auf 0xFFFF gesetzt, weil es andere Geräte auch so machen.

    Zur EEPROM-Größe kann ich nichts sagen, das hab ich nie gebraucht.

    Gruß, Waldemar

    P.S.: Arbeitest Du mit der Arduino-IDE oder mit PlatformIO?

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    wenn es eher 5 Hz sind, dann bist Du wohl hier gelandet:
    Code:
    void ArduinoPlatform::fatalError()
    {
        const int period = 200;
        while (true)
        {
    #ifdef LED_BUILTIN
            if ((millis() % period) > (period / 2))
                digitalWrite(LED_BUILTIN, HIGH);
            else
                digitalWrite(LED_BUILTIN, LOW);
    #endif
        }
    }
    Die Frage ist, warum... Dab den aktuellen Stack lange nicht mehr "angefasst", da ich (leider immer noch aus Zeitgründen) auf einem fork arbeite. Da hat sich ne Menge getan, das erinnert mich wieder daran, dass ich da ran muss, aber das ist nicht das Thema hier.
    • Damals hat sich ein neues Modul immer mit 0.0.0 und nicht mit 15.15.255 gemeldet.
    • Du musst in der Demo darauf achten, dass   ArduinoPlatform::SerialDebug = &Serial;  auch das richtige Serial adressiert (also passend zum Board auf die USB-Schnittstelle geht), beim Board von Masifi ist das z.B. "SerialUSB".
    • Und Du musst die richtigen Pins zuweisen, falls die Defaults nicht stimmen:
      Code:
      	    // pin or GPIO the programming led is connected to. Default is LED_BUILTIN
      	    // knx.ledPin(LED_BUILTIN);
      	    // is the led active on HIGH or low? Default is LOW
      	    // knx.ledPinActiveOn(HIGH);
      	    // pin or GPIO programming button is connected to. Default is 0
      	    // knx.buttonPin(0);
    Ich bin mit Hardware nicht so fit, deswegen nutze ich ja das Board von Masifi, deswegen kann ich über die Verschaltung nichts sagen. Aber Du musst erstmal das blinken weg bekommen. Da einer der Aufrufe von fatalError(); im MemoryManagement liegt, ist der Tipp von h1as sicherlich sinnvoll.

    Wenn es nach dem Start nicht mehr blinkt, sollte beim togglen vom Prog-Pin die Prog-LED auch togglen. Und wenn die KNX-Verbindung klappt, auch in der ETS ein Device 0.0.0 im ProgMode erscheinen.

    Und dann kannst Du auch eine PA zuweisen und von der ETS aus programmieren. Und dann erscheint auch was im serial monitor.

    Gruß, Waldemar

    P.S.: Ich würde es weiter probieren, ich finde, der Stack lohnt sich...

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    Zitat von h1as Beitrag anzeigen
    Ich musste die KNX_Flashsize auf 1024 runtersetzen damit das Teil nicht im readmemory hängen bleibt.
    in der flashstorage lib von thesing steht bei mir:

    Code:
    #ifndef EEPROM_EMULATION_SIZE
    #define EEPROM_EMULATION_SIZE 1024
    #endif
    das meinst du, oder?

    Zitat von h1as Beitrag anzeigen
    Außerdem musste ich im Code noch eine default Phy. Adresse zuweisen damit das Flashen aus ETS raus klappt.
    ok, magst du vielleicht den schnippsel posten? Wäre nett!

    Einen Kommentar schreiben:


  • h1as
    antwortet
    Hallo SirSydom,

    ich habe vor kurzem auch die Demo mit dem SAMD21 und Tpuart getestet.
    Ich musste die KNX_Flashsize auf 1024 runtersetzen damit das Teil nicht im readmemory hängen bleibt. Außerdem musste ich im Code noch eine default Phy. Adresse zuweisen damit das Flashen aus ETS raus klappt.
    Vielleicht hilft dir das.
    Viele Grüße H!as

    Einen Kommentar schreiben:


  • Ing-Dom
    antwortet
    Hallo zusammen,

    ich hab hier ja ne Menge verpasst. ESP8266 im Titel hat mich einfach nicht angemacht, und ich bin jetzt erst durch die alt. Software für Masifis Tool darauf gekomen dass das auch für SAMD21 und TP tut

    Das probier ich doch gerne mal. Ich scheitere aber schon.. ziemlich früh

    Ich hab die knx-demo (git head) als tp variante mit arduino gebaut. Board ist ein ItsyBitsyM0 und eine MicroBCU.

    - die led blinkt mit ca. 3Hz
    - in der ETS ist kein device im Prog mode, 15.15.255 ist nicht vorhanden
    - am serial monitor kommt gar nichts
    - keine Reaktion wenn ich am prog pin auf 3v3 oder gnd ziehe

    1) was bedeutet das blinken mit ca. 3Hz ?
    2) sollte das gerät im "neuzustand" nicht unter 15.15.255 ansprechbar sein?
    3) ist das normal, dass am serial monitor nichts passiert? fehlt da ggf. ein while(!serial) ?
    4) wie muss der knx buton pin angeschlossen werden? was wird hier erwartet?

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    Hi H1as,

    cool das war die Lösung. Habe die KNX_FLASSH_SIZE auf 1024 gesetzt und schon klappt es mit dem Gedächtniss.

    Nun habe ich nur noch das Problem, was mir etwas unerklärlich ist, das mein board nicht von allein startet, wenn ich es anstecke passiert nichts, wenn ich bei PlattformIO Monitor starte über den USB Port scheint das Baord einen reset zu bekommen und es wird auch Debug code ausgegeben dann funktioniert auch alles wie gewünscht, wenn ich nun was über ETS Programmiere und die einen Board reset macht hängt er wieder in dem komischen Modus das ich erst den Monitor auufmachen muss das es wieder läuft. :-)

    So ein Board nutze ich:
    https://i.ebayimg.com/images/g/BUIAA...jdA/s-l300.jpg

    Doku:
    BLavery/SAMD21-M0-Mini: Notes on using the Chinese "SAMD21-M0-Mini" board (github.com)

    Gruß
    RObert
    Zuletzt geändert von jeff25; 19.01.2021, 10:07.

    Einen Kommentar schreiben:


  • h1as
    antwortet
    Hallo zusammen,

    ich musste auch die KNX_FLASH_SIZE anpassen bzw. definieren. In Memory.cpp ist diese mit 8192 definiert. Wenn ich sie reduziere dann funktioniert es. Warum das so ist hab ich aber noch nicht untersucht.

    Viele Grüße
    H1as

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    Hi Waldemar,

    Es scheint eher ein Boot Problem zu sein. Wenn ich programmiere und dann den SAMD21 neu anstecke passiert nichts, er startet nicht von allein. Ich habe festgestellt wenn ich "//knx.readMemory();" auskommentiere dann geht es. Es scheint irgendwas lesen zu wollen was nicht existiert bzw ihn vom starten abhält.

    Gruß
    Robert
    Zuletzt geändert von jeff25; 19.01.2021, 00:23.

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi Robert,

    Zitat von jeff25 Beitrag anzeigen
    Ein weiterer kleiner Fehler ist noch er merkt sich nichts, denke das liegt an Flashstorage, muss ich hier was besonderes tun?
    wenn Du nichts an den #define in samd_platform.h geändert hast, werden alle ETS-Setings im SAMD-Flash gespeichert. Auch die PA. Dafür musst Du nichts tun. Allerdings wird bei einem erneuten beschreiben der Firmware per USB der gesamte Flash gelöscht. Und damit auch die PA und alle ETS-Parameter. Meinst Du das mit "er merkt sich nichts"?

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    :-) danke. Manchmal sieht man die Probleme nicht mehr

    Einen Kommentar schreiben:


  • Alloc
    antwortet
    Zitat von jeff25 Beitrag anzeigen
    nur TX und RX mit der BCU (ncn5120) verbunden, wenn ich das board auch über den NCN5120 versorgen lasse ist der Fehler weg und ich kann Adresse und auch Appliaktion schreiben, muss ich evtl im USB modus GND noch verbinden?
    Ohne GND-Verbindung fehlt ja für die Datenleitungen das Bezugspotential (also ja, GND muss dabei verbunden sein).

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    update:

    ich habe bis jetzt das SAMD21 Board per USB versorgt und nur TX und RX mit der BCU (ncn5120) verbunden, wenn ich das board auch über den NCN5120 versorgen lasse ist der Fehler weg und ich kann Adresse und auch Appliaktion schreiben, muss ich evtl im USB modus GND noch verbinden?

    Ein weiterer kleiner Fehler ist noch er merkt sich nichts, denke das liegt an Flashstorage, muss ich hier was besonderes tun?

    Ich habe im Code nur #include <FlashAsEEPROM.h> eingebunden.

    Viele Grüße
    RObert

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    Danke Waldemar,

    ich habe aber das KNX Demo Programm genutzt :-)

    Ich habe mal versuchshalber das hier installiert
    https://knx-user-forum.de/forum/%C3%...51#post1141751
    da bekomme ich diese Ausgabe, es scheint also generell zu gehen...

    Mit der KNX Demo kommen nur oben genannte Fehler. Muss ich irgendwo noch den NCN5120 bekannt geben?

    Gruß
    Robert

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi Robert,

    solche Meldungen kommen normalerweise, wenn irgendwas in Deinem Programm zu lange braucht, Du z.B. irgendwo ein delay im Coding hast. Kann auch durchaus in irgendeinem importierten Modul sein, dass Du nicht selber geschrieben hast. Du musst immer die Kontrolle an den knx-Stack abgeben, damit der seinen Job machen kann und die KNX-Telegramme abholen/schreiben kann.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • jeff25
    antwortet
    Hallo zusammen,

    ich nutze einen SAMD21 + ncn5120 und bekomme folgenden Fehler:

    Startup called...
    ownaddr 0
    got U_STATE_IND: 0x47
    Timeout during RX_L_DATA
    got U_STATE_IND: 0xBF
    got U_FRAME_STATE_IND: 0x9B
    got UNEXPECTED: 0xAA
    got UNEXPECTED: 0xAA
    got UNEXPECTED: 0xA2
    got UNEXPECTED: 0xE1
    got U_CONFIGURE_IND: 0x1
    got L_ACKN_IND
    Timeout during RX_L_DATA
    frame with invalid crc ignored
    got U_STATE_IND: 0xBF
    got U_STATE_IND: 0x57
    Timeout during RX_L_DATA

    Ich habe bereits hier gesucht und auch den selben Fehler gefunden aber irgendwie mag es bei mir nicht klappen, der damals erwähnte timeout ist nun eh schon auf 10 gesetzt... Kann mir jemand helfen oder weis an was das liegt?

    Viele Grüße
    RObert

    Einen Kommentar schreiben:

Lädt...
X