www.selfbus.org
https://selfbus.forums3.com/

Selfbus USB-Interface
https://selfbus.forums3.com/viewtopic.php?f=6&t=487
Page 1 of 3

Author: Florian [ 24. Sep 2018 22:10 ]
Post subject: Selfbus USB-Interface

Ich hab' da mal wieder was gebastelt.

Es hat mich schon längere Zeit gestört, dass es kein einfaches USB-KNX-Interface in der Selfbus-Welt gibt. Klar kann man sich ein IP-Interface bauen, aber das ist nunmal ein komplexes Teil, besonders für einen Einsteiger. Ich vermute mal die meisten Einsteiger kaufen sich dann doch ein kommerzielles, vielleicht gebrauchtes Interface.

Image Image

Also habe ich ein USB-Interface realisiert. Und wo ich gerade dabei war, habe ich ein paar Extras eingebaut.

Das IF hat verschiedene Betriebsmodi, die über einen Taster ausgewählt werden:
  • Nur USB-KNX Interface, das entspricht der Funktion eines klassischen Interfaces. Dafür stellt es ein USB-HID Device dar.
In den anderen Modi meldet sich das Gerät als USB-Composite Device an und hat dann gleichzeitig ein HID-Interface und ein CDC-Interface, eine serielle Schnittstelle. (Einschränkung: Bei mir kann nur ETS 5.6 etwas mit einem Composite Device anfangen, ETS 5.5 findet dann schlicht keine Schnittstelle.) Die virtuelle serielle Schnittstelle kann für mehrere Funktionen genutzt werden:
  • KNX-Monitor: Der KNX-Traffic wird in lesbarer Form auf der seriellen Schnittstelle ausgegeben.
  • USB-Monitor: Hier werden die HID-Pakete, die zwischen ETS und KNX ausgetauscht werden, ausgegeben. Das ist eher eine Debug-Funktion.
  • Programming Interface: Die virtuelle serielle Schnittstelle wird jetzt an einer von USB galvanisch getrennten Schnittstelle als Programmierinterface für ARM-Controller zur Verfügung gestellt. Damit kann man ohne weitere Hardware andere Selfbus-ARM-Baugruppen über FlashMagic programmieren. Auf dem Foto der Baugruppe ist der Programmierstecker der mit dem Kragen.

In dem Formfaktor, den ich jetzt erst mal aufgebaut habe, wird auf der KNX-Seite die TS-ARM, das "Eingangsmodul ARM" verwendet. Es wird auf die Basisplatine aufgesteckt. Auf der USB-Seite wird ein LPC11U24 als Mikrocontroller verwendet. Beide Seiten sind galvanisch voneinander getrennt, wie in der KNX-Spec gefordert. Natürlich könnte man den KNX-Teil auch fix auf der Basisplatine integrieren. So konnte ich einfach meine vorhandene TS-ARM aufstecken.

Der Formfaktor und noch viel mehr das zugehörige Gehäuse sind momentan ein eher mäßiger Kompromiss. Bei geschlossenen Gehäuse sieht man weder eine der LEDs, man kommt nicht an den Programmierstecker und kann die Taste nicht betätigen. Es ist also eher eine Aufbewahrungsschachtel. Ich wollte erst mal nicht mehr Aufwand in die mechanische Konstruktion stecken.

Ein nettes Feature ist es, dass zum Programmieren der Baugruppe keinerlei Programmierhardware benötigt wird. Der USB-uC erscheint über USB als Massenspeicher, wenn er leer ist (oder ein Jumper gesteckt wird). Und zur Programmierung des KNX-uC werden zwei Jumper umgesteckt, dann kann er über die virtuelle serielle Schnittstelle via USB programmiert werden.

Author: Doumanix [ 30. Sep 2018 22:36 ]
Post subject: Re: Selfbus USB-Interface

Hi Florian,

danke für die Infos zu deinem neuen Baby. ;)
Interessant finde ich insbesonders die Möglichkeit, auch mit dem Ding zu programmieren.

Wenn ich aber an eine USB Schnittstelle denke, fällt mir der Beitrag von GeminiServer ein: geraete-dev-f6/knx-schnittstelle-mit-tpuart-t448-10.html

Das fand ich auch ganz charmant: ein sehr einfach aufzubauendes IP-Interface, welches sehr zuverlässig funktioniert, erweitert um eine USB-Schnittstelle. Ist das nicht in weiten Teilen dasselbe?
Ich muss zugeben, dass ich das noch nicht ausprobieren konnte. Hört sich aber für mich sehr ähnlich an.

Grüße
Christian

