Debug- und Programmierschnittstelle

Zum Übertragen der Software auf den Mikrocontroller befindet sich auf den Selfbus Controllern / Modulen mit LPC11xx eine modifizierte Cortex Debug-Schnittstelle (SWD + NXP ISPInterface - JTAG wird vom LPC11xx nicht unterstützt) mit folgender Pinbelegung: 

SelfbusTS_ARM_JTAG.jpg

Abweichend vom Standard wurde für die Debug- und Programmierschnittstelle auf den Selfbus-Controllern eine Pin-Leiste mit größerem Pin-Abstand von 2,00mm gewählt. Diese ist deutlich günstiger und lässt sich leichter von Hand löten.

Die Modifikation gegenüber dem ARM Cortex Standard besteht in den Pins ISP_RXD, ISP_TXD und ISP_Enable. Diese unterstützen die Programmierung mit dem Programm FlashMagic. Da diese Pins standardmäßig mit GND verbunden sind, müssen alle Selfbus Module/Controller (mindestens an den Pins ISP_RXD und ISP_TXD) Schutzwiderstände enthalten!

 

Geeignete Programmer / Programmier-Hardware

Selfbus USB-Programmer: Um die Firmware auf den ARM Controller zu laden, können die Selfbus-eigenen USB Programmer verwendet werden. Ein Debugging ist mit ihnen allerdings nicht möglich.
Die neuen Modelle (ab Version 3.7) haben einen 5x2-poligen ARM Cortex Debug Stecker mit größerem 2,00mm Pin-Abstand. Dadurch lassen sie sich direkt und ohne Adapter mit den Selfbus Modulen/Controllern verbinden. Außerdem kann das (vom KNX-Bus getrennte!!!) Modul/ der Controllers während der Programmierung mit Strom versorgt werden.
Die RM2,00mm Stecker/Header gibt es z.B. bei Reichelt. Das passende Flachbandkabel in einem der verlinkten Selfbus-Shops.

NXP MCU-Link: Dieser recht neue CMSIS DAP Debugger ist bereits für etwa 12€ erhältlich. Der Vorteil besteht in der nahtlosen Integration in die NXP Entwicklungsumgebung. Hiermit sind Programmierung und Debugging möglich. Eine Versorgung des (vom KNX-Bus getrennten!!!) Moduls/Controllers ist damit aber nicht möglich, d.h. man muss das Modul/ den Controller anderweitig mit Strom versorgen.

LPC-Link 2: Dieser bewährte CMSIS DAP Debugger kostet etwa 20€. Er integriert sich ebenfalls in die NXP Entwicklungsumgebung. Auch mit ihm sind Programmierung und Debugging möglich.Eine Versorgung des (vom KNX-Bus getrennten!!!) Moduls/Controllers ist damit möglich.

LPCxpresso: Dieses kleine Board (Herstellernummer OM13087UL) enthält einen CMSIS DAP kompatiblen Debugger/Programmer sowie einen Experimentier-Prozessor. Der Debugger/Programmer lässt sich vom Prozessorteil trennen und kann dann auch zum Programmieren/Debuggen externer Controller verwendet werden. Da das Board aber relativ teuer ist und nicht out-of-the-Box an die Selfbus Module/Controller zum Flashen angesteckt werden kann, ist es vorrangieg für Entwickler interessant, die sich auf diesem Wege einen zusätzlichen Debugger/Programmer sparen können.

LPCXpresso_DevelopmentBoard_PIN_Belegung_TS_ARM_.jpg

Andere USB Programmer: Prinzipiell eignet sich jeder CMSIS DAP kompatible Debugger/Programmer. Es gibt diese Preisbereich von 10 bis mehrere hundert Euro von diversen Herstellern. In jedem Fall muss das Verbindungskabel selbst hergestellt oder ein Adapter verwendet werden, da durchweg Programmier-Pin-Leisten nach dem ARM Cortex Standard im 1,27mm Raster verwendet werden. Eine Versorgung des (vom KNX-Bus getrennten!!!) Moduls/Controllers ist damit i.d.R. nicht möglich.

 

Programmer/Debugger Programmieren Debuggen Target Power Selfbus Connector Integration MCUXpresso IDE Preis
SB USB-Programmer × × ×  
NXP MCU-Link × × × 12€
LPC-Link 2 × × × × 20€
LPCxpresso Board × × (×) × 26€
Sonstige CMSIS DAP × × (×) (×) 10 - 800€

 

Verbindungskabel: Auf jeden Fall braucht man ein Selfbus-kompatibles Programmierkabel. Die passenden Stecker mit Rastermaß 2,00mm gibt es z.B. bei reichelt.de: "PL 2X05G 2,00". Das passende Flachbandkabel muss entsprechend Streifenraster 1mm haben. Die Steckerleiste für den USB-Programmer ist als "WL 2X05G 2,00" ebenfalls bei reichelt.de zu finden. Dies fehlt im Selfbus USB-Programmer-Warenkorb.

 

Das Flashen

Der ARM Controller ist sehr leicht zu programmieren. Zum Übertragen der Firmware auf den Controller wird das Programmierkabel an Programmer/Debugger sowie der Programmier-Pinleiste auf dem Modul/Controller angeschlossen. Der Debugger/Programmer wird anschließend mit dem USB Port des Rechners verbunden. Dann kann die Firmware mittels des Programms FlashMagic übertragen werden (eigener Artikel: Einstellungen in FlashMagic). 

Während des Flash-Vorgangs darf das Modul / der Controller nicht mit dem KNX-Bus verbunden sein (keine galvanische Trennung im Debugger/Programmer vorhanden! ).

Man sollte unbedingt auf die richtige Orientierung des Programmierkabels beim Selfbus Modul/Controller achten (Pin1 meist am quadratischen Pad zu erkennen - an der Buchsenleiste des Kabels befindet sich bei Pin1 eine dreieckige Markierung). Nicht auf allen Layouts ist genügend Platz für einen verpolsicheren Wannenstecker. Solange der Debugger/Programmer den angeschlossenen Controller nicht mit Strom versorgt, wird zwar höchst wahrscheinlich nicht viel passieren, es kann aber nicht immer davon ausgegangen werden, dass der verwendete Debugger/Programmer eine entsprechende Schutzbeschaltung enthält.