1. Introduction

RP2350 is a new family of microcontrollers from Raspberry Pi that offers major enhancements over RP2040. Key features include:

Table 1 shows the RP2350 family of devices, including options for QFN-80 (10 × 10 mm) and QFN-60 (7 × 7 mm) packages, with and without flash-in-package.

Table 1. RP2350 device family

ProductPackageInternal FlashGPIOAnalogue Inputs
RP2350AQFN-60None304
RP2350BQFN-80None488
RP2354AQFN-602 MB304
RP2354BQFN-802 MB488

1.1. The chip

Dual Cortex-M33 or Hazard3 processors access RP2350's memory and peripherals via AHB and APB bus fabric.

Figure 1. A system overview of the RP2350 chip

A system overview diagram of the RP2350 chip. The diagram shows the internal components and their interconnections. On the left, 'IOs' include 'Crystal', 'SWD', 'GPIO', and 'QSPI'. The 'Clock generation' block contains an 'Internal oscillator' and two 'PLL' blocks. The 'Processor subsystem' includes 'Proc0', 'Proc1', 'Interrupts', and 'DMA'. A central 'Bus Fabric' connects these to various 'Peripherals' (SPI x2, PWM, UART x2, Timer, AON Timer, I2C x2, ADC & TS, Reset control, Power control, Sysctrl, Sysinfo, Watchdog, Security, HSTX) and 'PIO' (PIO0, PIO1, PIO2). The 'Memory' block contains 'XIP / Cache', 'ROM', and multiple 'SRAM' banks. External interfaces include 'OTP', 'USB', and a 'Core Supply Regulator (Switcher and low power LDO)'. Bidirectional arrows indicate data flow between the chip and these external components.
A system overview diagram of the RP2350 chip. The diagram shows the internal components and their interconnections. On the left, 'IOs' include 'Crystal', 'SWD', 'GPIO', and 'QSPI'. The 'Clock generation' block contains an 'Internal oscillator' and two 'PLL' blocks. The 'Processor subsystem' includes 'Proc0', 'Proc1', 'Interrupts', and 'DMA'. A central 'Bus Fabric' connects these to various 'Peripherals' (SPI x2, PWM, UART x2, Timer, AON Timer, I2C x2, ADC & TS, Reset control, Power control, Sysctrl, Sysinfo, Watchdog, Security, HSTX) and 'PIO' (PIO0, PIO1, PIO2). The 'Memory' block contains 'XIP / Cache', 'ROM', and multiple 'SRAM' banks. External interfaces include 'OTP', 'USB', and a 'Core Supply Regulator (Switcher and low power LDO)'. Bidirectional arrows indicate data flow between the chip and these external components.

Code may execute directly from external memory through a dedicated QSPI memory interface in the execute-in-place subsystem (XIP). The cache improves XIP performance significantly. Both flash and RAM can attach via this interface.

Debug is available via the SWD interface. This allows an external host to load, run, halt and inspect software running on the system, or configure the execution trace output.

Internal SRAM can contain code or data. It is addressed as a single 520 kB region, but physically partitioned into 10 banks to allow simultaneous parallel access from different managers. All SRAM supports single-cycle access.

A high-bandwidth system DMA offloads repetitive data transfer tasks from the processors.

GPIO pins can be driven directly via single-cycle IO (SIO), or from a variety of dedicated logic functions such as the hardware SPI, I2C, UART and PWM. Programmable IO controllers (PIO) can provide a wider variety of IO functions, or supplement the number of fixed-function peripherals.

A USB controller with embedded PHY provides FS/LS Host or Device connectivity under software control.

Four or eight ADC inputs (depending on package size) are shared with GPIO pins.

Two PLLs provide a fixed 48 MHz clock for USB or ADC, and a flexible system clock up to 150 MHz. A crystal oscillator provides a precise reference for the PLLs.

An internal voltage regulator supplies the core voltage, so you need generally only supply the IO voltage. It operates as a

