Chargement de la figure…
RP2040 ou RP2350 sur une barrette de 21 x 51 mm : MicroPython, PIO et, sur les cartes W, Wi-Fi
Chaque leçon fait tourner votre propre code sur la carte. Réussissez ses vérifications pour la valider.
Montez la carte dans le bon ordre, puis mettez-la sous tension et vérifiez-la, comme sur l'établi.
0 étapes sur 10Une Pico est une carte simple face : tous les composants sont sur le dessus et soudés par refusion à l'usine. Démontez-la jusqu'au circuit nu pour voir le cuivre, le bord crénelé et les empreintes.
Chaque panne se produit vraiment dans la simulation. Déclenchez-en une, regardez la figure, puis lisez pourquoi.
Les cartes microcontrôleur de Raspberry Pi elle-même. La Pico porte un RP2040 (deux cœurs Arm Cortex-M0+ jusqu'à 133 MHz, 264 KB de SRAM) avec 2 MB de flash QSPI ; la Pico 2 porte un RP2350 (deux cœurs Cortex-M33 ou deux cœurs RISC-V Hazard3 à 150 MHz, 520 KB de SRAM) avec 4 MB. Les versions W ajoutent une radio Wi-Fi et Bluetooth Infineon CYW43439 sous un capot métallique, avec une antenne imprimée à l'autre bout. Les quatre partagent le même format de 21 x 51 mm avec 40 broches crénelées au pas de 2,54 mm, une prise micro-USB câblée directement sur la puce (il n'y a pas de pont USB-série), un bouton BOOTSEL et une seule LED verte. Un régulateur buck-boost produit 3,3 V à partir de n'importe quelle tension entre 1,8 et 5,5 V sur VSYS. Tous les GPIO fonctionnent en 3,3 V ; seules les broches numériques du RP2350 tolèrent le 5 V, et seulement quand la carte est alimentée. Il n'y a ni bouton reset ni LED d'alimentation : une carte à la flash vierge n'allume rien et apparaît comme une clé USB.
| Connecteur | Broche | Nom | Fonctions | Niveau | Courant max | Remarques |
|---|---|---|---|---|---|---|
| edge | 1 | GP0 | UART0 TX, I2C0 SDA, SPI0 RX, PWM0A, PIO | 3,3 V | 12 mA | TX de l'UART0 par défaut : UART(0) de MicroPython et la stdio du SDK C utilisent GP0 et GP1. |
| edge | 2 | GP1 | UART0 RX, I2C0 SCL, SPI0 CSn, PWM0B, PIO | 3,3 V | 12 mA | RX de l'UART0 par défaut. |
| edge | 3 | GND | – | – | – | |
| edge | 4 | GP2 | I2C1 SDA, SPI0 SCK, PWM1A, PIO | 3,3 V | 12 mA | |
| edge | 5 | GP3 | I2C1 SCL, SPI0 TX, PWM1B, PIO | 3,3 V | 12 mA | |
| edge | 6 | GP4 | UART1 TX, I2C0 SDA, SPI0 RX, PWM2A, PIO | 3,3 V | 12 mA | SDA de l'I2C0 sur les broches par défaut du SDK ; la leçon sur l'I2C l'utilise. |
| edge | 7 | GP5 | UART1 RX, I2C0 SCL, SPI0 CSn, PWM2B, PIO | 3,3 V | 12 mA | SCL de l'I2C0 sur les broches par défaut du SDK. |
| edge | 8 | GND | – | – | – | |
| edge | 9 | GP6 | I2C1 SDA, SPI0 SCK, PWM3A, PIO | 3,3 V | 12 mA | |
| edge | 10 | GP7 | I2C1 SCL, SPI0 TX, PWM3B, PIO | 3,3 V | 12 mA | |
| edge | 11 | GP8 | UART1 TX, I2C0 SDA, SPI1 RX, PWM4A, PIO | 3,3 V | 12 mA | |
| edge | 12 | GP9 | UART1 RX, I2C0 SCL, SPI1 CSn, PWM4B, PIO | 3,3 V | 12 mA | |
| edge | 13 | GND | – | – | – | |
| edge | 14 | GP10 | I2C1 SDA, SPI1 SCK, PWM5A, PIO | 3,3 V | 12 mA | |
| edge | 15 | GP11 | I2C1 SCL, SPI1 TX, PWM5B, PIO | 3,3 V | 12 mA | |
| edge | 16 | GP12 | UART0 TX, I2C0 SDA, SPI1 RX, PWM6A, PIO | 3,3 V | 12 mA | |
| edge | 17 | GP13 | UART0 RX, I2C0 SCL, SPI1 CSn, PWM6B, PIO | 3,3 V | 12 mA | |
| edge | 18 | GND | – | – | – | |
| edge | 19 | GP14 | I2C1 SDA, SPI1 SCK, PWM7A, PIO | 3,3 V | 12 mA | Le bouton des leçons : câblé vers GND avec le pull-up interne, un appui se lit 0. |
| edge | 20 | GP15 | I2C1 SCL, SPI1 TX, PWM7B, PIO | 3,3 V | 12 mA | La LED externe des leçons, à travers 330 Ω vers GND. N'importe quel GPIO peut produire du PWM ; celui-ci est la tranche PWM 7, canal B. |
| edge | 21 | GP16 | UART0 TX, I2C0 SDA, SPI0 RX, PWM0A, PIO | 3,3 V | 12 mA | |
| edge | 22 | GP17 | UART0 RX, I2C0 SCL, SPI0 CSn, PWM0B, PIO | 3,3 V | 12 mA | |
| edge | 23 | GND | – | – | – | |
| edge | 24 | GP18 | I2C1 SDA, SPI0 SCK, PWM1A, PIO | 3,3 V | 12 mA | |
| edge | 25 | GP19 | I2C1 SCL, SPI0 TX, PWM1B, PIO | 3,3 V | 12 mA | |
| edge | 26 | GP20 | UART1 TX, I2C0 SDA, SPI0 RX, PWM2A, PIO | 3,3 V | 12 mA | |
| edge | 27 | GP21 | UART1 RX, I2C0 SCL, SPI0 CSn, PWM2B, PIO | 3,3 V | 12 mA | |
| edge | 28 | GND | – | – | – | |
| edge | 29 | GP22 | I2C1 SDA, SPI0 SCK, PWM3A, PIO | 3,3 V | 12 mA | |
| edge | 30 | RUN | RUN (reset, active low) | 3,3 V | – | Activation de la puce avec un pull-up interne d'environ 50 kΩ. Reliez-la à GND pour réinitialiser la puce : la carte n'a pas de bouton reset, câblez donc un bouton-poussoir de RUN vers GND. |
| edge | 31 | GP26_A0 | ADC0, I2C1 SDA, SPI1 SCK, PWM5A, PIO | 3,3 V | 12 mA | ADC0. Les broches d'entrée analogique ont une diode vers le 3,3 V et doivent rester sous environ 3,6 V sur toutes les cartes, y compris celles à RP2350. |
| edge | 32 | GP27_A1 | ADC1, I2C1 SCL, SPI1 TX, PWM5B, PIO | 3,3 V | 12 mA | ADC1. 12 bits, lu de 0 à 65535 avec read_u16() en MicroPython. |
| edge | 33 | AGND | Analog ground | – | – | Masse analogique des broches CAN : ramenez-y un potentiomètre ou un capteur pour des lectures plus propres. |
| edge | 34 | GP28_A2 | ADC2, UART0 TX, I2C0 SDA, SPI1 RX, PWM6A, PIO | 3,3 V | 12 mA | ADC2. |
| edge | 35 | ADC_VREF | ADC reference | 3,3 V | – | Référence du CAN : le rail 3,3 V à travers un filtre de 200 Ω et 2,2 µF. Elle est bruitée ; une référence externe de 3,0 V peut être montée ici. |
| edge | 36 | 3V3 | 3.3 V out | 3,3 V | 300 mA | Sortie 3,3 V du buck-boost pour les capteurs et les modules, sous 300 mA. N'y injectez jamais 5 V. |
| edge | 37 | 3V3_EN | SMPS enable | 4,7 V | – | Activation du régulateur 3,3 V, tirée vers VSYS à travers 100 kΩ. Reliez-la à GND et toute la carte s'éteint. |
| edge | 38 | GND | – | – | – | |
| edge | 39 | VSYS | 1.8-5.5 V in / out | 4,7 V | – | Entrée de 1,8 à 5,5 V (une batterie), ou sortie d'environ 4,7 V quand la carte tourne sur l'USB. Pas protégée contre l'inversion. |
| edge | 40 | VBUS | USB 5 V | 5 V | – | Sortie 5 V de l'USB quand le câble est branché, 0 V sinon. Une alimentation 5 V câblée ici alimente la carte à travers D1. |
| DEBUG | 1 | SWCLK | SWD clock | 3,3 V | – | Pastilles Serial Wire Debug (SWCLK, GND, SWDIO) : une Raspberry Pi Debug Probe ou une seconde Pico qui fait tourner debugprobe s'y branche pour poser des points d'arrêt. Ce sont des broches dédiées au débogage, pas des GPIO. |
| DEBUG | 2 | GND | – | – | – | |
| DEBUG | 3 | SWDIO | SWD data | 3,3 V | – |
Les capteurs et actionneurs que pilote cette carte, avec les vrais branchements.
Une LED de 5 mm depuis GP15 à travers une résistance de 330 Ω vers GND : (3,3 - 2,0) / 330 ≈ 4 mA pour une LED rouge, dans la limite des 4 mA par défaut de la broche.
| Broche du composant | Broche de la carte |
|---|---|
| A | GP15Couleur du fil : orange |
| K | GNDCouleur du fil : noir |
N'oubliez jamais la résistance : la broche essaierait de fournir bien plus de 12 mA.
Un bouton de 6 x 6 mm de GP14 vers GND avec Pin.PULL_UP : il lit 0 tant qu'on appuie. Placez-le à cheval sur la tranchée centrale de la platine d'essai.
| Broche du composant | Broche de la carte |
|---|---|
| 1 | GP14Couleur du fil : jaune |
| 3 | GNDCouleur du fil : noir |
Sur les premières Pico 2 (RP2350 A2), ne comptez pas sur le pull-down interne : l'erratum E9 laisse la broche flotter à l'état haut.
Un potentiomètre de 10 kΩ : une extrémité sur 3V3 (broche 36), l'autre sur AGND (broche 33), le curseur sur GP26 / ADC0.
| Broche du composant | Broche de la carte |
|---|---|
| 1 | 3V3Couleur du fil : rouge |
| 2 | GP26Couleur du fil : jaune |
| 3 | AGNDCouleur du fil : noir |
Ne mettez jamais 5 V sur les extrémités : les broches CAN acceptent 3,3 V au plus sur toutes les Pico.
Une photorésistance du 3V3 vers GP27, avec une résistance de 10 kΩ de GP27 vers GND : plus de lumière, lecture plus haute.
| Broche du composant | Broche de la carte |
|---|---|
| 1 | 3V3Couleur du fil : rouge |
| 2 | GP27Couleur du fil : jaune |
Le TMP36 fonctionne dès 2,7 V, le 3V3 convient donc : Vout sur GP28 lit 0,75 V à 25 °C, 10 mV par degré.
| Broche du composant | Broche de la carte |
|---|---|
| +Vs | 3V3Couleur du fil : rouge |
| Vout | GP28Couleur du fil : jaune |
| GND | AGNDCouleur du fil : noir |
Un piézo passif sur GP18 et GND, piloté en PWM : pwm.freq(440) joue un la.
| Broche du composant | Broche de la carte |
|---|---|
| + | GP18Couleur du fil : orange |
| - | GNDCouleur du fil : noir |
Signal du SG90 sur GP16 avec du PWM à 50 Hz (une impulsion de 0,5 à 2,4 ms), alimentation par VBUS (le 5 V de l'USB) et une masse commune.
| Broche du composant | Broche de la carte |
|---|---|
| signal | GP16Couleur du fil : orange |
| V+ | VBUSCouleur du fil : rouge |
| GND | GNDCouleur du fil : marron |
N'alimentez jamais un servo par le 3V3 : son courant de blocage fait chuter le rail 3,3 V et la Pico redémarre. Utilisez VBUS sur l'USB ou une alimentation 5 V séparée avec une masse commune.
Un module GY-521 MPU-6050 sur l'I2C0 : SDA sur GP4, SCL sur GP5, VCC sur 3V3. Son adresse est 0x68 (0x69 avec AD0 à l'état haut).
| Broche du composant | Broche de la carte |
|---|---|
| VCC | 3V3Couleur du fil : rouge |
| GND | GNDCouleur du fil : noir |
| SCL | GP5Couleur du fil : jaune |
| SDA | GP4Couleur du fil : bleu |
Un OLED SSD1306 de 0,96 pouce sur l'I2C0 (GP4 et GP5) à l'adresse 0x3C, alimenté par le 3V3. MicroPython a besoin du pilote ssd1306 de micropython-lib (mip.install("ssd1306")).
| Broche du composant | Broche de la carte |
|---|---|
| GND | GNDCouleur du fil : noir |
| VCC | 3V3Couleur du fil : rouge |
| SCL | GP5Couleur du fil : jaune |
| SDA | GP4Couleur du fil : bleu |
Lisez la sérigraphie du connecteur : certains modules sont GND VCC SCL SDA, d'autres VCC GND SCL SDA.
Le HC-SR04 a besoin de 5 V : VCC sur VBUS, TRIG sur GP16 (3,3 V suffisent pour le déclencher), ECHO sur GP17 à travers un pont diviseur (1 kΩ en série, 2 kΩ vers GND) pour que l'écho 5 V arrive en 3,3 V.
| Broche du composant | Broche de la carte |
|---|---|
| VCC | VBUSCouleur du fil : rouge |
| TRIG | GP16Couleur du fil : orange |
| ECHO | GP17Couleur du fil : jaune |
| GND | GNDCouleur du fil : noir |
ECHO est une sortie 5 V. Branchée directement sur une broche du RP2040, elle fait passer du courant à travers la diode de protection de la broche vers le rail 3,3 V et abîme la puce. Les GPIO du RP2350 le tolèrent tant qu'ils sont alimentés, mais gardez le pont diviseur.