Author: Florian [ 1. Oct 2018 18:56 ]
Post subject: Re: Selfbus USB-Interface

Doumanix wrote:
Wenn ich aber an eine USB Schnittstelle denke, fällt mir der Beitrag von GeminiServer ein: geraete-dev-f6/knx-schnittstelle-mit-tpuart-t448-10.html

Das fand ich auch ganz charmant: ein sehr einfach aufzubauendes IP-Interface, welches sehr zuverlässig funktioniert, erweitert um eine USB-Schnittstelle. Ist das nicht in weiten Teilen dasselbe?
Ich muss zugeben, dass ich das noch nicht ausprobieren konnte. Hört sich aber für mich sehr ähnlich an.


Das kann man aber nicht direkt an einen PC anschließen und mit einer halbwegs aktuellen ETS benutzen. Die ETS verlangt ein USB HID-Device, über das ein EMI-Protokoll läuft.

Bei der "KNX Schnittstelle mit TPUart" wird das TPUART-Interface lediglich über eine virtuelle serielle Schnittstelle nach USB gewandelt. Wie ich das verstehe wandelt der KNXD das dann z.B. auf einem RaspberryPi in ein KNX-über-IP Interface. Aktuelle KNX-Versionen unterstützen die alten seriellen Schnittstellen nicht mehr direkt.

Author: Florian [ 9. Oct 2018 22:35 ]
Post subject: Re: Selfbus USB-Interface

Ich habe die Schaltplan-, Layout- und BOM-Daten in's Github Repository eingespielt:
https://github.com/selfbus/hardware-incubation/tree/master/misc/USB-Interface%20ARM

Die Firmware folgt noch...

Author: Florian [ 19. Oct 2018 22:03 ]
Post subject: Re: Selfbus USB-Interface

Und die Sourcen:
https://github.com/selfbus/software-arm-incubation/tree/master/misc/USB-Interface-bcu1

Author: pete68 [ 20. Nov 2018 16:29 ]
Post subject: Re: Selfbus USB-Interface

Hello
I have some problems with the compilation:

'TFifoErr' is not a class or namespace GenFifo.cpp / USB-IF_Usb / src line 36 C / C ++ Problem

any suggestions

thank you

Author: Florian [ 20. Nov 2018 21:51 ]
Post subject: Re: Selfbus USB-Interface

pete68 wrote:
Hello
'TFifoErr' is not a class or namespace GenFifo.cpp / USB-IF_Usb / src line 36 C / C ++ Problem

TFifoErr is declared in "GenFifo.h". That sounds like the compiler did not find the file. Are there any warnings in the compiler messages before the error?

Do you use the .project / .cproject project files from the git repository?

Please have a look in the project properties / C/C++ build / Settings
At "MCU C++ Compiler" / "Includes" in the include paths there should be listed (among others) ${ProjName}/inc and ${ProjName}/inc/nxp

Author: pete68 [ 23. Nov 2018 17:16 ]
Post subject: Re: Selfbus USB-Interface

I confirm the presence of / inc and / inc / npx in "includes", I added BCU_TYPE = 10 to "preprocessor" and now I get a different error
"Type 'uint8_t' does not name a type BufferMgr.cpp / USB-IF_Usb / src line 52 C / C ++ Problem ",

yet there seems to be nothing missing!

Attachments:
Includes.png
Includes.png [ 8.95 KiB | Viewed 732 times ]

Author: Florian [ 23. Nov 2018 22:36 ]
Post subject: Re: Selfbus USB-Interface

The BCU_TYPE should not change a thing as the USB microcontroller does not use the sblib and does not know any different bcu types (it is hard-coded to BCU1 at the moment).

A quick google on you error message points to the used C++ language standard. For "enum class" and the direct use of uint8_t you need at least the C++ 2011 standard. What IDE version do you use? I use the MCUXpresso IDE v10.1.1. If your is much older, it might help to manually set the version. Settings -> Tool Settings -> MCU C++ Compiler -> Dialect. Try C++11 or newer. My setting is "Compiler default" which works for me. But the "default" might be different for older versions of the IDE.

Author: pete68 [ 24. Nov 2018 08:26 ]
Post subject: Re: Selfbus USB-Interface

yes, it was actually a compiler problem, I had LPCXpresso v. 7.8.0242 and switching to MCUXpresso I solved the problem of compiling USB-IF_Usb

I'm not very clear about the usefulness of this device but i hope i can use it to transfer the applications from ETS.
thanks a lot
:P Pasquale

Page 1 of 3All times are UTC + 1 hour
phpBB Forum Software