switched mode buck converter when the system is awake, providing up to 200 mA at a variable output voltage, and can switch to a low-quiescent-current LDO mode when the system is asleep, providing up to 1 mA for state retention.

The system features low-power states where unused logic is powered off, supporting wakeup from timer or IO events. The amount of SRAM retained during power-down is configurable.

The internal 8 kB one-time-programmable storage (OTP) contains chip information such as unique identifiers, can be used to configure hardware and bootrom security features, and can be programmed with user-supplied code and data.

The built-in bootrom implements direct boot from flash or OTP, and serial boot from USB or UART. Code signature enforcement is supported for all boot media, using a key fingerprint registered in internal OTP storage. OTP can also store decryption keys for encrypted boot, preventing flash contents from being read externally.

RISC-V architecture support is implemented by dynamically swapping the Cortex-M33 (Armv8-M) processors with Hazard3 (RV32IMAC+) processors. Both architectures are available on all RP2350-family devices. The RISC-V cores support debug over SWD, and can be programmed with the same SDK as the Arm cores.

1.2. Pinout reference

This section provides a quick reference for pinout and pin functions. Full details, including electrical specifications and package drawings, can be found in Chapter 14 .

1.2.1. Pin locations

1.2.1.1. QFN-60 (RP2350A)

Figure 2. RP2350
Pinout for QFN-60
7×7mm (reduced ePad
size)

Pinout diagram for QFN-60 (RP2350A) showing pin locations and functions.

The diagram shows the top view of the QFN-60 package with pins numbered 1 to 60. The pins are arranged in a square grid with a central GND pad. The pin functions are as follows:

PinFunction
1IOVDD
2GPI00
3GPI01
4GPI02
5GPI03
6DVDD
7GPI04
8GPI05
9GPI06
10GPI07
11IOVDD
12GPI08
13GPI09
14GPI010
15GPI011
16GPI012
17GPI013
18GPI014
19GPI015
20IOVDD
21XIN
22XOUT
23DVDD
24SWCLK
25SWDIO
26RUN
27GPI016
28GPI017
29GPI018
30IOVDD
31GPI019
32GPI020
33GPI021
34GPI022
35GPI023
36GPI024
37GPI025
38IOVDD
39DVDD
40GPI026_ADC0
41GPI027_ADC1
42GPI028_ADC2
43GPI029_ADC3
44ADC_AVDD
45IOVDD
46VREG_AVDD
47VREG_PGND
48VREG_LX
49VREG_VIN
50VREG_FB
51USB_DM
52USB_DP
53USB_OTP_VDD
54QSPL_IOVDD
55QSPL_SD3
56QSPL_SCLK
57QSPL_SD0
58QSPL_SD2
59QSPL_SD1
60QSPL_SS
Pinout diagram for QFN-60 (RP2350A) showing pin locations and functions.

1.2.1.2. QFN-80 (RP2350B)

Figure 3. RP2350
Pinout for QFN-80
10×10mm (reduced
ePad size)

Pinout diagram for RP2350B QFN-80 package showing pin numbers 1-80 and their functions.

The diagram shows the pinout for the RP2350B QFN-80 package. The pins are arranged in a square grid with a central GND pad. The top view shows the following pin functions:

Pinout diagram for RP2350B QFN-80 package showing pin numbers 1-80 and their functions.

1.2.2. Pin descriptions

Table 2. The function
of each pin is briefly
described here. Full
electrical
specifications can be
found in Chapter 14 .

