Bei der Arbeit an den Geräten, die man entwickelt, stellt man manchmal fest, dass noch ein spezielles Hilfsmittel benötigt wird. Dann entwickelt sich Ihr kleines Projekt zu einem Metaprojekt, um ein Werkzeug zu entwickeln, das bei der Arbeit anderer Werkzeugen hilft.

So erging es den Leuten von Pi Towers, die an ihren RP2040-Mikrocontrollern arbeiteten - dem Kraftpaket der Raspberry-Pi-Pico-Reihe preiswerter Mikrocontroller-Boards in Kaugummistreifengröße. Sie hatten das Bedürfnis, die Arm-Cortex-M0+-basierten Mikrocontroller effizient auf Hardware-Ebene zu debuggen.

Der Debug-Prüfkopf für den Raspberry Pi wurde geboren

Raspberry Pi Debug Probe
Raspberry-Pi-Debug-Prüfkopf. Quelle: Raspberry Pi

Zweifelsohne hatten sie bereits eine ganze Schublade voller Debug-Tools und Kabel, genau wie wir und Sie auch (wie viele USB-zu-UART/FTDI-Wandler haben Sie?). Diese Tools sollten die Dinge in Ordnung bringen und etwas schaffen, das fast Plug-and-Play ist. Nun, zumindest von außen betrachtet — das Debuggen von Assembler auf einem Mikrocontroller ist kaum Plug-and-Play, aber wir können versuchen, die Aufgabe ein wenig aufgeräumter zu gestalten.

Da der erste hauseigene RP2040-Mikrocontroller der Raspberry Pi Foundation zwei Arm-Kerne besitzt, haben sie einen Zweidraht-SWD-Port (Serial Wire Debug) direkt an zwei Pins des RP2040 angeschlossen.

Das Raspberry-Pi-Pico-Board, das auf dem RP2040 basiert, stellt sogar diese Zweidraht-Schnittstelle (plus Masse) auf einer speziellen Stiftleiste (die je nachdem, ob Sie die „H“-Variante des Boards kaufen oder nicht, bestückt sein kann). Aber es ist nützlich, wenn Sie viel im praktischen Einsatz debuggen.

Debug Header
Debug-Header auf dem Raspberry Pi Pico.

Es gibt bereits Leute, die größere Raspberry Pi-Geschwister verwenden, um den Raspberry Pi Pico über diese Zweidrahtschnittstelle programmieren. Wenn man jedoch einen PC oder Mac als Hauptentwicklungsgerät verwendet, ist es etwas verschwenderisch, wenn man all die Rechenleistung auf einem Raspberry Pi 3 oder Pi 4 nur als Vermittler nutzt und dessen HDMI-, Kamera- und Display-Anschluss, USB und so weiter alle ungenutzt bleiben. Außerdem wissen wir alle, dass es einen Mangel an diesen begehrten größeren Boards gibt, so dass es keinen Sinn hat, sie ungenutzt zu lassen.

Der Debug-Prüfkopf für den Raspberry Pi ist jetzt für die Öffentlichkeit verfügbar, wie Eben Upton diese Woche in einem Blogbeitrag bekannt gab. Der Beitrag fasst das erforderliche „Tool for the Tool“ sehr gut zusammen. In der Tat basiert das Tool auf dem Tool, was bedeutet, dass dieses Gerät selbst RP2040-basiert ist und auf dem Sie weite Wege zurücklegen werden, wenn Sie RP2040-basierte Geräte wie den Raspberry Pi Pico debuggen wollen.

Das erste, was das Team unter der Leitung von James Adams (Hardware) und Jonathan Bell (Software) bei der Entwicklung dieser Lösung in Angriff nahm, waren die USB-zu-UART- oder die allgegenwärtigen FTDI-Boards, die immer zufällig in jedem Embedded-Labor verstreut sind wie LEGO-Steine in einem Kinderzimmer. Der Debug-Prüfkopf übernimmt diese Aufgabe sofort „out of the box“. Selbst wenn Sie die Debugging-Funktionen überhaupt nicht nutzen wollen, haben Sie bereits einen „sprechenden“ UART, wenn Sie ihn brauchen.

Zugegeben, FTDI-Adapter sind bei Amazon und Co. für die Hälfte des Preises zu haben, aber diese UART-Adapter dienen auch nur diesem (wenn auch sehr notwendigen) Zweck.

