RP2040 – Analyse du microcontrôleur du Raspberry Pi

Si vous vous êtes déjà intéressé au monde des systèmes embarqués ou de l'électronique DIY, vous avez probablement entendu parler du RP2040. Mais qu'est-ce qui distingue exactement cette minuscule puce de Raspberry Pi parmi la multitude de microcontrôleurs disponibles ? Lancé en 2021 comme le cerveau derrière l'emblématique Raspberry Pi Pico, le RP2040 est discrètement devenu l'un des favoris des amateurs, des enseignants et même des ingénieurs professionnels. Dans cet article, nous allons explorer les raisons pour lesquelles cette merveille à double cœur redéfinit ce qu'un microcontrôleur économique peut accomplir, et comment vous pouvez commencer à l'utiliser dès aujourd'hui.

Qu'est-ce que le RP2040 ?

Le RP2040 est un microcontrôleur (MCU) lancé par la Fondation Raspberry Pi. Il sert de composant central pour le Raspberry Pi Pico et d'autres cartes de développement. Il est actuellement vendu à 10 dollars sur le site officiel.

An image showing the RP2040 microchip for sale priced at 10.00
RP2040 Microchip - Available for Purchase at $10.00

Spécifications RP2040

La puce RP2040 est disponible dans un boîtier QFN – 56 de 7 × 7 mm, avec les spécifications suivantes :

  • Double cœur Arm Cortex-M0+ fonctionnant à 133 MHz
  • 264 Ko de mémoire SRAM intégrée et 2 Mo de mémoire flash intégrée
  • Prise en charge d'une mémoire flash hors puce pouvant atteindre 16 Mo via un bus QSPI dédié
  • Équipée d'un contrôleur DMA
  • Dispose de 30 broches GPIO, dont 4 peuvent être utilisées comme entrées analogiques
  • Dispose de 2 contrôleurs UART, 2 contrôleurs SPI et 2 contrôleurs I2C
  • Offre 16 canaux PWM
  • Prend en charge les hôtes et périphériques USB 1.1
  • Intègre 8 machines à états programmables I/O (PIO) Raspberry Pi pour la prise en charge de périphériques personnalisés
  • Prend en charge le mode de démarrage de stockage de masse USB compatible UF2 pour la programmation par glisser-déposer
A dimension diagram of the RP2040 chip, showing various measurements in millimeters.
RP2040 Chip Dimension Diagram (in mm)

Explication de la dénomination RP2040

Le nom RP2040 reflète ses principales caractéristiques techniques :

  • RP : signifie Raspberry Pi, le développeur.
  • 2 : indique les processeurs double cœur Arm Cortex – M0+.
  • 0 : représente le type de cœur (M0+ dans ce cas).
  • 4 : calculé comme suit floor(log2(SRAM/16k)), où 264 Ko de SRAM → ~4.
  • 0 : Dérivé de floor(log2(non - volatile/16k)), avec 2 Mo de mémoire flash → ~7, mais simplifié à 0 dans la nomenclature.
An illustration explaining the naming convention of the RP2040 microchip with arrows and descriptions for each part of the name
RP2040 Microchip Naming Convention Explanation

RP2040 Brochage

Le RP2040 est équipé de 30 broches GPIO, très polyvalentes pour diverses utilisations. Elles peuvent lire les entrées numériques provenant d'appareils tels que des boutons et des capteurs, et fournir des sorties numériques pour contrôler des LED et des relais.

Il convient de noter que son sous-système d'entrée/sortie programmable (PIO) dispose de deux machines à états. Cela permet de créer des protocoles de communication personnalisés, tels que le contrôle facile des bandes LED WS2812 ou la création d'une interface VGA personnalisée, réduisant ainsi la charge de travail du processeur.
A top view pinout diagram of the RP2040 microchip labeling various pins such as GPIO power and communication pins
RP2040 Microchip Pinout Diagram (Top View)

Schéma fonctionnel RP2040

