Als je bezig bent met de producten die je ontwerpt, merk je soms dat je een op maat gemaakt hulpmiddel nodig hebt. Dan ontwikkelt je kleine project zich tot een veel groter geheel om een soort mal te maken voor dat hulpmiddel. 

Dat is wat er gebeurde met de mensen van Raspberry Pi die werkten met hun eigen RP2040 microcontrollers - de motor van goedkope Raspberry Pi Pico serie microcontrollerboards ter grootte van een kauwgomstick: Ze wilden de Arm Cortex M0+ gebaseerde MCU's efficiënt debuggen, op hardwareniveau.

De geboorte van de Raspberry Pi Debug Probe is een feit

Raspberry Pi Debug Probe. Bron: Raspberry Pi

Ongetwijfeld hadden ze al een lade vol debug-gereedschap en bijbehorende bedrading, net als de rest van ons. (Hoeveel USB-naar-UART / FTDI boards heb jij?) Ze wilden de boel opruimen en iets ontwerpen dat plug-and-play is. Nou ja, zo goed als - debug gereedschap voor een microcontroller is zelden plug-and-play, maar we kunnen hiermee proberen de werkbank wat overzichtelijker te maken.

Omdat de debuterende RP2040 microcontroller van de Raspberry Pi Foundation uit twee Arm-kernen bestaat, hebben ze een tweedraads seriële debug (SWD) poort direct op twee van de pinnen van de RP2040 aangebracht. 

Het RP2040-gebaseerde Raspberry Pi Pico board heeft deze tweedraads interface (plus massa) zelfs aangebracht gekregen op een speciale header (die al dan niet geplaatst is, afhankelijk van of je de 'H' variant van het board koopt). Dat is handig om erbij te hebben als je veel debugging in de praktijk doet.

Debug Header on the Raspberry Pi Pico.

Mensen hebben al grotere Raspberry Pi verwanten gebruikt om de Raspberry Pi Pico op een nette manier te programmeren met alleen deze tweedraadsinterface. Maar als je een PC of Mac gebruikt als je belangrijkste ontwikkelterminal, is het een beetje zonde om al die rekenkracht op een Raspberry Pi 3 of 4 te hebben zitten die alleen maar als "doorgeefluik" wordt gebruikt. Dit betekent namelijk dat zijn HDMI-aansluiting, camera-aansluiting, display-aansluiting, USB-aansluiting, etc. allemaal niet worden gebruikt. Bovendien weten we allemaal dat er een tekort is aan die populaire grotere boards, dus het is zonde om ze onderbenut te laten. 

De Raspberry Pi Debug Probe is nu beschikbaar voor het brede publiek. Zoals Eben Upton deze week in een blogpost aankondigde, is het een stuk "gereedschap voor het gereedschap". In feite is het gereedschap gebaseerd op het te repareren gereedschap. In andere woorden: je zult veel data loggen met dit op RP2040-gebaseerd apparaat, bij het debuggen van op RP2040-gebaseerde apparaten, zoals de Raspberry Pi Pico.

Het eerste wat het team, onder leiding van hardware-manager James Adams en software-manager Jonathan Bell, bij het ontwerpen van deze toepassing aanpakte waren de USB-naar-UART tools, oftewel de alomtegenwoordige FTDI boards, die meestal willekeurig over elk embedded lab zijn verspreid zoals LEGO stenen in een speelkamer. De Debug Probe regelt dat allemaal zo uit de doos, dus zelfs als je de debugfuncties helemaal niet gebruikt, heb je al een communicerende UART wanneer je die nodig hebt. 

Toegegeven, FTDI adapters zijn voor de helft van de prijs te koop bij Amazon en dergelijke, maar UART adapters dienen alleen dat (zij het zeer noodzakelijke) doel. 

Kijk even naar de debug-interface van de Probe. Direct naast de 3-pins UART header zit de DBUG header. Beide hebben een 1,0 mm pitch 3-pins JST 'SH' variant en voldoen aan de Raspberry Pi 3-pins Debug Connector Specificatie, dus we moeten er zeker van zijn dat we de juiste connector in de juiste aansluiting steken als we met het juiste apparaat willen communiceren.

Raspberry Pi Pico debug-header inclusief JST-kabels. Bron: Raspberry Pi

Zoals hierboven duidelijk is, wordt aan je behoeften voldaan wat betreft de JST-kabeltjes - deze zijn alle drie inbegrepen in het pakket.

Dat is dus links een USB-naar-UART bridge en rechts een USB-naar-SWD bridge.

De debug-interface is CMSIS-DAP-compliant, dus direct communiceren met Arm-gebaseerde chips gaat zonder problemen.

Wat betreft de debug-software die aan de computerkant wordt gebruikt, geven de mensen van Raspberry Pi de voorkeur aan OpenOCD, het open-source debug-gereedschap dat begon als een afstudeerscriptie. Het installeren ervan is zo eenvoudig als het runnen van apt-get install openocd op Debian varianten zoals Raspbian op een Raspberry Pi 4, mocht je die als debugterminal willen gebruiken. Natuurlijk zijn er ook pakketten voor Windows en Mac beschikbaar.

Dus, zoals sommige van onze enthousiaste technici zullen zeggen, waarom zou je dan niet gewoon een Raspberry Pi Pico gebruiken, deze flashen met wat debug-firmware en er wat bedrading op solderen? Dit aangezien de tool gebaseerd is op de Raspberry Pi Pico hardware en de open-source Raspberry Pi Picoprobe firmware draait. Dat zou natuurlijk kunnen, maar aangezien de Debug Probe een speciaal gebouwde en elegante oplossing biedt voor zo'n lage prijs, is het nauwelijks de moeite waard. Je hebt je handen al vol aan het programmeren van je Arm-gebaseerde board; je hebt deze afleiding van het opnieuw uitvinden van dit wiel niet nodig.

En, over elegant gesproken, hij wordt geleverd met een aantrekkelijke halfdoorzichtige plastic behuizing met een stijlvol ontwerp, zodat de on-board LED zijn meldingen er doorheen kan weergeven. Verder zijn alle connector-headers al op het board gemonteerd. Bovendien heeft hij alle kabels die je nodig hebt - van USB tot JST - om in te pluggen en aan de slag te gaan. 

In de commentaren op Eben's bericht werd wat gemopperd over de keuze voor Micro-USB in plaats van USB-C als interface aan de computerzijde. Aangezien de Raspberry Pi Pico, die al een Micro-USB connector heeft, waarschijnlijk mijn voornaamste doel voor debugging zal zijn, ben ik er niet zo happig op om één type connector voor de Pico te hebben en een ander voor de Probe. Bovendien wordt de Probe al geleverd met een USB-A-naar-Micro-USB kabel, dus je kunt hem op vrijwel elke computer aansluiten, zoals je waarschijnlijk ook al doet met je Pico.

In aanmerking genomen dat de Debug Probe een prijs heeft van minder dan € 15, is het gewoon een nette, onopvallende toepassing, die een kleine, maar prominente plaats inneemt in de gereedschapskist van elke Arm-ontwikkelaar. 

Het is duidelijk gedocumenteerd en mooi (maar niet overdreven) verpakt, zoals je van een Raspberry Pi-product mag verwachten, zodat je meteen aan de slag kunt, in plaats van 6 verschillende websites van fabrikanten uit de hele wereld te moeten googelen om een idee te krijgen van de mogelijkheden.

Naast documentatie telt ook de support, en Raspberry Pi heeft in hun verklaring omtrent de levensduur toegezegd dit product tot zeker 2030 te produceren.

 
Vertaling: Hans Adams