Hier kommt die Debugging-Schnittstelle des Prüfkopfes ins Spiel. Direkt neben dem dreipoligen UART-Anschluss befindet sich der DBUG-Anschluss. Beide sind mit einem dreipoligen JST-Verbinder vom Typ SH mit einem Raster von 1,0 mm ausgestattet und entsprechen der Raspberry Pi 3-Pin Debug Connector Specification. Wir müssen also sicherstellen, dass wir den richtigen Stecker auf den richtigen Verbinder stecken, wenn wir mit dem richtigen Gerät sprechen wollen.

RPi Debug Probe included JST cables.
Raspberry Pi Pico Debug-Header inklusive JST-Kabel. Quelle: Raspberry Pi

Wie im Foto oben zu sehen ist, sind alle notwendigen JST-Kabel im Paket enthalten.

A top view of the debug probe

Das sind also eine USB-zu-UART-Brücke auf der linken Seite und eine USB-zu-SWD-Brücke auf der rechten Seite. Check.

Die Debugging-Schnittstelle ist kompatibel mit CMSIS-DAP, so dass die sofortige Kommunikation mit Arm-basierten Chips problemlos möglich ist.

Was die auf der Computerseite verwendete Debugging-Software angeht, so setzt man im Pi House auf OpenOCD,  das Open-Source-Debugging-Tool, das ursprünglich als Diplomarbeit entstand. Mit einem einfachen apt-get install openocd lässt es sich auf Debian-Varianten wie Raspberry Pi OS auf einem Raspberry Pi 4 installieren, falls Sie dieses als Debugging-Terminal verwenden möchten. Natürlich sind auch Pakete für Windows und Mac verfügbar.

Einige unserer unerschrockenen Ingenieure könnten meinen, Wenn das Gerät schon auf der Hardware eines Raspberry Pi Pico basiert und mit der quelloffenen Firmware Rasberry-Pi-Picoprobe läuft, warum kann man nicht einfach einen Raspberry Pi Pico verwenden, ihn mit einer Debug-Firmware flashen und ein paar Messleitungen anlöten? Nun, das könnte man natürlich tun, aber angesichts der Tatsache, dass der Debug-Prüfkopf eine elegante, zweckgebundene Lösung zu einem so niedrigen Preis bietet, lohnt sich der Aufwand kaum. Sie haben bereits alle Hände voll zu tun, um Ihr Arm-basiertes Zielgerät zu programmieren; da brauchen Sie sich nicht durch die Neuerfindung dieses Rads ablenken zu lassen.

Apropos elegant: Der Debug-Prüfkopf ist in einem attraktiven, halbtransparenten Kunststoffgehäuse mit stilvollem Design untergebracht, durch das die On-Board-LED, deren Blinken nützliche Hinweise liefert, gut zu sehen ist. Außerdem sind alle Steckerleisten bereits auf der Platine montiert. Und: Von USB bis JST, alle Kabel, die man braucht, sind vorhanden, so dass man den Prüfkopf anschließen und sofort loslegen kann.

In den Kommentaren zu Ebens Beitrag wurde bemängelt, dass man sich für Micro-USB anstelle von USB-C als computerseitige Schnittstelle entschieden hat. Da aber der Raspberry Pi Pico, der bereits über einen Micro-USB-Anschluss verfügt, wahrscheinlich mein primäres Zielgerät für das Debugging sein dürfte, bin ich nicht sonderlich scharf darauf, einen Steckertyp für den Pico und einen anderen für den Prüfkopf zu haben. Zudem wird der Prüfkopf bereits mit einem USB-A-auf-Micro-USB-Kabel geliefert, so dass Sie ihn an fast jeden Computer anschließen können, wie Sie es wahrscheinlich schon mit Ihrem Pico tun.

Wenn man bedenkt, dass der Debug-Prüfkopf zu einem Preis von unter 15 € angeboten wird, ist er einfach eine saubere, unauffällige Lösung, die einen kleinen, aber wichtigen Platz im Werkzeugkasten eines jeden Arm-Entwicklers einnehmen wird.

Er ist klar dokumentiert und hübsch (aber nicht übertrieben) verpackt, wie man es von einem Raspberry Pi-Produkt erwarten kann. Man kann man sofort drauflosdebuggen, anstatt erst sechs verschiedene Hersteller-Websites aus aller Welt zu googeln, um sich einen Überblick zu verschaffen.

Neben der Dokumentation ist auch der Support wichtig, und Raspberry Pi hat sich im n seiner Obsolescence Statement verpflichtet, dieses Produkt bis mindestens 2030 herzustellen.

 
Übersetzung: Sophia Gerstendorf