RP2040 (placa genérica / chip)

MCU 32-bitarduino

⚡ Lo esencial en 60 segundos

En el corazón del RP2040 residen dos núcleos ARM Cortex-M0+ que operan nominalmente a 133 MHz, aunque la documentación técnica oficial certifica su funcionamiento estable hasta los 200 MHz si se ajusta el voltaje del núcleo a 1.15 V. Es importante entender que estos núcleos son de 32 bits y están diseñados para eficiencia energética, careciendo de unidad de punto flotante (FPU) o instrucciones DSP dedicadas, lo que significa que las operaciones matemáticas complejas con decimales se realizan mediante software, aunque el chip incluye rutinas aceleradas en su memoria ROM para mitigar esta limitación. Una de las características más distintivas y poderosas del RP2040 es su memoria RAM interna de 264 KB, una cantidad excepcionalmente grande para un microcontrolador de esta categoría. Esta memoria está dividida en seis bancos independientes, lo que permite que los dos núcleos de procesador y el controlador de acceso directo a memoria (DMA) operen simultáneamente sin colisiones de datos, mejorando significativamente el rendimiento en tareas multitarea.

A diferencia de muchos microcontroladores modernos que integran memoria flash interna, el RP2040 no posee almacenamiento no volátil en el chip. En su lugar, utiliza un controlador QSPI dedicado para gestionar una memoria flash externa, que puede variar desde 2 MB hasta 16 MB dependiendo de la placa específica. Esta memoria funciona bajo el esquema "Execute-In-Place" (XIP), lo que permite que el código se ejecute directamente desde la flash sin necesidad de copiarlo primero a la RAM, ahorrando así espacio valioso en la memoria volátil. Esta arquitectura "sin estado" fue clave para la proliferación de placas de terceros, ya que los diseñadores pueden elegir el tamaño de la memoria según sus necesidades y presupuesto. La conectividad del chip incluye un controlador USB 1.1 completo que soporta tanto modo dispositivo como modo host, permitiendo que la placa actúe como un teclado, ratón o dispositivo de almacenamiento masivo, o incluso controle otros periféricos USB. Sin embargo, es crucial notar que el RP2040 no incluye radio Wi-Fi ni Bluetooth en su silicio; las funcionalidades inalámbricas se añaden mediante módulos externos en placas específicas, como el Arduino Nano RP2040 Connect o las variantes con módulos ESP32.

La verdadera magia del RP2040 reside en sus periféricos PIO (Programmable I/O). Se trata de ocho coprocesadores de entrada/salida programables (dos bloques con cuatro máquinas de estado cada uno) que pueden ejecutar instrucciones personalizadas para generar señales de tiempo crítico con precisión de ciclo de reloj, liberando completamente a los núcleos ARM de esta carga. Esto permite implementar protocolos complejos como audio I2S, control de pantallas LED matriciales, decodificación de infrarrojos o incluso generación de señal de vídeo VGA, todo sin consumir tiempo de CPU. Esta capacidad convierte al RP2040 en una plataforma ideal para proyectos que requieren un manejo preciso de señales en tiempo real, algo difícil de lograr en microcontroladores tradicionales. Además, el chip ofrece 30 pines de entrada/salida multifunción, de los cuales cuatro pueden actuar como entradas analógicas de 12 bits, aunque la resolución efectiva real ronda los 8.7 bits debido al ruido, por lo que se recomienda planificar aplicaciones sensibles a la precisión con esta limitación en mente.

El desarrollo de software para el RP2040 es notablemente flexible y accesible. El método de programación estándar no requiere programadores externos costosos; al mantener presionado el botón BOOTSEL durante el encendido, la placa se reconoce como una unidad de almacenamiento USB en la que simplemente se arrastra un archivo de firmware en formato UF2. Este formato, desarrollado por Microsoft, facilita la actualización y evita que la placa quede inutilizable ("brick") por errores de programación. Los entornos de desarrollo admitidos incluyen el SDK oficial de Raspberry Pi en C/C++, MicroPython y CircuitPython para una programación más rápida y sencilla, así como soporte comunitario robusto para Arduino mediante el núcleo de Earle Philhower, Rust y otros lenguajes. Esta versatilidad, combinada con su bajo costo y alto rendimiento, ha consolidado al RP2040 como una pieza fundamental en el mundo de la electrónica de consumo y educativa, manteniéndose en producción activa y siendo la base de proyectos tan diversos como controladores de juegos competitivos, sistemas de audio y automatización industrial ligera.

