Pico2 Wireless (RP2350) - Microcontrôleur 2 coeurs Raspberry-Pi (ARM Cortex M33 & RISC-V) - WiFi 2.4 GHz - Bluetooth
100 Max. par commande
Microcontrôleur Raspberry-Pi Pico 2 Wireless
- RP2350A, 2 Coeurs au choix (au boot)
- Cortex M33 avec FPU et DSP @ 150 MHz
- RISC-V Hazaerd3 @ 150 MHz - 4 Mio Flash (QSPI)
- 8Kio OTP (on-chip)
- 512 Kio SRAM
- Wireless module CYW43439
- WiFi 2.4 GHz 802.11n
- Bluetooth 5.2 - 1x USB Hôte et Client
- 3x Block PIO (12 State Machines)
- 26x GPIO @ 3.3V (5V tolerant)
- 4x ADC 3.3V 12bits (3x utilisateurs, 1x VSys, 1x température)
- 24x PWM
- 2x UART, 2x I2C, 2x SPI
- SD IO, VGA IO, HDMI/DVI IO (via TMDS encoder)
- SWD debug port (Open OCD)
- Options de sécurités pour professionnels
- 100% compatible Pico original (form-factor & Software)
Les paiements sont sécurisés par LyraCollect, une société de collecte de paiements française
Il est possible de se faire livrer chez soi, en point relais ou retirer sur rendez-vous chez MCHobby
Nous préparons, emballons et expédions vos commandes avec un grand respect et un grand soin.
Le microcontrôleur Raspberry-Pi Pico 2 Wireless, un double coeur Cortex M33 / RISC-V pour vos développements C++ ou MicroPython
Faut-il encore présenter le Pico 2 et son microcontrôleur RP2350A? Il fallait se douter qu'une version Wireless (sans-fil) ferait son apparition dans la foulée.
Comme le Pico Wireless, ce module est équipé d'un module WiFi CYW43439 d'Infineon offrant un support Wi-Fi 2.4 GHz (monoband) 802.11 b/g/n ainsi que le Bluetooth 5.2 (voir fiche Infineon).
Le Pico 2 est second microcontrôleur créé par le fondation Raspberry-Pi, le RP2350. basé sur Cortex-M33 double coeurs à 150 Mhz épaulé par une mémoire flash de 4 Mio (QSPI). Le RP2350 dispose aussi d'une mémoire RAM de 512 Kio (presque le double du Pico original). Ce nouveau microcontrôleur est non seulement plus rapide mais il dispose aussi d'une vraie unité de calcul en virgule flottante double précision. Le RP2350 dispose également d'un support DSP pour le traitement de signal... tout en restant 100% compatible avec le Pico original (logiciel et matériel).
L'augmentation de fréquence d'horloge de 133 MHz à 150 MHz améliore aussi le temps d'accès à la RAM et à la mémoire Flash.
Le Pico 2 dispose exactement du même facteur de forme et même brochage que le Pico. Vous pouvez donc remplacer votre Pico par un Pico 2 dans vos projets.
Les 26 GPIOs accessibles de la carte offrent des caractéristiques intéressantes:
- Les GPIOs sont tolérant 5V
- Les 6 bus (2x I2C, 2x SPI, 2x UART) qu'il est possible de localiser à de très nombreux emplacements sur les GPIOs grâce au Bus Fabric.
- 24 canaux PWM.
- toujours 3 entrées analogiques @ 12 bits (500.000 échantillons par seconde).
- 16 canaux DMA (pour automatiser des transferts entres périphériques internes et la RAM)
Si la carte ne dispose pas de lecteur pour carte SD, le RP2350 dispose d'une interface SDIO. L'interface VGA est toujours disponible mais c'est le nouveau périphérique TMDS qui permettra de créer plus facilement une sortie HDMI/DVI-D. Le périphérique TMDS est le résultat immédiat du bloc HSTX (High Speed data Transmission) destiné à la transmission de données à haut débit.
Le support USB natif propose disponible le connecteur micro-USB permet au Pico 2 de supporter USB 1.1 en mode Client/Hôte (exactement comme le Pico original).
Cortex M33 ou Risc-V ( New )
L'une des grandes nouveautés du RP2350 est la possibilité d'utiliser soit les 2 coeurs Cortex M33, soit deux coeurs RISC-V (ou un coeur de chaque type).
La sélection des cores utilisés est opéré par la séquence de boot du Pico 2 qui est capable de détecter l'architecture utilisée dans le binaire utilisateur (celui qui doit être exécuté après le boot).
La fondation ouvre ainsi la porte des MCU RISC-V avec l'implémentation Open-Source Hazard3 (Dépôt GitHub).
Hazard3 prend en charge les spécifications RV32IMAC, une belle occasion de découvrir et tester le monde RISC-V sans devoir acheter un produit spécifique. Le fichier readme de Hazard3 inclus une documentation assez précise... incluant des notes pour mettre en place la chaîne de compilation.
A noter que Hazard3 est le fruit du travail personnel de Luke Wren, l'un des ingénieurs impliqués dans le projet Raspberry-Pi.
MicroPython dispose par ailleurs d'une implémentation RISC-V qui peut être testé sur le Pico 2 comme en témoigne cette vidéo (YouTube)
Consommation réduite en mode veille ( New )
L'une des grosses critiques du Pico original concernait le mode veille (deepsleep) qui consommait une courant de l'ordre de 1 à 2 milliampère. Bien qu'apparemment faible, cela limite la durée de vie d'un projet sur batterie à quelques semaines.
Le Pico 2 en mode veille réduit la consommation à moins de 10 µA, ce qui permet d'envisager une durée de vie de plusieurs mois sur batterie.
A noter qu'il est possible de maintenir la RAM interne sous-tension (retention mode) au prix d'un courant de veille plus important.
RAM en accès concurrent ( New )
Les 512 Kio de RAM sont répartis en 10 banques à accès concurrent! Cela signifie que chaque coeur peut accéder à son propre espace RAM en toute indépendance.
Cela autorise un périphérique tierce (ex: ADC, HSTX, PIO) à effectuer des transferts vers une banque mémoire sans être entravé par un autre processus.
Cette possibilité d'accès concurrent aux différentes banques permet ainsi d'éviter des temps d'attente imposés par une RAM ne supportant les accès concurrents. Il s'agit d'une optimisation importante permettant de maintenir de hautes performances.
Support pour RAM QSPI / PSRAM ( New )
Le bus QSPI (Quad SPI) est un bus SPI avec 4 lignes de données, ce qui permet de transférer plusieurs bits en un seul cycle d'horloge. Ce type de bus est déjà utilisé sur le Pico original pour accéder à la mémoire Flash.
Le microcontrôleur RP2350 apporte également le support de PSRAM externe déjà très populaire avec les plateformes ESP32.
Cela permet donc d'augmenter la quantité de RAM disponible sur le microcontrôleur allant jusqu'à atteindre 8 Mio.
Il faut cependant garder à l'esprit qu'une telle RAM est accédé par l'intermédiaire d'un bus série et sera forcement plus lente que la RAM interne.
Amélioration accès à la mémoire Flash ( New )
L'accès à la mémoire flash dispose d'une plus grande bande passante grâce à une technique de cache double-banked (word stripping).
Le support de l'interface XIP améliore les temps de transfert avec les modes de transfert accélérés (burst) en lecture/écritures, translation d'adresse et odd clock divisors.
Amélioration PIO ( New )
PIO (Programmable IO) est un langage de bas-niveau offre de vrais avantages concernant le traitement de données et manipulations des entrées/sorties en bas niveau. PIO offre des machines à état fini (StateMachine) associé à un GPIO et à une programme PIO (qui manipule le GPIO). Le programme sera exécuter à une fréquence entre 2000 Hz et 125.000.000 Hz (125 MHz). PIO permet d'envisager la réalisation d'application "time-critical" comme, par exemple, une sortie VGA, HDMI, transfert haut debit.
Le RP2350 se voit accompagné d'un 3ieme bloc PIO, ce qui porte le nombre processus PIO à 12 machine à état! (soit 12 mini-processus autonomes indépendants des processeurs).
Non seulement les PIO profitent de l'augmentation de fréquence à 150 MHz (contre 133 Mhz) mais le RP2350 dispose d'instructions supplémentaires.
Le nouveau périphérique HSTX (High Speed Transfert) permet de créer une sortie DVI avec une faible surcharge (faible impact) sur le système. Il est ainsi possible de créer une sortie VGA à 60 Hz sans overclocking avec deux pixels par tick de sortie.
Architecture sécurisée ( New )
La grande nouveauté du RP2350 est l'apport d'une architecture sécurisée. Si celle-ci intéressera surtout les professionnels, elle apporte aussi ses avantages aux monde des Makers.
RP2350 inclus la fonctionnalité "TrustZone for Cortex-M" qui permet d'isoler du code et ses données du reste de l'application. Les applications industrielle utiliserons cette fonctionnalité pour verrouiller leur firmware ou garder les éléments importants à l'abri des yeux indiscrets.
Les Makers pourrons utiliser cette fonctionnalité pour y cacher des jetons de connexion (Tokens) des clés d'accès aux API (API Keys), clé WiFi et des informations privées. Ainsi, si le projet se perd dans la nature, il n'y a aucun risque pour les données sensibles qu'il transporte.
L'architecture sécurisée inclus:
- Signature de boot (Signed boot)
- 8Kio de Mémoire antifuse OTP (one-time-programmable) offrant une excellente résistance aux attaques. Ce type de mémoire est idéal pour stocker une clé privée.
- Accélération matériel du hash SHA-256
- Un vrai générateur de nombre aléatoire matériel (TRNG)
- Détection de glitch pour résister aux attaques par injection électro-magnétique.
MCU en version A ou version B ( New )
Le microcontrôleur RP2350 existe en deux versions A et B (30 GPIOs et 48 GPIOs).
Celle équipant le Pico 2 est le RP2350A qui expose 30 GPIOs sur un composant en QFN60 (10x10mm) avec une mémoire Flash externe de 4 Mio (contre 2 Mio Pico original).
La révision RP2350B expose 48 GPIOs sur un composant en QFN80 (11x11mm).
Là où les choses deviennent intéressantes, c'est la disponibilité de RP2350 intégrant 2 Mio de mémoire Flash QSPI stacked-in-package (c'est à dire empilé au dessus microcontrôleur).
CCes nouvelles variantes portent les références RP2354A and RP2354B (avec le dernier chiffre 4 indiquant la quantité de mémoire Flash sur le microcontrôleur.
Nouveau SDK 2.0 ( New )
La sortie du nouveau RP2350 et du Pico 2 coïncide avec la sortie du SDK 2.0. Rien de vraiment étonnant puisqu'il faut pouvoir supporter les nouvelles fonctionnalités du RP2350.
Intégration RUST ( New )
Le langage RUST est devenu très populaire ces dernières années. Très similaire au C, RUST est surtout réputé pour sa fiabilité d'exécution (plus d'info en Français ou en Anglais).
La sortie du RP2350 coïncide avec la sortie de la couche d'abstraction matériel RUST pour le RP2350 (GitHub) ainsi que le Blog documentaire l'accompagnant
C/C++ ou MicroPython ou CircuitPython
Le Pico se programme en MicroPython ou en C++. Pour MicroPython, la fondation offre un firmware pré-compilé (fichier UF2) qu'il ne reste plus qu'a le téléverser sur le microcontrôleur. MicroPython peut fonctionner indépendamment sur les deux coeurs (module _thread) sans mécanisme de d'inter-blocage Python entre les threads. Il s'agit donc d'une vraie exécution concurrente, attention a bien protéger la mémoire partagée.
Pour les développements C/C++, la fondation s'appuie sur une chaîne de compilation open-source qui produit un fichier UF2 à téléverser sur le Pico. Le support du débogage sur le Pico est assuré via OpenOCD.
Toute l'information nécessaire est disponible sur pico.raspberrypi.org
Mode DFU et fichier UF2
Le Pico se programme simplement grâce au mode DFU. Presser le bouton "Bootsel" lors de la mise sous tension fais passer le microcontrôleur en mode DFU (Device Firmware Upgrade). Dans ce mode, le microcontrôleur expose la mémoire Flash comme un disque USB sur lequel il suffit de glisser le fichier UF2 fournit par le compilateur sur le disque pour reprogrammer la plateforme. Une fois le fichier UF2 complètement téléverser sur la carte, celle-ci redémarre pour exécuter le nouveau programme.
Pour mettre MicroPython sur votre Pico, passer en mode DFU puis glisser le firmware MicroPython (UF2) dans le lecteur. Après le redémarrage, MicroPython est actif sur la carte. Après plus besoin du mode DFU.
Programmation sous MicroPython
Bien que le RP2350 dispose des ressources nécessaires pour monter un Lecteur USB (USB 1.1 Hôte et client), ce support n'est pas activé dans le firmware MicroPython. MicroPython utilise plutôt la liaison USB-Série via le connecteur USB. Par conséquent, des outils comme Thonny IDE (graphique), mpremote (micropython) RShell ou Ampy permettent de manipuler le système de fichier présent sur le Pico.
CMS Ready
Le Pico est prévu est prêt pour le breadboard et pour la soudure en CMS. Soudez y des connecteurs et il peut être branché sur une platine de prototypage/breadboard.
Les utilisateurs avancés pourrons aussi l'intégrer directement sur leur propre carte comme un composant CMS. Les contacts découpés en demi-lune permettent de souder plus facilement le Pico sur une plaque disposant de l'empreinte Adéquate.
Composant Fritzing
Fritzing est un excellent outil permettant aux néophytes de dessiner des schémas avec composants électroniques directement sur des platines d'essais. Ces schémas/graphiques restent très facile à lire et permettent une communication optimal du savoir dans un monde des makers/apprentissage/Neophytes (un outil de reve pour l'éducation).
Nous aimons beaucoup Fritzing pour cette approche DIY... les plus aguerri opterons pour un outil comme Kicad.
Le composant Fritzing est directement disponible sur pico.raspberrypi.org .
Contenu
Pour chaque commande, vous recevrez une carte RaspberryPi-Pico 2 WiFi seule.
Si vous voulez utiliser votre Pico sur un breadboard, il sera nécessaire d'y souder des connecteur (pinHeader), les pinHeader ne sont pas inclus... mais vous pourrez facilement vous en procurer ici.
La fondation recommande de souder les connecteurs pointant vers le bas pour les GPIO (et pointant vers le haut pour les 3 broches de débogage)
Ressources
- Fiche technique du Pico 2 (raspberrypi.com)
Inclus guide "Getting Started with Pico Series" - Fiche techniques du RP2350 (raspberrypi.com)
- Pico.raspberrypi.org (anglais)
Guide de démarrage, MicroPython, Fritzing, etc - Wiki MCHobby sur le Pico (Français, Wiki MCHobby)
Convient aussi au Pico 2. - Article de présentation du Pico2 (Blog MCHobby)
Découvrez le projet Amethyst, le RP2350 et le Pico2 - Article de présentation du Pico2 (Raspberry-Pi.com)