NameDescription
GPIOxGeneral-purpose digital input and output. RP2350 can connect one of a number of internal peripherals to each GPIO, or control GPIOs directly from software.
GPIOx/ADCyGeneral-purpose digital input and output, with analogue-to-digital converter function. The RP2350 ADC has an analogue multiplexer which can select any one of these pins, and sample the voltage.
QSPiXInterface to a SPI, Dual-SPI or Quad-SPI flash or PSRAM device, with execute-in-place support. These pins can also be used as software-controlled GPIOs, if they are not required for flash access.
USB_DM and USB_DPUSB controller, supporting Full Speed device and Full/Low Speed host. A 27Ω series termination resistor is required on each pin, but bus pullups and pulldowns are provided internally. These pins can be used as software-controlled GPIOs, if USB is not required.
XIN and XOUTConnect a crystal to RP2350's crystal oscillator. XIN can also be used as a single-ended CMOS clock input, with XOUT disconnected. The USB bootloader defaults to a 12MHz crystal or 12MHz clock input, but this can be configured via OTP.
RUNGlobal asynchronous reset pin. Reset when driven low, run when driven high. If no external reset is required, this pin can be tied directly to IOVDD.
SWCLK and SWDIOAccess to the internal Serial Wire Debug multi-drop bus. Provides debug access to both processors, and can be used to download code.
GNDSingle external ground connection, bonded to a number of internal ground pads on the RP2350 die.
NameDescription
IOVDDPower supply for digital GPIOs, nominal voltage 1.8V to 3.3V
USB_OTP_VDDPower supply for internal USB Full Speed PHY and OTP storage, nominal voltage 3.3V
ADC_AVDDPower supply for analogue-to-digital converter, nominal voltage 3.3V
QSPI_IOVDDPower supply for QSPI IOs, nominal voltage 1.8V to 3.3V
VREG_AVDDAnalogue power supply for internal core voltage regulator, nominal voltage 3.3V
VREG_PGNDPower-ground connection for internal core voltage regulator, tie to ground externally
VREG_LXSwitched-mode output for internal core voltage regulator, connected to external inductor. Max current 200 mA, nominal voltage 1.1V after filtering.
VREG_VINPower input for internal core voltage regulator, nominal voltage 2.7V to 5.5V
VREG_FBVoltage feedback for internal core voltage regulator, connect to filtered VREG output (e.g. to DVDD, if the regulator is used to supply DVDD)
DVDDDigital core power supply, nominal voltage 1.1V. Must be connected externally, either to the voltage regulator output, or an external board-level power supply.

1.2.3. GPIO functions (Bank 0)

Each individual GPIO pin can be connected to an internal peripheral via the GPIO functions defined below. Some internal peripheral connections appear in multiple places to allow some system level flexibility. SIO, PIO0, PIO1 and PIO2 can connect to all GPIO pins and are controlled by software (or software controlled state machines) so can be used to implement many functions.

Table 3. General Purpose Input/Output (GPIO) Bank 0 Functions