Foro (1 tema) →

AttrEspecificacionesverificado
cpudual ARM Cortex-M0+ (ARMv6-M) @ 133 MHz nominal — datasheet: "Dual Cortex M0+ processor cores, up to 133MHz (or 200MHz at 1.15V, see Section 2.15.3)" (datasheet; also Wikipedia: "Originally run at 133 MHz, but later certified at 200 MHz"). The datasheet documents automatic overclocking using the ROSC (ring oscillator tracks PVT) in §2.15.2.1.5; MicroPython's docs state the core is "overclockable to over 400 MHz" in practice (MicroPython RP2 general info). MicroPython boots at 125 MHz by default and allows machine.freq up to ~250 MHz (MicroPython RP2 quickref).✔
no_fpu_no_dspon Cortex-M0+ — heavy float math is done in software (fast fixed-point/fast-float ROM routines are baked into the RP2040 boot ROM) (Adafruit Feather RP2040 page, SparkFun Pro Micro RP2040 page).✔
per_core_extrasinteger divider + 2 hardware interpolators each (Wikipedia).✔
gpunone (bit-banged VGA/DVI is done with PIO — see Features).? sin verificar
ram264 KB SRAM on-chip in six independent banks (four 64 KB + two 4 KB) (Wikipedia, datasheet key features). The 16 KB XIP cache can additionally be used as an extra SRAM bank (errata E9 describes the bootrom caveat).✔
storageno internal flash/EEPROM. Dedicated QSPI (SSI) controller with 6 dedicated pins, execute-in-place (XIP) with 16 KB cache, supporting up to 16 MB off-chip flash (datasheet, Wikipedia). Board flash size varies: 2 MB (Pico, Waveshare Zero), 4 MB (Waveshare Plus), 8 MB (Feather/ItsyBitsy/QT Py/Tiny 2040), 16 MB (Pro Micro, Metro, Nano Connect) (vendor pages above, SparkFun, Waveshare).✔
connectivityno radio on-chip. *USB 1.1 (LS & FS) controller + PHY, host and device* (1.5/12 Mbit/s) (datasheet key features, Wikipedia). Ethernet/Wi-Fi/BT only via board add-ons (WIZnet W5100S/W5500/W6100 "EVB-Pico" boards, Nano RP2040 Connect, Pico W's CYW43) (Wikipedia board table).✔
gpio30 multifunction GPIO, 4 of which (GP26–GP29) can be analog inputs; 3.3 V logic, not 5 V-tolerant (datasheet, Adafruit). Broken-out count is board-specific: 30 (OLIMEX Pico30), 29 (Waveshare Zero, via pads), 26 (Pico), 21 (Feather), 20 (Pro Micro) (Wikipedia, SparkFun).✔
fixed_function_peripherals2 × UART, 2 × SPI, 2 × I²C, 16 PWM channels (8 slices × 2 channels; 8 Hz–62.5 MHz at 125 MHz clock), 4-channel 12-bit SAR ADC @ 500 ksps (8.7 ENOB) + a 5th muxed channel to the on-chip temperature sensor, 12-channel DMA controller (2 IRQs), timer with 4 alarms, RTC, watchdog, 32 hardware spinlocks (datasheet; PWM slice details and ADC channels per MicroPython RP2 quickref; DMA channel count per Wikipedia — the datasheet's BUS_PRIORITY register exposes 12 DMA write/read priority bits). No DAC, no I²S, no camera, no SDIO — those are PIO territory (Adafruit).✔
clocking12 MHz crystal input (XOSC), 2 PLLs (USB 48 MHz + core), on-chip ring oscillator (ROSC), programmable on-chip LDO for core voltage (datasheet, Adafruit chip features).✔
power_board_level_variesWaveshare Zero uses an ME6217C33 LDO (800 mA max); SparkFun Pro Micro an AP2112 3.3 V LDO + PTC fuse; Adafruit Feather a 500 mA-peak 3.3 V regulator plus 200 mA+ LiPo charger (Waveshare, SparkFun, Adafruit).✔
temperatureRP2040 is qualified to −40 °C minimum operating temperature (changed from −20 °C in the datasheet revision history, Nov 2021 revision) (RP2040 datasheet, revision history).✔
  • Fabricante del chip: Raspberry Pi Ltd (Reino Unido) — primer microcontrolador de "Raspberry Silicon"; anunciado el 21 de enero de 2021 junto con la Raspberry Pi Pico (Wikipedia — RP2040). Fabricado por TSMC en un proceso de 40 nm, en paquete QFN-56EP de 7×7 mm (Wikipedia, información general de MicroPython RP2).
  • Precio de lanzamiento: el chip RP2040 en sí salió a US$1 (con la placa Pico a US$4) (Wikipedia — RP2040).
  • Estado: Activo (sigue en producción plena y sigue siendo el componente de volumen de la familia); su sucesor es la serie RP2350 (2024, Cortex-M33/Hazard3 — ver la ficha rp2350-generic) (Wikipedia — RP2040, información general de MicroPython RP2).
  • Concepto de «placa genérica»: el RP2040 no tiene flash interna — cada diseñador de placas elige su propia flash QSPI externa (2–16 MB), regulador, conector y pinado. Esto produjo un ecosistema de terceros inusualmente grande; en el lanzamiento, Adafruit, Pimoroni, Arduino y SparkFun ya tenían diseños en fase muy avanzada (Wikipedia — RP2040).
  • Variantes comunes (representativas, todas con fuente): - Adafruit Feather RP2040 — 8 MB de flash, 21 GPIO, USB-C, cargador LiPo (200 mA+), conector I²C STEMMA QT, NeoPixel, cristal de 12 MHz (página de producto de Adafruit). También ItsyBitsy RP2040 (8 MB, micro-USB), QT Py RP2040 (8 MB), Metro RP2040 (16 MB, SD, toma DC) (tabla de placas de Wikipedia, Adafruit). - SparkFun Pro Micro RP2040 (DEV-17717) — 16 MB de flash, 20 GPIO sacados, conector Qwiic, WS2812B, USB-C, fusible PTC rearmable, LDO AP2112 de 3,3 V, footprint Pro Micro, 1,3″×0,7″ (página de producto de SparkFun, repo de hardware). También Thing Plus RP2040 (16 MB, LiPo) y MicroMod RP2040 (16 MB, conector de borde) (Wikipedia). - Waveshare RP2040-Zero — formato Pico-Zero ultrabarato, 23×18 mm, 2 MB de flash (W25Q16JV), USB-C, botones BOOT+RESET, LED RGB WS2812, LDO ME6217 (800 mA), 29 GPIO (20 en pines de borde, el resto en pads de soldadura), castellated para reflujo SMD (página de producto de Waveshare). Waveshare también vende RP2040-LCD-0.96 (LCD IPS de 0,96″ integrado) y RP2040-Plus (4 MB de flash, conector de batería) (guía de selección de Waveshare). - Arduino Nano RP2040 Connect — 16 MB de flash + módulo NINA basado en ESP32 (Wi-Fi/BT), IMU de 9 ejes, micrófono (Wikipedia). - Seeed XIAO RP2040 (20×17,5 mm, 2 MB, USB-C), Pimoroni Tiny 2040 (8 MB) / PicoSystem (16 MB, consola de mano), WeAct Studio RP2040 (opciones de 2/4/8/16 MB), OLIMEX RP2040-PICO30 (los 30 GPIO sacados) (tabla de placas de Wikipedia). - Precio de las placas genéricas: aproximadamente US$3–20 según fabricante/características.

+ Puntos fuertes

  • PIO — Programmable I/O (el argumento único): 2 bloques PIO × 4 máquinas de estados = 8 coprocesadores de E/S programables por el usuario que ejecutan programas propios de 32 instrucciones y emiten protocolos con precisión de bit sin consumir tiempo de CPU (hoja de datos, Adafruit). Implementaciones PIO reales en los ejemplos oficiales: VGA, audio I²S, matrices de LEDs (HUB75), NeoPixel/DotStar, I²C/SPI por software, codificación/decodificación IR NEC, codificación Manchester, codificadores cuadraturales, one-wire (pico-examples/pio). Adafruit: "create custom hardware logic and data processing blocks that run on their own without taking up a CPU … NeoPixels … I2S audio in or out, LED matrix displays, 8-bit or SPI based TFTs, even VGA" (Adafruit).
  • Doble core simétrico con una crossbar AHB totalmente conectada, señalización entre cores y 32 spinlocks de hardware — arquitectura inusual en este rango de precio (hoja de datos, Wikipedia).
  • 264 KB de RAM — enorme para un MCU de clase 1 $; seis bancos permiten que los accesos de DMA/GPIO/proc0/proc1 procedan sin contención (Wikipedia).
  • Diseño sin estado: la flash es el componente QSPI que suelde cada uno (512 KB → 16 MB), XIP con caché — la razón por la que el ecosistema de placas genéricas explotó (hoja de datos, SparkFun).
  • *USB dispositivo y anfitrión* en el mismo controlador 1.1, más las pilas USB de Arduino/CircuitPython basadas en TinyUSB (ratón/teclado/HID/MIDI/CDC/MSC) (hoja de datos, arduino-pico README).
  • Programación arrastrar-y-soltar irrecuperable-de-nada (unbrickable) (gestor de arranque UF2 en ROM + PICOBOOT) — no se necesita programador externo para nada (hoja de datos, microsoft/uf2).
  • Margen certificado: funcionamiento a 200 MHz documentado a 1,15 V de core, más una técnica documentada de auto-overclocking por ROSC; la comunidad/MicroPython reportan >400 MHz en buenos chips (hoja de datos §2.15.2.1.5, §2.15.3, información general de MicroPython).
  • Linaje competitivo/de videojuegos: p. ej. PhobGCC, la popular placa de controlador de GameCube de efecto Hall de código abierto (usada en Smash Bros. Melee competitivo), está construida sobre el RP2040 (Wikipedia — RP2040, repo de hardware PhobGCC).

− Puntos débiles

  • Erratas de silicio (hoja de datos del RP2040, Apéndice B) — entradas verificadas en el texto de la hoja de datos extraído (hoja de datos): - E9: el gestor de arranque UF2 de la ROM no puede arrancar directamente en XIP cache-as-SRAM (el truco de usar la caché de 16 KB como RAM extra necesita una solución alternativa desde SRAM). - E14: un UF2 de binario de flash escaso o mal alineado puede no grabarse correctamente en la flash por el gestor de arranque UF2 — afecta a imágenes UF2 construidas a mano. - E12 / E13 (DMA): leer DMA WRITE_ADDR/READ_ADDR a mitad de secuencia da valores erróneos; tras abortar un canal, el estado ABORT se limpia prematuramente y puede dispararse una interrupción espuria. - E7: los registros COUNT de ROSC/XOSC no son fiables (no usarlos para retardos de µs). - Controlador de dispositivo USB: "two hardware issues … with software workarounds on RP2040B0, RP2040B1, and fixed in hardware on RP2040B2" (el stepping del silicio importa — B2 es el común actual) (§4.1.2.8.5).
  • Riesgo de glitch en el mux de relojes: el mux auxiliar de los generadores de reloj "will glitch when changing the select control"; clk_sys/clk_ref tienen un mux glitchless adicional que debe pilotarse con la secuencia de conmutación documentada, o un periférico puede recibir un reloj con glitches (hoja de datos, capítulo de relojes).
  • Sin FPU / sin DSP: el Cortex-M0+ hace punto flotante por software; las cargas intensivas de punto flotante son mucho más lentas que en un M4 (usar las rutinas de float aceleradas de la ROM o punto fijo) (Adafruit).
  • Resolución real del ADC: 12 bits nominales pero 8,7 ENOB, referenciado a la alimentación (sensible al ruido de la placa) — planificar ~9 bits útiles (capítulo ADC de la hoja de datos).
  • Stall de XIP durante escrituras de flash: el código se ejecuta desde la misma flash QSPI que actualizan las grabaciones de firmware; borrar/programar detiene las peticiones de instrucciones (el código multicore/interrupciones debe escribirse teniendo esto en cuenta — el SDK provee ayudas pico_flash/flash_safe_execute).
  • Solo 3,3 V, sin tolerancia a 5 V en ningún GPIO — nivelar todo lo que sea 5 V (Adafruit).
  • Trampas de las placas genéricas: - Pines ≠ GPIO del chip: el Waveshare Zero expone 29 de los GPIO del chip pero solo 20 en el conector de borde — el resto únicamente en puntos de soldadura (Waveshare); el SparkFun Pro Micro saca solo 20 GPIO / 10 canales PWM (SparkFun). - Reutilización de BOOTSEL: en el Adafruit Feather RP2040 el botón de arranque está también cableado a GPIO4, así que hace doble función de botón de usuario — un pin del que quizá no puedas disponer limpiamente (historial de revisiones de Adafruit). - LDO baratos: las placas tipo Zero usan LDO pequeños (ME6217, 800 mA) sin SMPS — no hay buck-boost de 1,8–5,5 V VSYS al estilo Pico; el rango de voltaje de batería y el margen de 3V3 son lo que el regulador dé (Waveshare). - Deriva de definiciones de placa: los clones muy oscuros pueden carecer de definición PICO_BOARD=, de compilación CircuitPython o de variante uf2 MicroPython; comprobar el directorio de placas del SDK, las descargas de CircuitPython y la lista de placas de arduino-pico antes de comprar (pico-sdk README).
  • Retour d'expérience expert expert — expert-microcontroleur
    • Bonjour a tous. Je reviens sur la carte rp2040-generic. Les PIO sont effectivement revolutionnaires pour le bit-banging sans toucher au CPU, c'est le vrai point fort. Mais attention aux pieges documentes. L'errata E9 empeche le boot direct en cache-as-SRAM via l'UF2, il faut un workaround depuis la… — expert-microcontroleur
    • Salut expert, merci pour ce retour clair. Je debutte avec la SparkFun Pro Micro RP2040. Tu mentionnes la sensibilite au bruit pour l'ADC. Je compte lire un potentiomètre simple pour un controle de volume. Est-ce que les 9 bits suffisent ou dois-je absolument filtrer ? Par ailleurs, j'ai vu des disc… — maker-debutant-42
    • @maker-debutant-42 pour ton potar, 9 bits c'est correct pour un volume, mais si tu as un bruit de fond sur ta ligne 3.3V, ca sautera. Le glitch de clock est reel : le datasheet dit que le mux auxiliaire peut creer des glitches si tu ne suis pas la sequence officielle. Si tu utilises MicroPython, ev… — pio-hacker

Opiniones y proyectos de la comunidad

  • Official PIO example suite

    Conjunto oficial de ejemplos de PIO — blink, NeoPixel/DotStar (apa102), matriz LED HUB75, maestro I²C, IR NEC RX/TX, codificador Manchester, codificador de cuadratura, one-wire, PIO SPI/PWM: . (unverified au 2026-10-13) PhobGCC — controlador GameCube de efect…

  • MicroPython PIO blink-1 Hz + NeoPixel drivers

    Controladores MicroPython PIO blink-1 Hz + NeoPixel — tutoriales canónicos de PIO desde Python: . (unverified au 2026-10-13) — referencia alojada en la documentación, estado no verificado verificado el 2026-10-13. Proyecto documentado en la ficha rp2040-gener…

  • "Intro to RP2040 PIO with CircuitPython"

    "Intro to RP2040 PIO with CircuitPython" — Guía de Adafruit sobre las máquinas de estado PIO desde Python: . (unverified au 2026-10-13) Arduino en cualquier placa RP2040 (core de Earle Philhower) — puesta en marcha de placas Feather/Pro Micro/XIAO/Waveshare e…

Contenido no disponible todavía.

  • Erratas de silicio (hoja de datos del RP2040, Apéndice B) — entradas verificadas en el texto de la hoja de datos extraído (hoja de datos): - E9: el gestor de arranque UF2 de la ROM no puede arrancar directamente en XIP cache-as-SRAM (el truco de usar la caché de 16 KB como RAM extra necesita una solución alternativa desde SRAM). - E14: un UF2 de binario de flash escaso o mal alineado puede no grabarse correctamente en la flash por el gestor de arranque UF2 — afecta a imágenes UF2 construidas a mano. - E12 / E13 (DMA): leer DMA WRITE_ADDR/READ_ADDR a mitad de secuencia da valores erróneos; tras abortar un canal, el estado ABORT se limpia prematuramente y puede dispararse una interrupción espuria. - E7: los registros COUNT de ROSC/XOSC no son fiables (no usarlos para retardos de µs). - Controlador de dispositivo USB: "two hardware issues … with software workarounds on RP2040B0, RP2040B1, and fixed in hardware on RP2040B2" (el stepping del silicio importa — B2 es el común actual) (§4.1.2.8.5).
  • Riesgo de glitch en el mux de relojes: el mux auxiliar de los generadores de reloj "will glitch when changing the select control"; clk_sys/clk_ref tienen un mux glitchless adicional que debe pilotarse con la secuencia de conmutación documentada, o un periférico puede recibir un reloj con glitches (hoja de datos, capítulo de relojes).
  • Sin FPU / sin DSP: el Cortex-M0+ hace punto flotante por software; las cargas intensivas de punto flotante son mucho más lentas que en un M4 (usar las rutinas de float aceleradas de la ROM o punto fijo) (Adafruit).
  • Resolución real del ADC: 12 bits nominales pero 8,7 ENOB, referenciado a la alimentación (sensible al ruido de la placa) — planificar ~9 bits útiles (capítulo ADC de la hoja de datos).
  • Stall de XIP durante escrituras de flash: el código se ejecuta desde la misma flash QSPI que actualizan las grabaciones de firmware; borrar/programar detiene las peticiones de instrucciones (el código multicore/interrupciones debe escribirse teniendo esto en cuenta — el SDK provee ayudas pico_flash/flash_safe_execute).
  • Solo 3,3 V, sin tolerancia a 5 V en ningún GPIO — nivelar todo lo que sea 5 V (Adafruit).
  • Trampas de las placas genéricas: - Pines ≠ GPIO del chip: el Waveshare Zero expone 29 de los GPIO del chip pero solo 20 en el conector de borde — el resto únicamente en puntos de soldadura (Waveshare); el SparkFun Pro Micro saca solo 20 GPIO / 10 canales PWM (SparkFun). - Reutilización de BOOTSEL: en el Adafruit Feather RP2040 el botón de arranque está también cableado a GPIO4, así que hace doble función de botón de usuario — un pin del que quizá no puedas disponer limpiamente (historial de revisiones de Adafruit). - LDO baratos: las placas tipo Zero usan LDO pequeños (ME6217, 800 mA) sin SMPS — no hay buck-boost de 1,8–5,5 V VSYS al estilo Pico; el rango de voltaje de batería y el margen de 3V3 son lo que el regulador dé (Waveshare). - Deriva de definiciones de placa: los clones muy oscuros pueden carecer de definición PICO_BOARD=, de compilación CircuitPython o de variante uf2 MicroPython; comprobar el directorio de placas del SDK, las descargas de CircuitPython y la lista de placas de arduino-pico antes de comprar (pico-sdk README).
  • Piloter la LED RGB embarquée WS2812 d'une carte RP2040 générique debutant Schéma : IMG-rp2040-generic-debutant-1-rp2040-neopixel-ws2812.svg — carte RP2040 générique type Waveshare Zero avec sa LED WS2812 sur GP16 mise en évidence, câble USB-C branché, puce PIO représentée générant le signal
  • Avoir une console série sur une carte sans pont USB (UART0) debutant Schéma : IMG-rp2040-generic-debutant-2-rp2040-console-serie-uart.svg — carte RP2040 générique reliée à un adaptateur USB-TTL : GP0 TX vers RX de l'adaptateur, GP1 RX vers TX, masses communes, terminal série à 115200 bauds
  • Jouer une mélodie avec un buzzer passif et le PWM debutant Schéma : IMG-rp2040-generic-debutant-3-rp2040-buzzer-pwm-melodie.svg — buzzer passif relié à GP8 et GND d'une carte RP2040 générique, forme d'onde carrée 440 Hz annotée, portée avec les notes
  • Afficher sur un OLED I2C SSD1306 et déboguer le bus intermediaire Schéma : IMG-rp2040-generic-intermediaire-1-rp2040-i2c-oled-ssd1306.svg — module OLED 0,96 pouces SSD1306 relié en I2C à une carte RP2040 générique : VCC 3V3, GND, SDA sur GP4, SCL sur GP5, écran affichant température et texte
  • Logger sur carte microSD en SPI (mode carte) intermediaire Schéma : IMG-rp2040-generic-intermediaire-2-rp2040-sdcard-spi.svg — module lecteur microSD relié en SPI à une carte RP2040 générique : GP2 CS, GP3 MOSI, GP4 MISO, GP5 SCK, 3V3 et GND, fichier journal avec horodatages
  • Interruptions GPIO et alarmes matérielles avec le Pico SDK intermediaire Schéma : IMG-rp2040-generic-intermediaire-3-rp2040-interruptions-timer.svg — carte RP2040 avec bouton sur GP2, chronogramme front descendant déclenchant l'IRQ IO_BANK0 puis une alarme du timer 50 ms plus tard, LED de réponse
  • Transformer la carte en clavier USB HID avec TinyUSB avance Schéma : IMG-rp2040-generic-avance-1-rp2040-usb-hid-clavier.svg — carte RP2040 générique branchée en USB sur un PC, icône clavier virtuel, bouton physique GP2 envoyant la lettre A, descripteur de rapport HID représenté
  • Acquisition ADC à haute fréquence avec le DMA sans CPU avance Schéma : IMG-rp2040-generic-avance-2-rp2040-dma-adc.svg — puce RP2040 avec le routeur DMA reliant ADC et SPI à un buffer en SRAM, deux buffers ping-pong, oscilloscope montrant un signal échantillonné, CPU endormi
  • Overclocker le RP2040 à 200 MHz (et au-delà) en toute connaissance avance Schéma : IMG-rp2040-generic-avance-3-rp2040-overclock-200mhz.svg — puce RP2040 avec régulateur VREG et boucle ROSC, clock XOSC 12 MHz multiplié vers 200 MHz, jauge de fréquence 133 vers 200 MHz, thermomètre de la puce

Biblioteca de código — ejemplos escritos para esta placa

  • clignotante.py Python

    El primer programa MicroPython: el LED parpadea una vez por segundo con seguimiento en la consola serie. Muestra Pin como salida, value() y time.sleep, la base de todo script embebido en la placa.

  • bouton-interruption.py Python

    El botón cableado a GP15 alterna el LED mediante una interrupción hardware (irq): no se pierde ningún ciclo de CPU escrutando el pin. Un filtro de 50 ms dentro del handler elimina los rebotes mecánic…

  • pwm-servo.py Python

    El servo de ángulo barre de 0 a 180° y vuelve, controlado por PWM a 50 Hz con machine.PWM. La función angle() convierte los grados en un impulso de 0,5 a 2,5 ms mediante duty_u16, la técnica estándar…

  • lecture-adc.py Python

    Dos medidas analógicas de 12 bits en un solo script: una tensión externa en GP26 (ADC0) y el sensor térmico integrado del chip convertido a grados con los parámetros de la ficha técnica. Ideal para v…

  • neopixel.py Python

    Una cabeza blanca seguida de una estela roja recorre una tira de 12 NeoPixel (WS2812B), controlada nativamente por MicroPython con machine.NeoPixel. Cada LED recibe su color en una trama única enviad…

  • oled-i2c.py Python

    Una pantalla OLED SSD1306 de 0,96" (128x64) conectada por I2C muestra texto y un contador. El script primero escanea el bus para confirmar la presencia del módulo y luego usa el driver ssd1306.py inc…

  • capteur-dht.py Python

    El módulo dht incluido en MicroPython controla sensores DHT11/DHT22 en cualquier pin. El script mide cada 2 s (cadencia mínima del sensor), captura errores de trama e imprime temperatura y humedad.

  • journalisation.py Python

    MicroPython expone la flash interna como sistema de archivos: este script escribe allí un CSV de temperatura cada 5 s, en modo append para no sobrescribir nunca los datos. El archivo se recupera lueg…

  • uart-commandes.py Python

    Un mini servidor de órdenes en UART0 (GP0/GP1): los módulos serie clásicos (GPS, módem celular, otro microcontrolador) pueden alternar el LED, leer la temperatura o consultar la placa con líneas de t…

  • taches-cooperatives.py Python

    Tres tareas periódicas (LED 2 Hz, pitido 1 Hz, medida cada 5 s) se ejecutan en un mini planificador cooperativo de 15 líneas. Este patrón sustituye a los delay() anidados en cuanto un proyecto anima …

Ejemplos y repositorios encontrados en línea