Qu'est-ce qui est plus petit qu'une plume mais plus grand qu'un bibelot ? Il s'agit d'un Adafruit ItsyBitsy RP2040 présentant le Raspberry Pi RP2040 !
Une nouvelle puce signifie un nouveau ItsyBitsy, et le RP2040 de Raspberry Pi ne fait pas exception. Quand Adafruit a vu cette puce, ils ont pensé "cette puce va être géniale si on lui donne le traitement ItsyBitsy teensy-weensy" et c'est ce qu'ils ont fait ! Cette Itsy' est équipée du RP2040, et de toutes les caractéristiques que vous connaissez et aimez de la famille ItsyBitsy.
Petite, puissante, avec un double processeur Cortex M0+ ultra rapide fonctionnant à 125 MHz - cette carte microcontrôleur est parfaite quand vous voulez quelque chose de très compact, avec beaucoup de puissance et un tas de broches.
Ce Itsy a la vitesse d'une voiture de sport, mais l'espace d'un SUV avec 8 MB de FLASH et 264KB de SRAM.
L'ItsyBitsy RP2040 ne mesure que 1,4" de long par 0,7" de large, mais possède 6 broches d'alimentation, 23 broches GPIO numériques (dont 4 peuvent être des entrées analogiques et 16 sorties PWM). C'est la même puce que celle du Feather RP2040 et du Raspberry Pi Pico, mais elle est vraiment très petite. Il est donc idéal lorsque vous avez terminé un prototype et que vous souhaitez réduire considérablement la taille du projet. Il est même livré avec 8 Mo de SPI Flash intégré, pour l'enregistrement de données, le stockage de fichiers ou le code CircuitPython/MicroPython
Même taille et même forme que le reste de la famille ItsyBitsy et brochage presque identique
Mesure 1,4" x 0.7" x 0.2" (36mm x 18mm x 4mm) sans les en-têtes soudés
RP2040 Cortex M0+ 32-bit dual core fonctionnant à ~125 MHz @ 3.3V logique et puissance
264 KB RAM
8 MB SPI FLASH chip pour le stockage des fichiers et du code CircuitPython/MicroPython.
Pas d'EEPROM
Tonnes de GPIO ! 23 x broches GPIO avec les capacités suivantes :
Quatre ADC 12 bits (un de plus que le Pico)
Deux périphériques I2C, Deux SPI et deux UART, Adafruit label un pour l'interface 'principale' dans les emplacements ItsyBitsy standard
16 x sorties PWM - pour les servos, les LED, etc
Les 10 GPIO numériques 'non-ADC/non-périphériques' sont consécutifs pour une compatibilité PIO maximale
Broche #13 LED rouge pour un clignotement d'usage général
RGB NeoPixel avec broche d'alimentation sur GPIO afin que vous puissiez le dépenser pour des utilisations à faible puissance.
Bouton de réinitialisation et bouton de sélection du chargeur de démarrage pour des redémarrages rapides (pas de débranchement-rebranchement pour relancer le code)
Régulateur de
3,3 V avec sortie de courant de crête de 500 mA
Broche d'
alimentation/activation de 3,3 V
Alimentation par USB ou par sortie externe (comme une batterie) - la commutation est automatique
Broches SWD en rupture pour l'accès au débogage
Cristal de 12 MHz pour une synchronisation parfaite.
La broche de sortie spéciale Vhigh vous donne la tension la plus élevée de VBAT ou VUSB, pour piloter les NeoPixels, les servos, et autres dispositifs logiques 5V. Sortie numérique 5 décalée en niveau pour une sortie de niveau logique haute tension.
Le connecteur USB Micro B vous permet d'accéder au chargeur de démarrage USB ROM intégré et au débogage du port série.
Le RP2040 contient un chargeur de démarrage USB UF2 à ROM permanente.
Cela signifie que lorsque vous voulez programmer un nouveau firmware, vous pouvez maintenir le bouton BOOTSEL enfoncé tout en le branchant sur le port USB (ou en mettant la broche RUN/Reset à la masse) et il apparaîtra comme un disque USB sur lequel vous pourrez glisser le firmware. Les personnes qui ont utilisé les produits Adafruit trouveront cette technique très familière - ils l'utilisent sur toutes leurs cartes natives USB. Notez que vous ne devez pas double-cliquer sur reset, mais maintenir BOOTSEL enfoncé pendant le démarrage pour entrer dans le bootloader !
Le RP2040 est une puce puissante, qui a la vitesse d'horloge du M4 (SAMD51), et deux cœurs qui sont équivalents au M0 (SAMD21). Comme il s'agit d'une puce M0, elle ne dispose pas d'une unité à virgule flottante ou d'un support matériel DSP - donc si vous faites quelque chose avec des calculs lourds à virgule flottante, ce sera fait en logiciel et donc pas aussi rapide qu'une M4. Pour de nombreuses autres tâches de calcul, vous obtiendrez des vitesses proches de M4 !
Pour les périphériques, il y a deux contrôleurs I2C, deux contrôleurs SPI, et deux UARTs qui sont multiplexés à travers les GPIO - vérifiez le brochage pour savoir quelles broches peuvent être configurées à quoi. Il y a 16 canaux PWM, chaque pin a un canal sur lequel il peut être réglé (idem sur le pinout).
Vous noterez qu'il n'y a pas de périphérique I2S, ni de SDIO, ni de caméra, qu'est-ce qui se passe ? Au lieu d'avoir un support matériel spécifique pour les périphériques de type données série comme ceux-ci, le RP2040 est livré avec le système de machine d'état PIO qui est un moyen unique et puissant de créer une logique matérielle personnalisée et des blocs de traitement de données qui fonctionnent seuls sans occuper un CPU. Par exemple, les NeoPixels - souvent Adafruit bitbang le protocole spécifique au timing pour ces LED. Pour le RP2040, ils utilisent plutôt un objet PIO qui lit dans le tampon de données et émet le bon flux binaire avec une précision parfaite. Il en va de même pour les entrées et sorties audio I2S, les écrans matriciels LED, les écrans TFT 8 bits ou SPI, et même les écrans VGA ! Dans MicroPython et CircuitPython, vous pouvez créer des commandes de contrôle PIO pour scripter le périphérique et le charger au moment de l'exécution. Il y a 2 périphériques PIO avec 4 machines d'état chacun.
Au moment du lancement, il n'y a pas de support du noyau Arduino pour cette carte. Il y a un excellent support C/C++, un portage officiel MicroPython et un portage CircuitPython ! Adafruit recommande bien sûr CircuitPython parce qu'il pense que c'est le moyen le plus facile de commencer et qu'il supporte la plupart de ses pilotes, écrans, capteurs et autres, supportés d'emblée pour que vous puissiez suivre leur projects et leurs tutoriels CircuitPython.
Ce Itsy est livré avec des connecteurs libres de 0,1" que vous pouvez souder pour une utilisation sur une planche à pain !
Bien que le RP2040 dispose de beaucoup de mémoire vive (264 Ko), il n'a pas de mémoire FLASH intégrée. Au lieu de cela, elle est fournie par la puce flash QSPI externe. Sur cette carte, il y a 8 MB, qui sont partagés entre le programme qu'elle exécute et tout stockage de fichier utilisé par MicroPython ou CircuitPython. Si vous utilisez C/C++, vous disposez de toute la mémoire flash, si vous utilisez Python, il vous restera environ 7 Mo pour le code, les fichiers, les images, les polices, etc.
DÉTAILS TECHNIQUES
Fiche technique RP2040 : https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.pdf
Caractéristiques de la puce RP2040:
Double ARM Cortex-M0+ @ 133MHz
264kB SRAM sur puce en six banques indépendantes
Support jusqu'à 16MB de mémoire Flash hors puce via un bus QSPI dédié
Contrôleur DMA
Barre transversale AHB entièrement connectée
Périphériques Interpolateur et diviseur d'entiers
LDO programmable sur puce pour générer la tension du cœur
2 PLL sur puce pour générer les horloges USB et du cœur
30 broches GPIO, dont 4 peuvent être utilisées comme entrées analogiques
Périphériques
2 UARTs
2 contrôleurs SPI
2 contrôleurs I2C
16 canaux PWM
USB 1.
1 contrôleur et PHY, avec prise en charge de l'hôte et du périphérique
8 machines d'état PIO
APPRENDRE
Une introduction au PIO RP2040 avec CircuitPython - Apprenez à utiliser le puissant coprocesseur d'E/S intégré au RP2040.