GPIOF0F1F2F3F4F5F6F7F8F9F10F11
0SPI0 RXUART0 TXI2C0 SDAPWM0 ASIOPI00PI01PI02QMI CS1nUSB OVCUR DET
1SPI0 CSnUART0 RXI2C0 SCLPWM0 BSIOPI00PI01PI02TRACECLKUSB VBUS DET
2SPI0 SCKUART0 CTSI2C1 SDAPWM1 ASIOPI00PI01PI02TRACEDATA0USB VBUS ENUART0 TX
3SPI0 TXUART0 RTSI2C1 SCLPWM1 BSIOPI00PI01PI02TRACEDATA1USB OVCUR DETUART0 RX
4SPI0 RXUART1 TXI2C0 SDAPWM2 ASIOPI00PI01PI02TRACEDATA2USB VBUS DET
5SPI0 CSnUART1 RXI2C0 SCLPWM2 BSIOPI00PI01PI02TRACEDATA3USB VBUS EN
6SPI0 SCKUART1 CTSI2C1 SDAPWM3 ASIOPI00PI01PI02USB OVCUR DETUART1 TX
7SPI0 TXUART1 RTSI2C1 SCLPWM3 BSIOPI00PI01PI02USB VBUS DETUART1 RX
8SPI1 RXUART1 TXI2C0 SDAPWM4 ASIOPI00PI01PI02QMI CS1nUSB VBUS EN
9SPI1 CSnUART1 RXI2C0 SCLPWM4 BSIOPI00PI01PI02USB OVCUR DET
10SPI1 SCKUART1 CTSI2C1 SDAPWM5 ASIOPI00PI01PI02USB VBUS DETUART1 TX
11SPI1 TXUART1 RTSI2C1 SCLPWM5 BSIOPI00PI01PI02USB VBUS ENUART1 RX
12HSTXSPI1 RXUART0 TXI2C0 SDAPWM6 ASIOPI00PI01PI02CLOCK GPIN0USB OVCUR DET
13HSTXSPI1 CSnUART0 RXI2C0 SCLPWM6 BSIOPI00PI01PI02CLOCK GPOUT0USB VBUS DET
14HSTXSPI1 SCKUART0 CTSI2C1 SDAPWM7 ASIOPI00PI01PI02CLOCK GPIN1USB VBUS ENUART0 TX
15HSTXSPI1 TXUART0 RTSI2C1 SCLPWM7 BSIOPI00PI01PI02CLOCK GPOUT1USB OVCUR DETUART0 RX
16HSTXSPI0 RXUART0 TXI2C0 SDAPWM0 ASIOPI00PI01PI02USB VBUS DET
17HSTXSPI0 CSnUART0 RXI2C0 SCLPWM0 BSIOPI00PI01PI02USB VBUS EN
18HSTXSPI0 SCKUART0 CTSI2C1 SDAPWM1 ASIOPI00PI01PI02USB OVCUR DETUART0 TX
19HSTXSPI0 TXUART0 RTSI2C1 SCLPWM1 BSIOPI00PI01PI02QMI CS1nUSB VBUS DETUART0 RX
20SPI0 RXUART1 TXI2C0 SDAPWM2 ASIOPI00PI01PI02CLOCK GPIN0USB VBUS EN
21SPI0 CSnUART1 RXI2C0 SCLPWM2 BSIOPI00PI01PI02CLOCK GPOUT0USB OVCUR DET
22SPI0 SCKUART1 CTSI2C1 SDAPWM3 ASIOPI00PI01PI02CLOCK GPIN1USB VBUS DETUART1 TX
GPIOF0F1F2F3F4F5F6F7F8F9F10F11
23SPI0 TXUART1 RTSI2C1 SCLPWM3 BSIOPI00PI01PI02CLOCK GPOUT1USB VBUS ENUART1 RX
24SPI1 RXUART1 TXI2C0 SDAPWM4 ASIOPI00PI01PI02CLOCK GPOUT2USB OVCUR DET
25SPI1 CSnUART1 RXI2C0 SCLPWM4 BSIOPI00PI01PI02CLOCK GPOUT3USB VBUS DET
26SPI1 SCKUART1 CTSI2C1 SDAPWM5 ASIOPI00PI01PI02USB VBUS ENUART1 TX
27SPI1 TXUART1 RTSI2C1 SCLPWM5 BSIOPI00PI01PI02USB OVCUR DETUART1 RX
28SPI1 RXUART0 TXI2C0 SDAPWM6 ASIOPI00PI01PI02USB VBUS DET
29SPI1 CSnUART0 RXI2C0 SCLPWM6 BSIOPI00PI01PI02USB VBUS EN
GPIOs 30 through 47 are QFN-80 only:
30SPI1 SCKUART0 CTSI2C1 SDAPWM7 ASIOPI00PI01PI02USB OVCUR DETUART0 TX
31SPI1 TXUART0 RTSI2C1 SCLPWM7 BSIOPI00PI01PI02USB VBUS DETUART0 RX
32SPI0 RXUART0 TXI2C0 SDAPWM8 ASIOPI00PI01PI02USB VBUS EN
33SPI0 CSnUART0 RXI2C0 SCLPWM8 BSIOPI00PI01PI02USB OVCUR DET
34SPI0 SCKUART0 CTSI2C1 SDAPWM9 ASIOPI00PI01PI02USB VBUS DETUART0 TX
35SPI0 TXUART0 RTSI2C1 SCLPWM9 BSIOPI00PI01PI02USB VBUS ENUART0 RX
36SPI0 RXUART1 TXI2C0 SDAPWM10 ASIOPI00PI01PI02USB OVCUR DET
37SPI0 CSnUART1 RXI2C0 SCLPWM10 BSIOPI00PI01PI02USB VBUS DET
38SPI0 SCKUART1 CTSI2C1 SDAPWM11 ASIOPI00PI01PI02USB VBUS ENUART1 TX
39SPI0 TXUART1 RTSI2C1 SCLPWM11 BSIOPI00PI01PI02USB OVCUR DETUART1 RX
40SPI1 RXUART1 TXI2C0 SDAPWM8 ASIOPI00PI01PI02USB VBUS DET
41SPI1 CSnUART1 RXI2C0 SCLPWM8 BSIOPI00PI01PI02USB VBUS EN
42SPI1 SCKUART1 CTSI2C1 SDAPWM9 ASIOPI00PI01PI02USB OVCUR DETUART1 TX
43SPI1 TXUART1 RTSI2C1 SCLPWM9 BSIOPI00PI01PI02USB VBUS DETUART1 RX
44SPI1 RXUART0 TXI2C0 SDAPWM10 ASIOPI00PI01PI02USB VBUS EN
GPIOF0F1F2F3F4F5F6F7F8F9F10F11
45SPI1 CSnUART0 RXI2C0 SCLPWM10 BSIOPIO0PIO1PIO2USB OVCUR DET
46SPI1 SCKUART0 CTSI2C1 SDAPWM11 ASIOPIO0PIO1PIO2USB VBUS DETUART0 TX
47SPI1 TXUART0 RTSI2C1 SCLPWM11 BSIOPIO0PIO1PIO2QMI CS1nUSB VBUS ENUART0 RX