Caractéristiques de la puce RP2040 :

  • 2 UART : communications série pour appareils/modules/ordinateurs.
  • 2 SPI : transfert de données maître-esclave à haut débit (par exemple, cartes flash/SD).
  • 2 I2C : bus multi-appareils pour capteurs/EEPROM via les lignes SDA/SCL.
  • 16 PWM : contrôle de la vitesse du moteur/de la luminosité des LED via la modulation du cycle de service.
Block diagram of the RP2040 microchips internal architecture showing components like processors peripherals and memory
RP2040 Microchip Internal Architecture Block Diagram

Assistance au développement pour RP2040

Carte de développement officielle - Raspberry Pi Pico

Le Raspberry Pi Pico sert de carte de développement officielle pour le RP2040, et constitue un excellent point d'entrée pour les développeurs. Mesurant seulement 65 mm x 17 mm, cette carte compacte est incroyablement abordable, avec un prix de seulement 4 dollars, ce qui la rend accessible à un large éventail d'utilisateurs, des amateurs à petit budget aux étudiants qui explorent le monde des microcontrôleurs.

Images of four Raspberry Pi Pico series development boards (Pi Pico, Pi Pico H, Pi Pico W, Pi Pico WH) based on the RP2040 microcontroller, showcasing their board layouts and component differences.
A lineup of Raspberry Pi Pico series boards powered by the RP2040 MCU

L'un des grands avantages du Raspberry Pi Pico est sa facilité d'utilisation. Il présente un format simple avec une rangée de broches GPIO de chaque côté, clairement étiquetées pour faciliter leur identification. Cette disposition facilite la connexion de composants externes tels que des capteurs, des actionneurs ou des écrans. Par exemple, connecter un capteur de température comme le DHT11 au Pico est aussi simple que de connecter la broche de données du capteur à l'une des broches GPIO du Pico, ainsi que les connexions d'alimentation et de masse.

Le Pico dispose également d'un connecteur USB intégré, qui sert à la fois à alimenter la carte et à la programmer. Lorsqu'il est connecté à un ordinateur, il apparaît comme un périphérique de stockage de masse, ce qui permet une programmation facile par « glisser-déposer ». Par exemple, si vous avez écrit un script MicroPython ou un binaire C/C++ compilé, il vous suffit de copier le fichier sur le lecteur virtuel du Pico pour qu'il commence à exécuter le programme.

En plus des fonctionnalités matérielles de base, le Raspberry Pi Pico est livré avec une documentation officielle complète et des exemples de code. Le site web officiel de Raspberry Pi fournit des guides détaillés sur tout, de la prise en main de la carte à l'utilisation avancée de ses fonctionnalités. Ces ressources sont extrêmement utiles pour les débutants qui commencent tout juste à s'initier à la programmation des microcontrôleurs et pour les développeurs expérimentés qui souhaitent se familiariser rapidement avec les capacités du RP2040.

Langages de programmation et frameworks

Le RP2040 prend en charge plusieurs langages de programmation et frameworks, offrant ainsi aux développeurs la flexibilité nécessaire pour choisir l'option la mieux adaptée à leurs projets.

MicroPython : MicroPython est un excellent choix, en particulier pour les débutants ou ceux qui souhaitent rapidement prototyper leurs idées. Il s'agit d'une implémentation légère et efficace du langage de programmation Python 3, spécialement conçue pour les microcontrôleurs. Avec MicroPython, vous pouvez écrire du code dans une syntaxe de haut niveau et facile à comprendre. Par exemple, le contrôle d'une LED connectée à une broche GPIO sur le RP2040 peut être réalisé en quelques lignes de code seulement :
				
					from machine import Pin
import time

led = Pin(25, Pin.OUT)
while True:
    led.value(1)
    time.sleep(1)
    led.value(0)
    time.sleep(1)

				
			
Cette simplicité permet aux développeurs de se concentrer sur les fonctionnalités de leur projet plutôt que de s'enliser dans les détails de programmation de bas niveau. MicroPython dispose également d'un ensemble complet de bibliothèques pouvant être utilisées pour interfacer divers composants matériels, tels que des capteurs, des modules de communication et des écrans.

