dw-link kann ein Arduino-Board in einen Hardware-Debugger verwandeln und dw-probe verbindet es mit jedem Target-Chip.

Verbinden des Hardwaredebuggers mit einem Target-Chip

Wie ich in einem der letzten Blogbeiträge berichtet habe, kann das dw-link-Programm einen Arduino Uno, Nano oder Pro Mini in einen Hardware-Debugger verwandeln. Der Hardware-Teil ist jedoch sehr begrenzt und lässt zu wünschen übrig. Man muss sechs Jumper-Kabel verwenden, um den „Hardware-Debugger“ mit dem Ziel zu verbinden. Wenn man dieses Tool mehr als einmal verwenden möchte, dann sollte es zumindest so etwas wie ein ISP-Kabel geben. Ich habe etwas in dieser Art mit einem 6-adrigen DuPont-Jumper-Kabel und etwas Schrumpfschlauch hinbekommen.

Während das besser ist als sechs einzelne Kabel, muss man sich immer noch merken, welcher Anschluss an welchen Arduino-Pin angeschlossen werden muss. Etwas besser wäre ein ISP-Kabel mit herausgebrochener RESET- und Vcc-Leitung.

Viel besser ist jedoch ein Prototyp-Shield mit einem ISP-Anschluss. Man kann darauf auch eine Stiftleiste unterbringen, um die Stromversorgung des Hardware-Debugger-Versorgungspin (zum Ein- und Ausschalten) mithilfe eines Jumpers zu konfigurieren und außerdem noch die System-LED unterbringen. Ein Fritzing-Sketch dazu findet sich im dw-link-Handbuch.

Während dieses Shield für die Entwicklung des dw-link-Programms ausreichend war, möchte man oft noch andere Dinge realisieren. Ich für mein Teil arbeite in der Regel mit 3,3 V Systemen und verwende insbesondere Sensoren, die nicht 5 V tolerant sind. Was man hier also braucht, sind Pegelumsetzer. Und sie sollten an das Zielsystem angepasst sein, damit man sowohl 3,3-V- als auch 5-V-Systeme debuggen kann. Dies kann man z.B. mit dem Sparkfun Level-Shifter Breakout Boards mit vier BSS138 N-Kanal MOSFETs erreichen. Natürlich funktionieren ähnliche Breakout-Boards auch.

Ich habe einen Prototyp gebaut, diesmal mit einem Steckbrett-Shield und es hat wunderbar funktioniert. Auch hierzu findet man ein Fritzing-Sketch im Handbuch.

Das sieht jetzt vielleicht nicht ganz überzeugend aus, aber es tut, was es soll. Insbesondere die Pegelanpassung funktioniert einwandfrei. Es ist jedoch definitiv nicht für die Ewigkeit gemacht. Und selbst wenn man dem Ganzen eine nachhaltigere Form geben würde, hat dieser Prototyp ein paar Mängel. Erstens hat er Pull-up-Widerstände an den ausgehenden SPI-Leitungen, d.h. er verändert die elektrischen Eigenschaften dieser Leitungen erheblich. Zweitens hat man im Fall, dass man 3,3 Volt vom Hardware-Debugger bezieht, nur einen maximalen Ausgangsstrom von 50 mA. Drittens kann die Platine den Target-Chip nicht ein- und ausschalten, wenn man 3,3 Volt als Versorgungsspannung benutzt.

Das Schweizer Debugger-Taschenmesser: dw-probe

Es wäre also toll, ein Board mit den folgenden Funktionen zu haben:

  • Schaltbares Netzteil (das Power-Cycling durch den Hardware-Debugger unterstützt),
  • mit 5 Volt und 3,3 Volt Versorgungsspannung bei 200 mA,
  • einen bidirektionalen Pegelumsetzer auf der debugWIRE-Leitung,
  • einen optionalen Pull-up-Widerstand von 10 kΩ auf dieser Leitung,
  • unidirektionale Pegelumsetzer auf den ISP-Leitungen und
  • Tri-State-Puffer für die beiden Ausgangssignale MOSI und SCK.

Ich habe ein Board entworfen, auf das man ein Nano- oder Pro Mini-Arduino setzen kann und das alle der oben genannten Funktionen hat. Und wie üblich habe ich eine Verbindung vergessen. Dies ist der grüne Draht, den man auf dem Bild sehen kann. Version 2 des Boards wird diesen Fehler nicht haben (und einen weiteren Fehler korrigieren). Außerdem wird es etwas kleiner sein. Auf jeden Fall funktioniert die aktuelle Version nach den beiden Korrekturen einwandfrei.

Wer vorhat, das Board selbst zu bauen, sollte darauf vorbereitet sein, SOT23-5 ICs zu löten. Das ist machbar, wenn man ruhige Hände und eine gute Lupe hat, aber es macht nicht wirklich Spaß. Die Eagle-Designdateien findet man im PCB-Verzeichnis des Repositorys. Solange ich noch (unbestückte) Leiterplatten habe, kann ich die gegen einen geringen Unkostenbeitrag verschicken.

EDIT (5. Okt. 2023): Man kann jetzt ein Arduino UNO Shield bei Tindie kaufen. Es ist etwas einfacher und lässt sich einfacher aufbauen.

Views: 11