Introduction
Le RP2040 est le premier silicium de Raspberry Pi, et il est devenu incroyablement populaire pour les projets matériels personnalisés. Bien que la carte Raspberry Pi Pico soit excellente pour le prototypage, de nombreux projets nécessitent des facteurs de forme personnalisés, différentes configurations d'E/S, ou des conceptions optimisées en coût pour la production.
Ce guide fournit tout ce dont vous avez besoin pour concevoir votre propre carte basée sur le RP2040 à partir de zéro. Nous couvrirons le circuit minimal requis, expliquerons chaque décision de conception, et fournirons des numéros de pièces prêts pour JLCPCB afin que vous puissiez passer rapidement du schéma à la carte assemblée.
Prérequis : Ce guide suppose une familiarité de base avec les outils de conception de PCB (EasyEDA, KiCad ou Altium) et les concepts fondamentaux d'électronique comme le découplage et le routage des signaux.
Pourquoi concevoir avec le RP2040 ?
Avantages
- +Double cœurs ARM Cortex-M0+ @ 133MHz
- +264Ko SRAM (plus que la plupart des puces Cortex-M0)
- +Machines d'état E/S programmables (PIO)
- +Programmation UF2 glisser-déposer via USB
- +Faible coût (~0,70-1,00$ en volume)
- +Excellente documentation de Raspberry Pi
Considérations
- !Pas de flash interne - nécessite QSPI externe
- !Boîtier QFN-56 nécessite soudure soignée
- !Bootloader USB uniquement (pas de boot UART)
- !Pad GND unique sous la puce - critique à souder
- !ADC 12 bits (pas de DAC, 4 canaux)
Exigences Minimales du Circuit
Contrairement à de nombreux microcontrôleurs qui peuvent fonctionner avec juste l'alimentation et quelques condensateurs, le RP2040 a des exigences spécifiques pour un système fonctionnel :
Composants Requis
Essentiels
- 1x Microcontrôleur RP2040
- 1x Flash QSPI externe (2Mo-16Mo)
- 1x Quartz 12MHz + 2 condensateurs de charge
- 1x Régulateur de tension 3,3V
- 11x Condensateurs de découplage 100nF
- 2x Condensateurs 1µF (VREG entrée/sortie)
Pour Programmation USB
- 1x Connecteur USB (Type-C recommandé)
- 2x Résistances série USB 27Ω
- 2x Résistances CC 5,1kΩ (USB-C)
- 1x Bouton BOOTSEL
- 1x Résistance BOOTSEL 1kΩ
- 1x Protection ESD (recommandé)
Diagramme de Blocs du Système
Avant de plonger dans chaque sous-système, voici comment toutes les pièces se connectent :
Conception de l'Alimentation
Vue d'Ensemble de l'Architecture d'Alimentation
Le RP2040 nécessite deux rails de tension pour fonctionner :
- IOVDD (3,3V) - Alimente toutes les E/S, USB PHY et périphériques
- DVDD (1,1V) - Alimente le cœur numérique (cœurs ARM, SRAM)
Le RP2040 inclut un régulateur linéaire interne qui génère 1,1V à partir de l'alimentation 3,3V. Cela simplifie la conception de l'alimentation externe - vous n'avez qu'à fournir 3,3V.
Régulateur Interne 1,1V
Le régulateur interne nécessite :
- VREG_VIN - Connecter au 3,3V avec condensateur 1µF
- VREG_VOUT - Connecter à toutes les broches DVDD avec condensateur 1µF
Applications sur Batterie : Le LDO interne est efficace quand le cœur est en veille, mais pour les applications batterie à forte charge de travail, envisagez une alimentation à découpage externe 1,1V pour une meilleure efficacité.
Options d'Alimentation Externe 3,3V
Pour les conceptions alimentées par USB, vous devez convertir le 5V USB en 3,3V :
| Régulateur | Type | Courant | JLCPCB | Notes |
|---|---|---|---|---|
| XC6206P332MR | LDO | 200mA | C5446 | Recommandé - Basic Part |
| AP2112K-3.3 | LDO | 600mA | C51118 | Choix populaire (SparkFun, Adafruit) |
| ME6211C33 | LDO | 500mA | C82942 | Faible dropout (100mV @ 500mA) |
Éviter AMS1117 : Malgré sa popularité, l'AMS1117 a un courant de repos élevé (~5mA), nécessite de gros condensateurs, et a de mauvaises performances à faible charge. Utilisez plutôt XC6206 ou AP2112K.
Condensateurs de Découplage
Un découplage approprié est critique pour la stabilité du RP2040. La puce a plusieurs broches d'alimentation qui ont chacune besoin de leur propre condensateur :
| Broches | Nombre | Valeur | Fonction |
|---|---|---|---|
| IOVDD (broches 1,10,22,33,42,49) | 6x | 100nF | Découplage alimentation E/S |
| DVDD (broches 23, 50) | 2x | 100nF | Découplage alimentation cœur |
| USB_VDD (broche 48) | 1x | 100nF | Alimentation USB PHY |
| ADC_AVDD (broche 43) | 1x | 100nF | Référence ADC |
| VREG_VIN (broche 44) | 1x | 1µF | Entrée régulateur |
| VREG_VOUT (broche 45) | 1x | 1µF | Sortie régulateur |
Layout Critique : Le RP2040 n'a qu'une seule connexion de masse - le grand pad au centre de la puce. Tous les condensateurs de découplage doivent avoir la boucle la plus courte possible depuis condensateur → broche d'alimentation → à travers la puce → pad GND central → retour au condensateur. Utilisez des vias directement sous les condensateurs vers le plan de masse.
Oscillateur à Quartz
Bien que le RP2040 ait un oscillateur interne, un quartz externe de 12MHz est requis pour un timing USB précis et un fonctionnement stable.
Sélection du Quartz
Le quartz doit respecter ces spécifications :
- Fréquence : 12,000 MHz
- Capacité de Charge : Typiquement 10-20pF
- ESR : <100Ω recommandé
- Tolérance de Fréquence : ±30ppm ou mieux
Quartz Recommandé
Pièce JLCPCB : C9002
12MHz, boîtier 3225 (3,2mm × 2,5mm), capacité de charge 20pF, ±10ppm. C'est un JLCPCB Basic Part, gardant les coûts d'assemblage bas.
Calcul des Condensateurs de Charge
Les condensateurs de charge (CL1 et CL2) doivent être calculés en fonction de la capacité de charge spécifiée du quartz et de la capacité parasite du PCB :
C_charge = (CL1 × CL2) / (CL1 + CL2) + C_parasite
Pour des condensateurs égaux (CL1 = CL2 = C) :
C = 2 × (C_charge - C_parasite)
Exemple avec capacité de charge 20pF et 3pF parasite :
C = 2 × (20pF - 3pF) = 34pF
Valeurs standard les plus proches : 33pF ou 27pFDirectives de Layout du Quartz
- Placez le quartz aussi près que possible des broches XIN/XOUT (broches 20/21)
- Gardez les condensateurs de charge immédiatement adjacents aux pads du quartz
- Routez les traces XIN/XOUT loin des signaux haute vitesse (surtout QSPI)
- Envisagez un anneau de garde de masse autour du quartz pour l'immunité au bruit
- Gardez le quartz du côté opposé de la puce par rapport au flash QSPI
Mémoire Flash QSPI
Le RP2040 n'a pas de mémoire flash interne - tout le code programme s'exécute depuis une puce flash QSPI externe. C'est un composant critique qui doit être choisi et connecté avec soin.
Sélection de la Puce Flash
Le bootloader du RP2040 est optimisé pour les flash Winbond série W25Q. Bien que d'autres puces puissent fonctionner, Winbond est le choix le plus sûr :
| Référence | Taille | Boîtier | JLCPCB | Notes |
|---|---|---|---|---|
| W25Q16JVSNIQ | 2Mo | SOIC-8 | C131024 | Minimum recommandé |
| W25Q32JVSSIQ | 4Mo | SOIC-8 | C179171 | Bon pour projets plus grands |
| W25Q128JVSIQ | 16Mo | SOIC-8 | C97521 | Maximum supporté |
Avertissement : Macronix et certaines autres puces flash ne fonctionnent pas comme remplacements directs. Restez avec la série Winbond W25Q pour une compatibilité garantie.
Interface USB
L'USB est l'interface de programmation principale pour le RP2040, permettant le téléchargement de firmware UF2 pratique par glisser-déposer.
Conception du Connecteur USB-C
Pour les conceptions modernes, l'USB-C est recommandé plutôt que le Micro-USB en raison de sa réversibilité et de sa durabilité.
Critique : CC1 et CC2 doivent avoir des résistances de 5,1kΩséparées vers la masse. Ne jamais relier CC1 et CC2 ensemble - cela viole la spécification USB-C et cause des problèmes de détection. (C'était le bug de lancement du Raspberry Pi 4B.)
Protection ESD
Protection ESD Recommandée
USBLC6-2SC6 : Réseau de diodes TVS pour lignes D+/D-
Pièce JLCPCB : C7519
Circuit de Mode Boot
Conception du Bouton BOOTSEL
QSPI_SS (broche 57)
|
+--- Pull-up 10kΩ vers 3,3V (optionnel mais recommandé)
|
+--- Résistance série 1kΩ --- Bouton BOOTSEL --- GND
Séquence de Boot :
1. Appuyer et maintenir le bouton BOOTSEL
2. Appliquer l'alimentation (ou appuyer RESET en maintenant BOOTSEL)
3. RP2040 voit QSPI_SS bas → entre en mode boot USB
4. Relâcher le bouton
5. Glisser le fichier UF2 sur le lecteur USBCircuit de Reset
RUN (broche 26)
|
+--- Pull-up 10kΩ vers 3,3V
|
+--- Condensateur 100nF vers GND (anti-rebond/filtre)
|
+--- Bouton RESET --- GNDErreurs Courantes à Éviter
1. Mauvaise Connexion du Pad de Masse
Le pad central est la SEULE connexion de masse. S'il n'est pas correctement soudé avec suffisamment de connexions via, rien ne fonctionne.
2. Mauvaise Puce Flash
Utiliser des puces flash non-Winbond cause souvent des échecs de boot. Restez avec la série W25Q.
3. Pull-up QSPI_SS Manquant
Pendant le démarrage, QSPI_SS peut flotter brièvement. Sans pull-up, la puce flash peut entrer dans un état indéfini.
4. CC1/CC2 Reliés (USB-C)
Chaque broche CC a besoin de sa propre résistance 5,1kΩ. Les relier viole la spécification USB-C.
5. Quartz Trop Loin du RP2040
Les longues traces ajoutent de la capacité parasite, changeant la capacité de charge effective. Cela cause des erreurs de fréquence qui cassent le timing USB.
Conclusion
Concevoir une carte RP2040 personnalisée nécessite une attention aux détails dans l'alimentation, la mémoire flash, le quartz et les circuits USB. Cependant, avec l'excellente documentation de Raspberry Pi et la communauté croissante de conceptions open-source, c'est un projet réalisable pour quiconque a une expérience de base en conception de PCB.
- Utilisez la flash Winbond série W25Q pour une compatibilité garantie
- Portez une attention particulière à la connexion du pad de masse central
- Gardez les traces QSPI courtes et le quartz près de la puce
- Ne lésinez pas sur les condensateurs de découplage
- Incluez les boutons BOOTSEL et RESET pour une programmation facile