Überblick

Der Selfbus DAP Adapter (kurz: SBDAP) ist die Allzweckwaffe für das Selfbus-Projekt, wenn es um das Flashen und Debuggen des ARM geht.

Als Progger löst er damit die bisherigen Progger ab, die für den ARM verwendet werden konnten (v3.7 und v4.0), da er nur Vorteile bietet und nicht teurer ist. 
Als Debugger stellt er eine günstige Alternative zu kommerziellen Debuggern wie dem LPC-Link2 oder dem J-Link dar, um die Firmware in ein Selfbus-Gerät zu laden und auch direkt auf dem Gerät zu debuggen.

Bitte beachten:

  1. Auch der SBDAP muss einmalig mit einer Firmware versorgt werden! Die notwendigen Schritte findet ihr unter Inbetriebnahme des SBDAP.
  2. Es müssen die richtigen Treiber installiert sein, um den SBDAP verwenden zu können. Siehe Treiberinstallation.
SBDAP kl3

 Features

  • 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.
  • Die Fähigkeit, auch mit FlashMagic betrieben zu werden, wurde durch die Selfbus-Entwickler bereitgestellt. 

Inbetriebnahme des SBDAP

Zur Inbetriebnahme benötigt man zwei Downloads: 

  1. Die von uns bereitgestellte Firmware "SBDAP.bin" --> https://github.com/selfbus/sbdap/releases
  2. Das Tool "dfu-util", mittels welchem die Firmware übertragen wird --> https://dfu-util.sourceforge.net/releases/

Um die Firmware auf den SBDAP zu übertragen muss sich das Gerät im Bootstrap-Modus befinden.

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.

Befindet sich der SBDAP im Bootstrap-Modus, kann vom PC aus die Firmware mittels der Software dfu-util überspielt werden. 
Auf der verlinkten Downloadseite findet ihr zum Beispiel die Archivdatei dfu-util-0.11-binaries.tar.xz. Etwas seltsam für Windows-User, aber ja, darin befindet sich auch im entsprechenden Verzeichnis die Win64 Binaries, die man einfach über den Explorer (zumindest in Win11) entpacken kann. 
(Alle, die noch eine dfu-util v0.10 installiert haben, bitte unbedingt auf die aktuelle Version aktualisieren, da die v0.10 fehlerhaft ist.)

Kopiert man die Datei SBDAP.bin direkt in das Verzeichnis mit dem dfu-util Applikation, startet man das flashen der Firmware auf den SBDAP folgendermaßen:

dfu-util -d 1209:da42,0483:df11 -a 0 -s 0x08000000:leave -D SBDAP.bin

bzw. unter Windows mit 

.\dfu-util.exe -d 1209:da42,0483:df11 -a 0 -s 0x08000000:leave -D SBDAP.bin

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 wie unter "Inbetriebnahme des SBDAP" beschrieben. 

Wahrscheinlich erkennt nach einem Update der Firmware Windows das Gerät nicht mehr und der Treiber muss erneut installiert werden. 

Treiberinstallation

Debugger: Der HID Treiber der CMSIS DAP Funktion wird unter Windows automatisch installiert. Damit ist bereits die Nutzung des Debuggers möglich.

Progger: Zur Verwendung des Virtuellen COM Ports (benötigt für FlashMagic!) sowie des DFU Interfaces unter Windows kann das Programm Zadig genutzt werden. Dies ist der empfohlene Weg.

Zadig_STM32.gif

(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 probetable.csv am Ende zu ergänzen:

MCUxpresso Version >= 11.7.x
0x1209, 0xDA42, 64, 1, 0, 0, 0, 0, "", 0x0000, -1, -1

MCUxpresso Version <= 11.6.x
0x1209, 0xDA42, 64, 1, 0, 0, 0, "", 0x0000, -1, -1

Seit MCUXpresso v11.9 befindet sich die Datei unter [INSTALL_DIR_MCUXpresso]/ide/LinkServer/binaries/Scripts/probetable.csv
Bei älteren MCUXpresso Versionen findet man die Datei unter [INSTALL_DIR_MCUXpresso]/ide/binaries/Scripts/probetable.csv

Vorsicht beim Debuggen eines Gerätes am Bus! 

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.

Downloads