RP2040
RP2040 provides two Arm Cortex-M0+ cores, 264 kB of SRAM, an external QSPI flash interface and eight programmable I/O state machines. It is a microcontroller, not a Linux-class Raspberry Pi single-board computer.
RP2040 has two PIO blocks, each with four state machines that execute short programs for GPIO manipulation and data transfer. These are specialised I/O processors, not arbitrary FPGA logic. Firmware coordinates them with the main cores, FIFOs and DMA; buffer capacity and data-transfer bandwidth still limit the complete system.
In plain terms
Two general-purpose workers plus a team of specialist signal operators. The PIO operators follow short routines so the main workers do not have to time every pin change.
Why designers use it
- Implementing supported custom digital interfaces with PIO.
- Learning embedded programming on boards such as Pico.
- Using the documented C/C++ SDK or a suitable language runtime.
Best for
- Pico boards
- Custom protocols (PIO)
- MicroPython class
Key specifications
- Cores: Two Arm Cortex-M0+
- Clock: Use the datasheet's voltage-dependent limits; 133 MHz across specified process, voltage and temperature variations
- SRAM: 264 kB
- Program flash: External QSPI; documented support up to 16 MB
- PIO: Two blocks, four state machines per block
- Supplies: Separate I/O, core, analog and USB requirements; follow the power-supply sections
When not to use it
- When a bare chip must provide wireless connectivity: RP2040 has no integrated radio; Pico W adds wireless circuitry on its board.
- When measured power, memory, throughput or timing cannot meet the application.
- When required product qualifications have not been established for the complete design.
Common mistakes
- Calling Pico W an RP2040W chip.
- Confusing a PIO instruction set with the amount of program memory.
- Assuming a fast capture rate guarantees equally fast sustained USB transfer.
- Connecting signals using a Pico header label as if it were the RP2040 package pin number.
- Ignoring external flash compatibility and the documented boot procedure.
Where you will find it
- The original Pico family uses RP2040; Pico W and WH add board-level wireless connectivity.
- Raspberry Pi's SDK documents PIO state machines, FIFO transfers, DMA and GPIO configuration for custom interfaces.
A short history
Raspberry Pi announced RP2040 and Pico in January 2021. The announcement distinguishes the company's first microcontroller chip from the development board built around it. The RP2040 datasheet documents a 40 nm process and an architecture aimed at flexible digital I/O; board assembly and semiconductor fabrication are different stages.
Good to know
- One USB controller can support host or device operation without being two independent ports.
- A chip can have eight PIO state machines while its development board uses some resources for other functions.