Single Board Computer Next-Generation Microcontroller: A Deep Dive into Raspberry Pi RP2350
The Raspberry Pi RP2350 is a new-generation microcontroller from Raspberry Pi, with major improvements over its predecessor RP2040. This article explores RP2350’s features, comparisons with RP2040, differences between A and B variants, development options and limitations, GPIO pin characteristics, and application cases, with special focus on USB host and device emulation examples.
1. RP2350 Features
RP2350 is a powerful microcontroller with the following key features:
-
Dual-core architecture: The RP2350 is powered by a dual-core Arm Cortex-M33 processor or Hazard3 RISC-V processor, running at up to 150 MHz, far outperforming the RP2040.
-
Ample memory: It has 520 kB of on-chip SRAM, split across 10 independent banks, and supports up to 16 MB of external QSPI flash/PSRAM via a dedicated QSPI bus, plus an additional 16 MB of flash/PSRAM through an optional second chip select.
-
Versatile peripherals: The RP2350 integrates a rich set of peripherals, including 2 UARTs, 2 SPI controllers, 2 I2C controllers, 24 PWM channels, a USB 1.1 controller and PHY with host and device mode support, 12 PIO state machines, and 1 HSTX peripheral.
-
On-chip power management: It includes a switch-mode power supply for generating the core voltage.
-
Flexible package options: The RP2350 is available in QFN-80 (10 × 10 mm) and QFN-60 (7 × 7 mm) packages, with versions with and without in-package flash.
2. Comparison with RP2040
Compared to the previous-generation RP2040, the RP2350 offers the following advantages:
-
Higher clock frequency: The RP2350 runs at 150 MHz, while the RP2040 runs at 133 MHz.
-
More pins and GPIOs: The RP2350 B variant has 80 pins and 48 GPIOs, while the RP2040 only has 40 pins and 26 GPIOs.
-
Larger memory capacity: The RP2350 integrates 520 KB of SRAM, while the RP2040 only has 264 KB. Additionally, the RP2354 model has 2 MB of built-in flash, whereas the RP2040 requires an external flash chip.
-
More analog inputs: The RP2350 B variant has 8 analog inputs, while the RP2040 and RP2350 A variant only have 4.
-
More powerful core: The RP2350 uses the Arm Cortex-M33 core, based on the Armv8-M architecture, with hardware division and more 32-bit instructions. Both performance and power efficiency are superior to the RP2040’s Arm Cortex-M0+ core.
-
Enhanced security: The Cortex-M33 core has enhanced security, making it more suitable for IoT applications.
3. Differences Between RP2350 A and B Variants
The RP2350 comes in A and B variants, with the main differences being package size, pin count, and GPIO count:
-
RP2350A uses a QFN-60 package, with 60 pins and 30 GPIOs.
-
RP2350B uses a QFN-80 package, with 80 pins and 48 GPIOs.
Additionally, the B variant has 8 analog inputs, while the A variant only has 4. The choice between variants depends on the specific project requirements. If you need more GPIOs or analog inputs, choose the B variant.

4. Development Options and Limitations
The RP2350 has rich development tools and software support, but also some limitations:
-
Official SDK: Raspberry Pi provides an official SDK supporting development in C/C++, MicroPython, and CircuitPython.
-
VS Code integration: Visual Studio Code is recommended for development. The Raspberry Pi Pico extension makes it easy to create, compile, and debug projects.
-
Complex boot process: The RP2350’s boot process is much more complex than the RP2040’s, requiring careful study of the datasheet to understand.
-
Toolchain differences: The RP2350’s toolchain differs from the RP2040’s, requiring installation of new compilers and debuggers.
-
Bare-metal programming challenges: Due to differences in boot process and toolchain, bare-metal programming is more difficult, requiring in-depth understanding of the chip architecture and boot flow.
5. RP2350 GPIO Pin Characteristics
The RP2350’s GPIO pins have the following characteristics:
-
Multi-functionality: Each GPIO pin can connect to multiple internal peripherals or be directly controlled by software.
-
Analog input function: Some GPIO pins have analog input capability and can connect to the ADC for voltage sampling.
-
Configurability: GPIO pin direction, output level, and input level can all be configured through GPIO control registers.
-
Isolation registers: The RP2350 adds isolation registers that can preserve pad states in low-power states, cleared by software.
6. Application Cases
The RP2350 is suitable for various application scenarios. Here are some examples related to USB host and device emulation:
- USB host: The RP2350 can act as a USB host, connecting USB devices such as keyboards, mice, and USB drives. It can communicate with these devices through the USB controller and PHY, and control data transfer via software.
For example, you can connect the RP2350 to a USB drive, read files stored on it, and display the file contents on an LCD screen.
- You can also connect the RP2350 to a keyboard, read keyboard input, and send the input to another device, such as a computer or phone.
USB device emulation: The RP2350 can emulate various USB devices, such as HID devices, serial devices, and mass storage devices. It can communicate with the host through the USB controller and PHY, and emulate device behavior via software.
-
For example, you can emulate the RP2350 as an HID device such as a mouse, sending sensor data from the RP2350 to the computer to control the mouse cursor.
-
You can also emulate the RP2350 as a serial device, sending UART data from the RP2350 to the computer for serial communication.
The RP2350 is a powerful and flexible microcontroller that opens up endless possibilities for various application scenarios. As the RP2350 ecosystem continues to grow, we will surely see more innovative applications built on it.