Bringup
Open the editor
Microcontroller with real firmwareRP2040rp2040

RP2040 (Cortex-M0+, Firmware)

RP2040 on its own (QFN-56): same simulation as the Pico. On the board it needs QSPI flash, a 12 MHz crystal and decoupling of the 1.1 V core regulator (Raspberry Pi hardware design guide).

IOVDDGNDGP0GP1GP2GP3GP4GP5GP6GP7GP8GP9GP10GP11GP12GP13GP14GP15GP16GP17GP18GP19GP20GP21GP22GP23GP24GP25GP26/ADC0GP27/ADC1GP28/ADC2GP29/ADC3RUNRP2040
Schematic symbol

Key data

Category
ICs
Simulation model
Microcontroller with real firmware
Manufacturer part number
RP2040
Reference prefix
U
Pins
33
Land pattern
QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm

Notes

The firmware runs on an emulated CPU core, instruction by instruction. Peripherals that the model implements (GPIO, timers, UART, SPI, I²C, ADC and others, see the description) act on the pins of the circuit, so the analog parts around the chip see the same voltages and timing as on a real board.

  • Right-click the part and choose "Open in code editor" to write and compile its code; "Serial monitor" shows its UART output.
  • In the inspector you can load a demo firmware or your own ELF / Intel HEX / BIN file instead.
  • GPIO pins are real circuit pins: an LED on an output needs a series resistor, an input needs a defined level (pull-up or pull-down).
  • The debugger in the code view stops at breakpoints and shows registers, variables and the call stack.

Simulation model

An emulated CPU core runs the firmware binary instruction by instruction. The GPIO pins are pins of the analog circuit: outputs drive through a driver resistance, inputs read the voltage with thresholds.

Device
rp2040
CPU core
ARM Cortex-M0+ dual-core
Emulator
ARM Cortex-M emulator
Firmware
Arduino sketch compiled in the code view (Arduino-Pico core), or your own ELF / Intel HEX / BIN file
Flash / RAM for firmware
2 MB / 256 KB
Supply pins
IOVDD / GND
Mapped GPIO pins
31

Pins 33

simulatedreal chip onlyPin functions from the emulator and the datasheet.

PinNameFunctionsUse
IOVDDIOVDDSupply pinI/O supply 3.3 V: 100 nF next to every IOVDD pin
GNDGNDGround pinGround
GP0GP0I/O pinSPI0_RXUART0_TXI2C0_SDAPWM0_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP1GP1I/O pinSPI0_CSnUART0_RXI2C0_SCLPWM0_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP2GP2I/O pinSPI0_SCKUART0_CTSI2C1_SDAPWM1_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP3GP3I/O pinSPI0_TXUART0_RTSI2C1_SCLPWM1_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP4GP4I/O pinSPI0_RXUART1_TXI2C0_SDAPWM2_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP5GP5I/O pinSPI0_CSnUART1_RXI2C0_SCLPWM2_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP6GP6I/O pinSPI0_SCKUART1_CTSI2C1_SDAPWM3_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP7GP7I/O pinSPI0_TXUART1_RTSI2C1_SCLPWM3_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP8GP8I/O pinSPI1_RXUART1_TXI2C0_SDAPWM4_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP9GP9I/O pinSPI1_CSnUART1_RXI2C0_SCLPWM4_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP10GP10I/O pinSPI1_SCKUART1_CTSI2C1_SDAPWM5_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP11GP11I/O pinSPI1_TXUART1_RTSI2C1_SCLPWM5_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP12GP12I/O pinSPI1_RXUART0_TXI2C0_SDAPWM6_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP13GP13I/O pinSPI1_CSnUART0_RXI2C0_SCLPWM6_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP14GP14I/O pinSPI1_SCKUART0_CTSI2C1_SDAPWM7_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP15GP15I/O pinSPI1_TXUART0_RTSI2C1_SCLPWM7_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP16GP16I/O pinSPI0_RXUART0_TXI2C0_SDAPWM0_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP17GP17I/O pinSPI0_CSnUART0_RXI2C0_SCLPWM0_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP18GP18I/O pinSPI0_SCKUART0_CTSI2C1_SDAPWM1_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP19GP19I/O pinSPI0_TXUART0_RTSI2C1_SCLPWM1_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP20GP20I/O pinSPI0_RXUART1_TXI2C0_SDAPWM2_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP21GP21I/O pinSPI0_CSnUART1_RXI2C0_SCLPWM2_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP22GP22I/O pinSPI0_SCKUART1_CTSI2C1_SDAPWM3_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP23GP23I/O pinSPI0_TXUART1_RTSI2C1_SCLPWM3_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP24GP24I/O pinSPI1_RXUART1_TXI2C0_SDAPWM4_AGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP25GP25I/O pinSPI1_CSnUART1_RXI2C0_SCLPWM4_BGPIO; SPI, UART, I²C or PWM by function select (see the functions)
GP26GP26/ADC0I/O pinSPI1_SCKUART1_CTSI2C1_SDAPWM5_AADC0Analog input: potentiometer, sensor voltage (0 V … supply)
GP27GP27/ADC1I/O pinSPI1_TXUART1_RTSI2C1_SCLPWM5_BADC1Analog input: potentiometer, sensor voltage (0 V … supply)
GP28GP28/ADC2I/O pinSPI1_RXUART0_TXI2C0_SDAPWM6_AADC2Analog input: potentiometer, sensor voltage (0 V … supply)
GP29GP29/ADC3I/O pinSPI1_CSnUART0_RXI2C0_SCLPWM6_BADC3Analog input: potentiometer, sensor voltage (0 V … supply)
RUNRUNInput pinRUNReset, active low: 10 kΩ pull-up, 100 nF to GND, optional button to GND

PCB

Draft: check before productionQFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm

land pattern not verified

PackageLand patternStatusSource
QFN-56QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmDraft: check before productionKiCad 10.0.7: symbol RP2040, footprint Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm; Flash, crystal, VREG and USB pins are not in the schematic symbol: follow the hardware design guide
  • RUN Pull-up 10 kΩ to IOVDD (or a button to GND for reset)