Parts Library
Raspberry Pi RP2040 thumbnail

Raspberry Pi RP2040

Bare-chip dual-core Arm Cortex-M0+ microcontroller in QFN-56 7×7 mm package. 264 KB SRAM with NO internal flash (external QSPI flash required for code execution via XIP). 30 multi-function GPIOs (GPIO0..GPIO29), 2x UART, 2x I2C, 2x SPI, 16 PWM channels (8 slices), 4-channel 12-bit ADC, USB 1.1 host/device PHY, and 8 user-programmable I/O state machines (PIO) across two PIO blocks. Flexible system clock up to 133 MHz default.

MANUFACTURERRaspberry Pi
PART NUMBERRP2040
VERSION2.0.0
DOMAINSelectrical, mechanical, thermal
TAXONOMYmicrocontroller.raspberry_pi
LICENSEApache-2.0
i2cspiuartusb

UHD definition — interfaces

INTERFACE
DOMAIN
PROTOCOL · ROLE
SLOTS / PROFILE
PARAMETERS
ADC
electrical
analog · input
channel → GPIO26 + GPIO27 + GPIO28 + GPIO29 (profile: ADC0-ADC3 (GPIO26-29, pins 38-41))
resolution 12 dimensionless
SPI 0
electrical
spi · master
mosi → GPIO3 · miso → GPIO0 · sck → GPIO2 · ss → GPIO1 (profile: SPI0 on GPIO0-3 (pins 2-5) · +3 more)
clock_freq 0 Hz – 62.5 MHz
SPI 1
electrical
spi · master
mosi → GPIO11 · miso → GPIO8 · sck → GPIO10 · ss → GPIO9 (profile: SPI1 on GPIO8-11 (pins 11-14) · +2 more)
clock_freq 0 Hz – 62.5 MHz
UART 0
electrical
uart · host / device
rx → GPIO1 · tx → GPIO0 · rts → GPIO3 · cts → GPIO2 (profile: UART0 on GPIO0-3 (pins 2-5) · +3 more)
—
UART 1
electrical
uart · host / device
rx → GPIO5 · tx → GPIO4 · rts → GPIO7 · cts → GPIO6 (profile: UART1 on GPIO4-7 (pins 6-9) · +3 more)
—
I2C 0
electrical
i2c · master / slave
sda → GPIO0 · scl → GPIO1 (profile: I2C0 on GPIO0/1 (pins 2/3) · +7 more)
clock_freq 100 kHz – 1 MHz
I2C 1
electrical
i2c · master / slave
sda → GPIO2 · scl → GPIO3 (profile: I2C1 on GPIO2/3 (pins 4/5) · +6 more)
clock_freq 100 kHz – 1 MHz
Quad-SPI (XIP Flash Bus)
electrical
spi · master
sclk → QSPI_SCLK · ss_n → QSPI_SS_N · sd0 → QSPI_SD0 · sd1 → QSPI_SD1 · sd2 → QSPI_SD2 · sd3 → QSPI_SD3 (profile: Dedicated QSPI pads (pins 51-56))
Max data rate (QSPI quad-SDR) 133000000 bit/s
PWM
electrical
pwm · output
pwm0_a · pwm0_b · pwm1_a · pwm1_b · pwm2_a · pwm2_b · pwm3_a · pwm3_b · pwm4_a · pwm4_b · pwm5_a · pwm5_b · pwm6_a · pwm6_b · pwm7_a · pwm7_b
—
PIO0 (Programmable I/O Block 0)
electrical
pio · input / output
gpio
—
PIO1 (Programmable I/O Block 1)
electrical
pio · input / output
gpio
—
NeoPixel / WS2812B LED Control
electrical
digital · transmitter
data
NRZ wire bit rate 800 kHz
USB 1.1 Device
electrical
usb · device
dp → USB_DP · dm → USB_DM (profile: USB_DP / USB_DM (pins 47/46))
—
USB 1.1 Host
electrical
usb · host
dp → USB_DP · dm → USB_DM (profile: USB_DP / USB_DM (pins 47/46))
—
USB VBUS Detect
electrical
digital · input
signal
—
USB VBUS Enable
electrical
digital · output
signal
—
USB Over-current Detect
electrical
digital · input
signal
—
Clock GP Input
electrical
clock · input
in → GPIO20 (profile: CLOCK_GPIN0 (GPIO20, pin 31) · +1 more)
—
Clock GP Output
electrical
clock · output
out → GPIO21 (profile: CLOCK_GPOUT0 (GPIO21, pin 32) · +3 more)
—
External Crystal Oscillator (XOSC)
electrical
clock · input
xin → XIN · xout → XOUT (profile: XIN/XOUT (pins 20/21))
clock_freq 12 MHz
SWD (Serial Wire Debug)
electrical
swd · target
swclk → SWCLK · swdio → SWDIO (profile: SWCLK/SWDIO (pins 24/25))
—
RUN Reset
electrical
digital · input
run → RUN (profile: RUN (pin 26))
—
QFN-56 7×7 mm Surface-Mount Footprint
mechanical
mechanical_connection · mounting_point
—
—
Required Power Pins: all_of( pin_1, pin_10, pin_22, pin_23, pin_33, pin_42, pin_48, pin_49, pin_50, pad_gnd ) · IOVDD Pins (one 1.8-3.3 V rail): all_of( pin_1, pin_10, pin_22, pin_33, pin_42, pin_49 ) · DVDD Pins (one 1.1 V core rail): all_of( pin_23, pin_50 ) · Dedicated QSPI Flash Pins: all_of( pin_51, pin_52, pin_53, pin_54, pin_55, pin_56 ) · USB PHY Mode (one PHY: device or host): one_of( usb_device, usb_host )

Artifacts