La carte Raspberry Pi Pico annoncée aujourd'hui n'est pas une carte Raspberry Pi comme une autre, qui serait juste un peu différente. Non, Raspberry Pi Pico est un module doté sur – et c'est ça la grande nouvelle – un microcontrôleur RP2040. Pourquoi serait-ce une grande nouvelle ? Parce que ce microcontrôleur a été conçu par Raspberry Pi !

Et ça, qu'est-ce que t'en dis ?

Pourquoi concevoir ton propre microcontrôleur au lieu d'en choisir un qui existe ? Eh bien, selon Raspberry Pi, aucun des produits existants n'est satisfaisant pour son rapport prix/performance. Ils en ont profité pour incorporer des fonctions innovatrices et puissantes, inconnues ailleurs quel que soit le prix. Enfin, la conception de leur propre microcontrôleur a été l'occasion pour eux de créer une pile logicielle et une documentation à la hauteur des standards élevés de leurs propres produits "de base" Raspberry Pi.

Le RP2040

Les deux coeurs ARM Cortex-M0+ du microcontrôleur Raspberry Pi RP2040 sont cadencés à 133 MHz et flanqués de 264 Ko de RAM. La mémoire du programme est externe et sa taille peut atteindre 16 Mo. La bête a tout ce que l'on attend d'un microcontrôleur moderne, notamment  des ports UARTS, SPI et I2C, des temporisateurs, PWM, DMA et un convertisseur analogique-numérique (CA/N) de 12 bits. Au rang des caractéristiques inédites du RP2040, il y a deux blocs PIO.

Les blocs PIO ?

PIO signifie entrée/sortie programmable, ce qui veut dire interface matérielle polyvalente compatible avec une variété de standards d'E/S. Chaque bloc PIO contient quatre automates finis (appelés state machines en anglais), programmables, que l'on peut voir comme de minuscules microcontrôleurs. Pour rester dans la terminologie Raspberry Pi, on pourrait appeler ça des picocontrôleurs. Leurs entrées et sorties peuvent être connectées à n'importe quelle broche GPIO et elles peuvent être reconfigurées à la volée.

Bibliothèques intégrées

Pour améliorer les performances du processeur, RPI y a intégré des bibliothèques pour les calculs en virgule flottante de précision unique, les manipulations rapides de bits et les fonctions de déplacement et de copie de mémoire.

Raspberry Pi affirme que le RP2040 devrait être capable de rivaliser avec les appareils établis sur ARM-Cortex-M4.

La carte Raspberry Pi Pico

La Raspberry Pi Pico est la première carte à microcontrôleur basée sur un RP2040. Elle ressemble beaucoup aux autres cartes à microcontrôleur avec l'unité centrale au milieu, un connecteur micro-USB à une extrémité et une rangée de contacts de l'autre. Dans l'autre coin de la carte, il y a un connecteur de débogage à 3 broches.

Raspberry Pi Pico
Le microcontrôleur au centre de la carte Raspberry Pi Pico est un RP2040.

Ses dimensions, 51 x 21 mm, sont celles du Pico ESP32 (tiens, un autre "pico"...), il est légèrement plus grand qu'un Arduino Nano ou Micro (ah, ceux-là ne s'appellent pas pico...) et un peu plus petit qu'un Arduino MKRZero, basé aussi sur un ARM Cortex-M0+, mais à un seul noyau.

En termes de coûts, le RPico est très bien situé puisqu'il se vend environ cinq euros, comme la carte STM32 BluePill, sur laquelle se trouve un ARM Cortex-M3. Le RPico est livré avec 2 Mo de mémoire Flash QSPI et 25 des 30 broches GPIO du RP2040 sont accessibles sur les connecteurs d'extension.

Un outil de conception pratique et complet

Pour créer des applications pour la RP2040 et la carte Pico en langage C, C++ ou assembleur, tu devras installer le SDK. Avec lui, tu peux construire n'importe quoi, du simple programme LED blinky jusqu'à des environnements d'exécution complets comme MicroPython (voir ci-dessous).

Le SDK comprend une bibliothèque de fonctions PIO prédéfinies, mais tu peux aussi, bien sûr, construire la tienne. Comme plusieurs de ces blocs préfabriqués concernent des applications graphiques comme les chaînes de LED et les pilotes d'affichage, on peut s'attendre à voir le RP2040 apparaître dans des applications multimédia. D'ailleurs une des applications de démonstration pour la carte Pico est une visionneuse de films VGA où les blocs PIO du RP2040 délivrent le signal vidéo en temps réel.
Le SDK fonctionne, bien sûr, sur un Raspberry Pi, mais pas seulement. Avec lui, tu pourras créer des applications dans l'environnement de conception intégré (IDE) Visual Studio Code. La carte Pico elle-même peut être connectée soit à un port USB pour la programmation par glisser-déposer, soit au connecteur d'extension à 40 broches du RPi pour utiliser GDB et OpenOCD sur le SWD. Tout cela est très pratique et bien documenté.

MicroPython

Pour ceux qui préfèrent programmer en Python, il existe MicroPython, qui a été porté sur RPico (y compris le support à noyaux multiples). Sachant que MicroPython ressemble fort à un Python normal, la carte RPico peut, en théorie, faire tourner des applications Python conçues pour une autre carte Raspberry Pi.

Hue Pico !

Pour Arduino et les plateformes similaires, le Raspberry Pi Pico sera probablement un concurrent redoutable car moins cher et doté de fonctions de débogage. On verra peut-être bientôt une carte Arduino établie sur RP2040...?

L'objectif de Raspberry Pi a toujours été de rendre l'informatique accessible à tous. Avec le RP2040 et la carte Pico, ils veulent faire la même chose pour les microcontrôleurs. Advienne que pourra, en attendant ils ont déjà fait un sacré boulot !

Tu en veux un ? Clique ici !