Vous avez parfois besoin d'un outil personnalisé pour vous aider lorsque vous travaillez sur les produits de votre conception. Ensuite, votre petit projet évolue en méta-projet, pour se transformer en gabarit permettant de travailler d'autres outils.

C'est ce qui s'est passé avec les membres de Pi Towers qui travaillaient sur leurs microcontrôleurs RP2040,  la locomotive de la gamme Raspberry Pi Pico, les cartes à microcontrôleurs bon marché de la taille d'un paquet de chewing-gum : Ils avaient besoin de déboguer efficacement les MCU basés sur l'ARM Cortex M0+, au niveau matériel.

La sonde de déboggage Raspberry Pi est née

Raspberry Pi Debug Probe
Sonde de déboggage Raspberry Pi. Source : Raspberry Pi

Il ne fait aucun doute qu'ils avaient déjà un tiroir plein d'outils de débogage et de fils comme chacun d'entre nous. (Combien de cartes USB vers UART / FTDI possédez-vous ? ). Ils voulaient mettre les choses au point et concevoir quelque chose qui soit presque plug-and-play. Enfin, du moins en apparence, le débogage d'un assemblage sur un microcontrôleur n'est guère plug-and-play, mais nous pouvons essayer de rendre le poste de travail un peu plus ordonné.

Comme le premier microcontrôleur RP2040 de la Fondation Raspberry Pi est composé de deux cœurs ARM, ils ont intégré un port de débogage en série (SWD) à deux fils directement sur deux des broches du RP2040.

En fait, votre carte Raspberry Pi Pico basée sur le RP2040 dispose elle-même de cette interface à deux fils (plus la masse) sur un connecteur spécial (qui peut ou non être rempli, selon que vous achetez la variante 'H' de la carte). Mais, il est utile de l'avoir à disposition si vous faites beaucoup de débogage sur le terrain.

Debug Header
Broches de déboggage sur le Raspberry Pi Pico.

Pour programmer le Raspberry Pi Pico de manière plus poussée, des personnes ont déjà utilisé les grands-frères Raspberry Pi en prenant simplement cette interface bifilaire, mais, lorsque vous utilisez un PC ou un Mac comme principal terminal de développement, avoir toute cette puissance de calcul sur un Raspberry Pi 3 ou 4 qui n'est utilisé que comme intermédiaire, avec son HDMI, son connecteur de caméra, son connecteur d'écran, son USB, etc. qui ne sont pas utilisés, c'est un peu du gaspillage. De plus, nous savons tous que à cause de la pénurie de ces cartes plus grandes, il est dommage de ne pas les utiliser à leur pleine capacité. 

La sonde de débogage Raspberry Pi est désormais disponible au public, comme l'a annoncé Eben Upton dans un article de blog cette semaine. Elle résume parfaitement le concept « d'outil pour l'outil » . En fait, l'outil est basé sur l'outil, ce qui signifie que ce dispositif est basé sur un RP 2040, pour pouvoir y passer de nombreuses heures pour le débogage des équipements basés sur RP2040 tels que le Raspberry Pi Pico.  

L'USB-vers-UART, ou les omniprésentes cartes FTDI généralement réparties au hasard comme les briques Lego dans une salle de jeux, a été la première tâche à laquelle s'est attelé l'équipe dirigée par James Adams, responsable du matériel, et Jonathan Bell, responsable du logiciel. La sonde de débogage s'occupe de cela dès la sortie de la boîte. Ainsi, même si vous n'utilisez pas toutes les fonctions de débogage, vous avez déjà votre UART fonctionnelle à disposition.

Il faut admettre que les adaptateurs FTDI sont disponibles pour la moitié du prix chez Amazon et autres, mais quoique nécessaire, les adaptateurs UART ne servent qu'à cela.

Entrez dans l'interface de débogage de la sonde. Juste à côté du connecteur UART à 3 broches se trouve le connecteur DBUG. Ces deux connecteurs sont de type JST 'SH' à 3 broches avec un pas de 1,0 mm et sont conformes à la spécification des connecteurs de débogage à 3 broches de Raspberry Pi. Nous devons donc nous assurer de mettre la bonne fiche dans la bonne prise si nous voulons communiquer au bon dispositif.

RPi Debug Probe included JST cables.
Sonde de débogage Raspberry Pi Pico avec câbles  JST inclus. Source : Raspberry Pi

C'est une évidence ci-dessus, vos besoins sont pris en charge en matière de câbles JST, les trois sont inclus dans le kit.

A top view of the debug probe

Ainsi donc, c'est un pont USB vers UART sur la gauche, et un pont USB vers SWD sur la droite. Vérifiez. 

L'interface de débogage est conforme à la norme CMSIS-DAP, ce qui permet de communiquer sans difficultés avec les puces basées sur la technologie Arm.

En ce qui concerne le logiciel de débogage utilisé du côté de l'ordinateur, les gens de Pi House préfèrent OpenOCD, l'outil de débogage open-source qui provient d'un diplôme de thèse.  Il suffit d'installer « apt-get install openocd » sur des variantes de Debian comme Raspbian sur un Raspberry Pi 4, si vous choisissez de l'utiliser comme terminal de débogage. Bien sûr, des paquets pour Windows et Mac sont également disponibles.

C'est pourquoi, comme certains de nos intrépides ingénieurs pourraient le dire, puisque le dispositif est basé sur le matériel Raspberry Pi Pico et exécute le firmware open-source Raspberry Pi Picoprobe, pourquoi ne pas simplement utiliser un Raspberry Pi Pico, le flasher avec un firmware de débogage et souder quelques fils de test ? Vous pourriez, Bien sûr c'est envisageable, mais étant donné que la sonde de débogage offre une solution élégante et adaptée à un prix aussi bas, cela n'en vaut pas la peine. Vous êtes déjà bien occupé  à programmer votre système à base de ARM, inutile de réinventer la roue dans ce cas. 

De plus, par rapport au design, il est livré avec un joli boîtier en plastique semi-transparent à la mode, à travers lequel la LED embarquée fait clignoter les notifications utiles. Ensuite, tous les connecteurs sont déjà montés sur la carte. De plus, il dispose de tous les câbles nécessaires, de l'USB au JST, pour se brancher et se lancer.

En regardant les commentaires sur le post d'Eben, il y a eu quelques récriminations sur le fait d'avoir opté pour l'interface Micro-USB au lieu de l'USB-C côté ordinateur. En ce qui me concerne, étant donné que le Raspberry Pi Pico avec son Micro-USB est susceptible d'être mon principal périphérique cible pour le débogage, je ne suis pas très enthousiaste à l'idée d'avoir un certain type de connecteur pour le Pico et un autre pour la sonde. De plus, la sonde est déjà livrée avec un câble USB-A vers Micro-USB, vous pouvez donc la brancher sur n'importe quel ordinateur, comme vous le faites déjà avec votre Pico.

Gardant à l'esprit que la sonde de débogage coûte moins de 15 euros, il s'agit d'une solution soignée et discrète qui occupera une place modeste, mais importante, dans la boîte à outils de tout développeur Arm. 

C'est clairement documenté et bien ( mais pas excessivement) emballé, de sorte que vous pouvez être opérationnel immédiatement, au lieu de chercher six sites web différents avec Google pour commencer à faire quelque chose.

En plus de la documentation, l'assistance compte également, et Raspberry Pi s'est engagé à fabriquer ce produit jusqu'en 2030 au moins dans sa déclaration d'obsolescence.

 
Traduction : Laurent RAUBER