Table 4. GPIO bank 0 function descriptions

Function NameDescription
SPIxConnect one of the internal PL022 SPI peripherals to GPIO
UARTxConnect one of the internal PL011 UART peripherals to GPIO
I2CxConnect one of the internal DW I2C peripherals to GPIO
PWMx A/BConnect a PWM slice to GPIO. There are twelve PWM slices, each with two output channels (A/B). The B pin can also be used as an input, for frequency and duty cycle measurement.
SIOSoftware control of GPIO, from the single-cycle IO (SIO) block. The SIO function (F5) must be selected for the processors to drive a GPIO, but the input is always connected, so software can check the state of GPIOs at any time.
PIOxConnect one of the programmable IO blocks (PIO) to GPIO. PIO can implement a wide variety of interfaces, and has its own internal pin mapping hardware, allowing flexible placement of digital interfaces on bank 0 GPIOs. The PIO function (F6, F7, F8) must be selected for PIO to drive a GPIO, but the input is always connected, so the PIOs can always see the state of all pins.
HSTXConnect the high-speed transmit peripheral (HSTX) to GPIO
CLOCK GPINxGeneral purpose clock inputs. Can be routed to a number of internal clock domains on RP2350, e.g. to provide a 1Hz clock for the AON Timer, or can be connected to an internal frequency counter.
CLOCK GPOUTxGeneral purpose clock outputs. Can drive a number of internal clocks (including PLL outputs) onto GPIOs, with optional integer divide.
TRACECLK, TRACEDATAxCoreSight TPIU execution trace output from Cortex-M33 processors (Arm-only)
USB OVCUR DET/VBUS DET/VBUS ENUSB power control signals to/from the internal USB controller
QMI CS1nAuxiliary chip select for QSPI bus, to allow execute-in-place from an additional flash or PSRAM device

NOTE

GPIOs 0 through 29 are available in all package variants. GPIOs 30 through 47 are available only in QFN-80 (RP2350B) package.

NOTE