C/C++ : pour ceux qui ont besoin d'un meilleur contrôle sur le matériel et de meilleures performances, C/C++ est une excellente option. Le RP2040 dispose d'un SDK (kit de développement logiciel) C/C++ officiel qui fournit un ensemble complet de bibliothèques et d'outils pour le développement d'applications. Le SDK comprend des pilotes pour tous les périphériques matériels du RP2040, tels que les interfaces GPIO, PIO, UART, SPI et I2C. Avec C/C++, les développeurs peuvent écrire un code hautement optimisé qui tire pleinement parti de l'architecture double cœur du RP2040. Par exemple, lors de la mise en œuvre d'un système d'acquisition de données à grande vitesse, C/C++ peut être utilisé pour écrire un code qui lit efficacement les données provenant de plusieurs capteurs connectés aux broches GPIO du RP2040 et les traite en temps réel.

Outils et IDE

Il existe plusieurs outils et environnements de développement intégrés (IDE) permettant de développer des applications pour le RP2040.

Thonny

Thonny est un choix populaire, en particulier pour le développement MicroPython. Il dispose d'une interface conviviale et facile à naviguer, même pour les débutants. Thonny fournit un shell Python intégré, qui permet aux développeurs de tester leur code de manière interactive. Vous pouvez saisir des commandes Python et voir immédiatement les résultats, ce qui en fait un excellent outil pour déboguer et explorer les capacités du RP2040. Pour utiliser Thonny avec le RP2040, vous devez d'abord connecter le Pico à votre ordinateur via USB. Ensuite, dans Thonny, vous pouvez sélectionner l'interpréteur Python approprié (MicroPython pour RP2040). Une fois configuré, vous pouvez écrire, exécuter et déboguer votre code MicroPython directement dans Thonny.

VS Code

Visual Studio Code est un éditeur de code puissant et multiplateforme qui a acquis une grande popularité auprès des développeurs. Il dispose d'un large éventail d'extensions, ce qui le rend adapté au développement RP2040. Pour le développement C/C++, l'extension « C/C++ » de Microsoft offre des fonctionnalités telles que la mise en évidence du code, l'IntelliSense (complétion automatique du code) et l'aide au débogage. Pour MicroPython, l'extension « MicroPython » offre des fonctionnalités similaires. Pour configurer VS Code pour le développement RP2040, vous devez installer les extensions appropriées et configurer les paramètres de compilation et de débogage en fonction des exigences de votre projet. Par exemple, si vous travaillez sur un projet C/C++, vous devrez configurer le chemin d'accès au SDK Pico et configurer le débogueur pour qu'il fonctionne avec le RP2040.

RP2040 contre RP2350 Puces

Les RP2040 et RP2350 sont des microcontrôleurs développés par Raspberry Pi. Le RP2040 était l'un des premiers modèles proposés, tandis que le RP2350 est un successeur plus avancé doté de fonctionnalités améliorées. Voici une comparaison entre les deux :

A side by side comparison image of RP2040 and RP2350 microchips labeled with their respective names
RP2040 and RP2350 Microchips Comparison
FeatureRP2040RP2350
Core ArchitectureDual Arm Cortex-M0+Dual Arm Cortex-M33 or Dual RISC-V Hazard3
Clock Speed133MHz150MHz
On-chip SRAM264KB520KB
Security FeaturesBasic security featuresArm TrustZone, Signed Boot, SHA-256, TRNG, Fault Detectors
Peripheral Interfaces2×UART, 2×SPI, 2×I2C, ADC, PWM, USB 1.1Enhanced peripherals, additional PIO state machines, more GPIO pins, higher power efficiency
PackagingSingle 7×7mm QFN56 option7×7mm QFN60 (RP2350A) with 30 GPIOs or 10×10mm QFN80 (RP2350B) with 48 GPIOs; both with 2MB stacked QSPI flash (RP2354A and RP2354B)

Conclusion​

En conclusion, le RP2040 est un microcontrôleur remarquable qui a eu un impact significatif dans le monde des systèmes embarqués et du développement électronique. N'hésitez pas à partager vos opinions ou votre expérience !

Part à:

Retour en haut

Instant Quote