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.

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.