Analogue input is available on GPIOs 26 through 29 in the QFN-60 package (RP2350A), for a total of four inputs, and on GPIOs 40 through 47 in the QFN-80 package (RP2350B), for a total of eight inputs.

1.2.4. GPIO functions (Bank 1)

GPIO functions are also available on the six dedicated QSPI pins, which are usually used for flash execute-in-place, and on the USB DP/DM pins. These may become available for general-purpose use depending on the use case, for example, QSPI pins may not be needed for code execution if RP2350 is booting from internal OTP storage, or being controlled externally via SWD.

Table 5. GPIO Bank 1 Functions

PinF0F1F2F3F4F5F6F7F8F9F10F11
USB DPUART1 TXI2C0 SDASIO
PinF0F1F2F3F4F5F6F7F8F9F10F11
USB DMUART1 RXI2C0 SCLSIO
QSPI SCKQMI SCKUART1 CTSI2C1 SDASIOUART1 TX
QSPI CSnQMI CS0nUART1 RTSI2C1 SCLSIOUART1 RX
QSPI SD0QMI SD0UART0 TXI2C0 SDASIO
QSPI SD1QMI SD1UART0 RXI2C0 SCLSIO
QSPI SD2QMI SD2UART0 CTSI2C1 SDASIOUART0 TX
QSPI SD3QMI SD3UART0 RTSI2C1 SCLSIOUART0 RX

Table 6. GPIO bank 1 function descriptions

Function NameDescription
UARTxConnect one of the internal PL011 UART peripherals to GPIO
I2CxConnect one of the internal DW I2C peripherals to GPIO
SIOSoftware control of GPIO, from the single-cycle IO (SIO) block. The SIO function (F5) must be selected for the processors to drive a GPIO, but the input is always connected, so software can check the state of GPIOs at any time.
QMIQSPI memory interface peripheral, used for execute-in-place from external QSPI flash or PSRAM memory devices.

1.3. Why is the chip called RP2350?

Figure 4. An explanation for the name of the RP2350 chip.

Diagram explaining the naming convention of the RP2350 chip. The name 'RP2350' is shown with arrows pointing to each part: 'RP' points to 'Raspberry Pi', '2' points to 'Number of cores', '3' points to 'Type of core (e.g. Cortex-M33)', '5' points to 'floor(log2(RAM / 16 kB))', and '0' points to 'floor(log2(nonvolatile / 128 kB))'.

The diagram illustrates the naming convention for the RP2350 chip. The name is broken down into its components with arrows indicating their meaning:

Diagram explaining the naming convention of the RP2350 chip. The name 'RP2350' is shown with arrows pointing to each part: 'RP' points to 'Raspberry Pi', '2' points to 'Number of cores', '3' points to 'Type of core (e.g. Cortex-M33)', '5' points to 'floor(log2(RAM / 16 kB))', and '0' points to 'floor(log2(nonvolatile / 128 kB))'.

The post-fix numeral on RP2350 comes from the following,

  1. 1. Number of processor cores
    • ◦ 2 indicates a dual-core system
  2. 2. Loosely which type of processor
    • ◦ 3 indicates Cortex-M33 or Hazard3
  3. 3. Internal memory capacity: \( \log_2 \lfloor \frac{\text{RAM}}{16 \text{ kB}} \rfloor \)
    • ◦ 5 indicates at least \( 2^5 \times 16 \text{ kB} = 512 \text{ kB} \)
    • ◦ RP2350 has 520 kB of main system SRAM
  4. 4. Internal storage capacity: \( \log_2 \lfloor \frac{\text{nonvolatile}}{128 \text{ kB}} \rfloor \) (or 0 if no onboard nonvolatile storage)

1.4. Version History

Table 7 lists versions of RP2350. Later versions fix bugs in earlier versions. For more information about the changes made between versions, see Appendix C . Also refer to Product Change Notification (PCN) 28.

Table 7. RP2350
version history

VersionUse
A0Internal development
A1Internal development
A2Initial release
A3Internal development, samples, and limited production
A4Production version