Gestern, zusammen mit der Ankündigung von Raspberry Pis neuem $12 Debug Probe, ich habe eine per Post erhalten (Bild oben).
Die Debug Probe wird von einem RP2040 angetrieben, und ermöglicht die Verbindung von USB zu UART (seriell) oder SWD (Serial Wire Debug), perfekt zum Debuggen der meisten eingebetteten Geräte.
UART ist nützlich, um eine Verbindung zur Konsole eines Geräts herzustellen, wenn Sie kein Display haben oder andere Möglichkeiten, es zu steuern, und Sie können UART/serielle/Konsolenanschlüsse auf fast jedem Gerät mit einem Prozessor oder Mikrocontroller finden.
SWD ist nützlich beim Debuggen von ARM-SoCs, wie dem RP2040, das auf dem Raspberry Pi Pico verwendet wird. Ich habe es in der Vergangenheit auch verwendet, als ich die Firmware auf meinem Turing Pi 2 aktualisierte, der einen anderen ARM-Chip zum Ausführen seines BMC oder Board Management Controller verwendete.
Traditionell gab es USB-zu-UART-Adapter mit unterschiedlicher Unterstützung für ein paar Dollar bis zu mehreren zehn Dollar, aber wenn ich in meinen UART-Papierkorb schaue, denke ich, dass ich einige der populäreren markenlosen Adapter abdecke, die viele Elektronik-Nerds herumliegen haben könnten:
Die Debug Probe fügt SWD hinzu und hat dafür einen separaten Port, also konkurriert es auch mit SWD-Geräten wie dieser Kopie des SEGGER J-Link BASE Debugger, der 500 $ kostet!
Das SEGGER EDU kann sein für schulische und nichtkommerzielle Zwecke für 70 US-Dollar gekauft, aber das ist immer noch ein ziemlich hoher Preis, um in das SWD-Debugging-Spiel einzusteigen.
Also für eine Gesamtsumme von 12 US-Dollar für Pi’s Debug Probe, was tun Sie bekommen?
Was Sie in – und auf – der Verpackung bekommen
Viele Leute fragen: „Warum sollten Sie Raspberry Pi kaufen, wenn es tausend ausländische Nachahmerplatten gibt, die nur halb so groß sind Preis?”
Nun, öffnen wir die Debug Probe und ich zeige Ihnen einen guten Grund – unter dem Deckel werden Sie mit einer einfachen Illustration begrüßt, die den Zweck des mitgelieferten Zubehörs und die Pinbelegung erklärt für die mitgelieferten Breakout-Drähte.
Es ist diese skurrile und einfache Ergänzung, die die Arbeit mit Pi-Produkten so viel angenehmer macht. Viele andere Geräte werden in einer antistatischen Tüte geliefert oder einfach in eine versiegelte Plastiktüte geworfen. Und Sie verlassen sich oft auf Blogposts oder Notizen am Ende einer Adafruit-Produktseite, um mit der Verwendung zu beginnen.
Wenn ich zur Debug Probe-Produktseite gibt es detaillierte Bilder und eine vollständige, leicht verständliche Dokumentation von Erstanbietern!
Aber nachdem Sie diese Dokumentationsklappen geöffnet haben, gibt es sie die Debug-Sonde in ihrem niedlichen kleinen durchsichtigen Schnappgehäuse:
Abgesehen davon sind die Kabel ordentlich darunter gepackt:
Es ist ein wenig ärgerlich, dass Pi auf diesem Board mit Micro-USB feststeckt:
USB-C ist jetzt fair Standard bei einer Vielzahl von Embedded-Geräten, daher ist es ein wenig ärgerlich, ein anderes Gerät zu haben, das das Anhängen an ein Micro-USB-Kabel erfordert. Vielleicht machen sie eine v2 mit USB-C, sobald sie den riesigen Vorrat an Micro-USB-Anschlüssen und-Kabeln, die sie herumliegen haben, überwunden haben. Zumindest verwenden sie es konsequent bei den”eingebetteten”und leistungsschwächeren Produkten (Pico, Zero, Debug Probe und Keyboard).
Serielles UART-Debugging
Seit ich Da ich derzeit nicht darauf eingerichtet bin, etwas Bestimmtes auf einem Pico zu debuggen, und einige meiner anderen ARM-basierten Boards gerade weggepackt sind, wollte ich die Probe schnell auf einem Raspberry Pi testen und nur prüfen, ob ich seine Konsole sehen kann Ausgabe über UART (siehe meinen älteren Artikel, der ausführlicher auf UART/serielles Debugging auf dem Raspberry Pi eingeht).
Ich habe die Box an die entsprechenden Pins auf dem Pi 4 angeschlossen – Schwarz an GND, Orange an GPIO 14/Pin 8 (UART TX) und Gelb an GPIO 15/Pin 10 (UART RX):
Dann habe ich die Probe an den USB-Port meines Mac angeschlossen und lsusb ausgeführt, und sah:
Bus 002 Gerät 001: ID 2e8a:000c 2e8a Debug Probe (CMSIS-DAP) Serial: E6616407E330212C
Ein gutes erstes Zeichen Debug Probe hat eine helle rote LED, die leuchtet, wenn sie eingeschaltet ist, was eine nette Geste ist:
Ich habe auch in/dev geschaut und das Gerät/dev/tty.usbmodem2102 gefunden. Ich öffnete CoolTerm und stellte den Port auf usbmodem2102 und die Baudrate auf 115200 ein. Nachdem ich dann sichergestellt hatte, dass der Pi enable_uart=1 hatte in seiner Datei/boot/config.txt konfiguriert, habe ich den Pi neu gestartet und CoolTerm angesehen:
Es funktioniert!
Um das Arbeiten über die serielle Verbindung etwas einfacher zu machen, Ich habe auch den „Raw-Modus“ für den Terminalmodus von CoolTerm eingestellt, „Lokales Echo“ deaktiviert und die Emulationseinstellung der Eingabetaste auf „CR“ gesetzt, damit ich keine doppelten Zeilen bekomme, wenn ich die Eingabetaste drücke.
Debugging a Pico
Wie ich bereits erwähnt habe, habe ich keine aktiven Pico-Projekte, die ich mit SWD anzapfen könnte, und hatte keine Zeit, eine Demonstration einzurichten – ich vertraue darauf, dass die Dokumentation von Raspberry Pi da ist solide.
Aber ich wollte auf einen Hardwareunterschied zwischen Pico und Pico W hinweisen:
Die Picos Die Header befinden sich am Rand der Platine, während sich die Header des Pico W in der Mitte befinden, ganz in der Nähe des RP2040-Chips.
Raspberry Pi verkauft die Version, die ich abgebildet habe, oder’H’-Varianten mit vorgelöteten JST-Header – siehe das zweite und vierte Bild in dieser Serie von Pis Website:
Wenn Sie die Version ohne Stiftleisten haben, ist es möglicherweise am einfachsten, einige Stiftleisten anzulöten und dann den Buchsenstiftadapter zu verwenden. Obwohl Sie möglicherweise einen JST-Durchgangsloch-Header finden, den Sie in die Pins auf den Nicht-H-Platinen löten könnten.
Fazit
Neben dem SEGGER J-Link gibt es andere Geräte, die fähig sind von SWD, zumindest, das wird die Bank nicht sprengen:
Black Magic Probe ($75): Dies kommt der Debug Probe im Geiste wahrscheinlich am nächsten. Es ist ein wenig teuer, bietet Ihnen aber zusätzlich zu SWD JTAG und hat eine Menge getesteter Unterstützung für verschiedene SoCs – die Debug Probe unterstützt offiziell Pi-Geräte wie den Pico, nicht alles unter der Sonne. SAMD11C SWD Programmer Stick (OSHW): Dies ist ein Open-Source-Hardwaregerät, das Sie selbst bauen könnten, wenn Sie möchten also wähle. SWD Programmer & Debugger ($15): Nur SWD, aber trotzdem eine nette kleine Alternative.
Am Ende werfe ich diese Debug-Probe gerne in meinen Mülleimer mit meinen anderen Probes – die Tatsache, dass sie auf einem RP2040 selbst läuft, bedeutet, dass die Firmware im Laufe der Zeit gewartet und aktualisiert wird. Und es ist wahrscheinlich, dass viele Kompatibilitätsfehler ausgearbeitet werden, so dass die Debug-Sonde für ein 12-Dollar-Gerät eine Menge Kilometer sammeln wird!
Da ich die SWD-Unterstützung beschönigt habe, habe ich nicht einmal die aktuelle Software erwähnt Seite mit OpenOCD.
Weitere Informationen zu SWD und OpenOCD finden Sie in diesen Artikeln: