Überblick
Der SBDAP Adapter (oder kurz: SBDAP) ist eine günstige Alternative zu kommerziellen Debuggern, wie dem LPC-Link2 oder dem J-Link, um die Firmware in ein Selfbus-Gerät zu laden und auch direkt auf dem Gerät zu debuggen.
Das vom KNX-Bus getrennte Gerät kann dabei außerdem mit Strom (3.3V / 200mA max.) versorgt werden.
Vorteilhaft ist dabei das nativ vorhandene SB-Link Interface (modifizierter Cortex Debug Header mit 2,00mm Pin-Abstand). Dieses bietet neben der Debug-Funktion außerdem einen Zugang zur UART des Prozessors im Selfbus-Gerät, was z.B. für Debug-Ausgaben sehr nützlich sein kann.
Optional kann ein standard ARM Cortex Debug Header (1,27mm Pin-Abstand) bestückt werden.
Eine detailliertere Beschreibung des Debuggers befindet sich hier: https://github.com/selfbus/sbdap
Die Design-Files befinden sich im Selfbus-GIT.
Der Debugger basiert auf dem DAP42 von Devan Lai.
Inbetriebnahme des SBDAP
Der STM32F042 Controller des SBDAP besitzt einen Bootstrap-Modus (DfuSe), den man durch Gedrückthalten der Taste "Boot" während des Ansteckens an den USB-Bus aufruft. Alternativ funktioniert auch die Sequenz "Boot" gedrückt halten --> "Reset" drücken --> "Boot" loslassen.
Ein noch unbespielter STM32F042 geht sofort nach Anlegen der Betriebsspannung in den Bootstrap Modus.
Nun kann vom PC aus die Firmware überspielt werden. Dazu nutzt man die Software dfu-util.
(Alle, die noch eine dfu-util v0.10 installiert haben, bitte unbedingt auf die aktuelle Version aktualisieren, da die v0.10 fehlerhaft ist.)
Der Aufruf des Programms dfu-util lautet folgendermaßen:
dfu-util -d 1209:da42,0483:df11 -a 0 -s 0x08000000:leave -D SBDAP.bin
Die Firmware befindet sich hier: https://github.com/selfbus/sbdap/releases
Firmware-Update des SBDAP
Die Firmware des SBDAP enthält bereits einen Update-Mechanismus (DFU-Gerät -detach only), d.h. zum Programmieren einer neuen Firmware-Version muss nicht erst der STM32 Bootstrap-Modus aufgerufen werden.
Es genügt der Aufruf des dfu-util Programms:
dfu-util -d 1209:da42,0483:df11 -a 0 -s 0x08000000:leave -D SBDAP.bin
Treiberinstallation
Der HID Treiber der CMSIS DAP Funktion wird unter Windows automatisch installiert. Damit ist bereits die Nutzung des Debuggers möglich.
Zur Verwendung des Virtuellen COM Ports sowie des DFU Interfaces unter Windows kann das Programm Zadig genutzt werden. Dies ist der empfohlene Weg.
(Alternativ ist auch dieser Treiber nutzbar. Dafür muss jedoch die Windows Treibersignaturprüfung deaktiviert werden.)
Verwendung SBDAP in MCUXpresso
Wichtig ist, diese Zeile in der Datei [INSTALL_DIR_MCUXpresso]/ide/binaries/Scripts/probetable.csv
bzw . [INSTALL_DIR_MCUXpresso]/ide/LinkServer/binaries/Scripts/probetable.csv
ab MCUXpresso v11.9 am Ende zu ergänzen:
MCUxpresso Version >= 11.7.x0x1209, 0xDA42, 64, 1, 0, 0, 0, 0, "", 0x0000, -1, -1
MCUxpresso Version <= 11.6.x0x1209, 0xDA42, 64, 1, 0, 0, 0, "", 0x0000, -1, -1
Vorsicht!
Der SBDAP trennt das zu debuggende Gerät nicht galvanisch von der USB-Seite des Rechners! Wer vor hat, ein Gerät, das am Bus läuft, zu debuggen, sollte einen USB-Isolator zwischen SBDAP und Rechner verwenden.