> For the complete documentation index, see [llms.txt](https://rpicn.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rpicn.bsdcn.org/wei-kong-zhi-qi/rp2040.md).

# 芯片

## RP2350

RP2350 是由树莓派设计的一款微控制器。

![rp2350](https://www.raspberrypi.com/documentation/microcontrollers/images/rp2350.png)

无论你是拥有[树莓派 Pico 2](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#pico-2-technical-specification) 还是其他 RP2350 衍生的微控制器板，你都可以在这里找到所需的所有入门资源。你将找到适用于树莓派 Pico 2 的 [C/C++](https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html#sdk-setup) 或 [MicroPython](https://www.raspberrypi.com/documentation/microcontrollers/micropython.html#what-is-micropython) 的入门支持，并可获得使用 RP2350 的其他开发板的相关资源链接。同时，还有关于树莓派 Pico 2 微控制器板和 RP2350 微控制器芯片的技术文档链接。

### 芯片为何命名为 RP2350？

RP2350 中的后缀数字源于以下因素：

![rp2350 explanation](https://www.raspberrypi.com/documentation/microcontrollers/images/rp2350_explanation.svg?hash=333a0c2c5e176cdceeefde5e8b832285)

1. 处理器核心数量（2）
2. 大致的处理器类型（M33）
3. floor(log2(内存 ÷ 16KB))
4. floor(log2(非易失性存储器 ÷ 128KB))，如果没有板载非易失性存储器，则为 0

### 技术规格

RP2350 是树莓派推出的高性能、安全、低成本且易于使用的微控制器。

它拥有大容量的片上存储器、对称的双核处理器系统、确定性的总线结构以及丰富的外设集合，辅以独特的可编程 I/O (PIO) 子系统，为专业用户提供无与伦比的性能和灵活性。详细的文档、精心打磨的 MicroPython 移植版本和 ROM 中的 UF2 引导加载程序，使其成为初学者和爱好者的最佳选择。

RP2350 是一个无状态设备，支持从外部 QSPI 存储器进行缓存执行。这一设计决策允许你为应用选择合适的非易失性存储器密度，并受益于商品闪存的低价格。

RP2350 使用现代 40nm 工艺节点制造，提供高性能、低动态功耗和低漏电率，并支持多种低功耗模式，以延长电池供电的操作时间。

主要特性包括：

* 双核 Cortex-M33 或 Hazard3 处理器，最高可达 150MHz
* 520KB 多片高性能 SRAM
* 通过专用 QSPI 总线支持最多 16MB 的片外 Flash 存储器
* DMA 控制器
* 全连接 AHB 交叉开关
* 片上可编程 LDO 生成核心电压
* 2 个片上 PLL 生成 USB 和核心时钟
* GPIO 引脚 x30，其中 4 个可用作模拟输入
* 外设
  * 串口 x2
  * SPI 控制器 x2
  * I²C 控制器 x2
  * PWM 通道 x24
  * USB 1.1 控制器和 PHY，支持主机和设备模式
  * 可编程 IO (PIO) 模块 x3，总共 12 个状态机

#### 安全性

RP2350 拥有全方位安全架构，基于面向 Cortex-M 的 Arm TrustZone 构建，包括以下功能：

* 支持签名引导
* 8KB 片上反熔丝一次性可编程 (OTP) 存储器
* SHA-256 加速
* 硬件真随机数生成器 (TRNG)

#### 架构切换

RP2350 包含一对开源硬件 Hazard3 RISC-V 内核，这些内核可在启动时替代 Cortex-M33 内核。我们的引导 ROM 甚至可以自动检测第二阶段二进制文件的构建架构，并将芯片重新引导到适当的模式中。除了少数安全功能和双精度浮点加速器之外，芯片的所有功能都在 RISC-V 模式中可用。

### 基于 RP2350 的开发板

树莓派设计了[树莓派 Pico 2](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#pico-2-technical-specification)，作为开发板和参考设计，基于 RP2350。

许可你出于任何目的使用、复制、修改和/或分发此设计，无论是否收费。

该设计按“原样”提供，作者对该设计不作任何担保，包括所有适销性和适用性隐含担保。在任何情况下，作者均不对因使用或性能问题引起的任何特殊、直接、间接或后果性损害或任何损害负责，无论是合同、过失或其他侵权行为。

#### 其他开发板

你可以在[树莓派论坛](https://forums.raspberrypi.com/viewforum.php?f=147)上找到关于第三方 RP2350 开发板的讨论。

#### USB 产品 ID (PID)

许多基于 RP2350 的设备使用树莓派的 USB 供应商 ID 和产品 ID 组合。如果你构建了基于 RP2350 的第三方开发板，可能需要一个唯一的 USB 产品 ID (PID)。

如果需要为 Windows 用户提供自定义驱动程序，可能需要一个唯一的 USB PID。

USB-IF 授权树莓派为其供应商 ID (`0x2E8A`) 的常用硅组件分配 USB 产品 ID。

要预留与树莓派供应商 ID 相关联的 USB PID，请按照[树莓派 USB PID Git 仓库](https://github.com/raspberrypi/usb-pid)中的说明操作。

> **注意**
>
> 如果你使用标准的 RP2350 PID，可以使用 `iManufacturer`、`iProduct` 和 `iSerial` 字符串来唯一标识你的设备。

## RP2040

RP2040 是由树莓派设计的一款微控制器。

![rp2040](https://www.raspberrypi.com/documentation/microcontrollers/images/rp2040.jpg)

无论你是拥有[树莓派 Pico 1](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html#pico-1-technical-specification) 还是其他基于 RP2040 的微控制器板，你都可以在此找到所需的一切。这里提供了有关在树莓派 Pico 上使用 [C/C++](https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html#sdk-setup) 或 [MicroPython](https://www.raspberrypi.com/documentation/microcontrollers/micropython.html#what-is-micropython) 的入门支持，以及使用 RP2040 的其他板的相关资源链接。此外，还提供了有关树莓派 Pico 微控制器板和我们的 RP2040 微控制器芯片的技术文档链接。

### 为什么芯片被称为 RP2040？

RP2040 后缀数字的含义如下：

![rp2040 explanation](https://www.raspberrypi.com/documentation/microcontrollers/images/rp2040_explanation.svg?hash=9dee3ce29af06c85907f53920dec48be)

1. 处理器核心数（2）
2. 松散定义的处理器类型（M0+）
3. floor(log2(内存 ÷ 16k))
4. floor(log2(非易失性存储 ÷ 16k))，如果没有板载非易失性存储则为 0

### 技术规格

RP2040 是树莓派推出的首款微控制器，延续了我们一贯的高性能、低成本和易用性。

凭借大容量的片上内存、对称的双核处理器、确定性总线结构和丰富的外设集，RP2040 为专业用户提供了无与伦比的性能和灵活性。借助详细的文档、成熟的 MicroPython 移植和 ROM 中的 UF2 引导加载程序，RP2040 为初学者和爱好者提供了最便捷的入门体验。

RP2040 是一个无状态设备，支持从外部 QSPI 存储器中执行缓存操作。这一设计决定允许你为应用选择适当的非易失性存储密度，并享受商品级闪存器件的低成本优势。

RP2040 使用现代 40nm 工艺制造，提供高性能、低动态功耗和低漏电，支持多种低功耗模式，以延长电池供电设备的使用时间。

关键特性包括：

* 双 ARM Cortex-M0+ @ 133MHz
* 264kB 片上 SRAM，分为六个独立的存储单元
* 支持通过专用 QSPI 总线连接的高达 16MB 的片外 Flash 存储器
* DMA 控制器
* 全连接的 AHB 交叉开关
* 插值器和整数除法外设
* 片上可编程 LDO，用于生成内核电压
* 2 个片上 PLL，用于生成 USB 和内核时钟
* 30 个 GPIO 引脚，其中 4 个可用作模拟输入
* 外设
  * 2 个串口
  * 2 个 SPI 控制器
  * 2 个 I²C 控制器
  * 16 个 PWM 通道
  * 带有主机和设备支持的 USB 1.1 控制器和 PHY
  * 8 个 PIO 状态机

#### [低待机电流应用中的 RP2040 电源切换](https://pip.raspberrypi.com/categories/685-whitepapers-app-notes/documents/RP-004339-WP/Power-switching-RP2040-for-low-standby-current-applications.pdf)

即使在深度睡眠模式下，RP2040 的典型电流也为 \~180μA，睡眠电流高度依赖于 PVT：工艺（芯片间电流变化）、电压（电流随电压线性变化）和温度（电流随温度非线性变化）。

对于许多需要最小电流消耗的使用场景，最好的选择是完全关闭系统电源（或 RP2040 系统部分的电源）。本文档提供了一些实现这一目标的电路示例，设计人员可以根据自己的使用需求对这些电路进行调整。

#### 设计文件

* 下载 [Minimal Viable Board](https://datasheets.raspberrypi.com/rp2040/Minimal-KiCAD.zip) 设计文件（KiCad）
* 下载 [VGA Carrier Board](https://datasheets.raspberrypi.com/rp2040/VGA-KiCAD.zip) 设计文件（KiCad）

### 基于 RP2040 的板卡

树莓派设计了树莓派 Pico 1 作为开发板和参考设计，Pico 系列目前包括树莓派 Pico（最左），Pico H（左），Pico W（右）和 Pico WH（最右）。

树莓派 Pico 和 Pico W 的设计文件是公开提供的，没有任何限制。

* 下载 [设计文件](https://datasheets.raspberrypi.com/pico/RPi-Pico-R3-PUBLIC-20200119.zip)（Cadence Allegro）
* 下载 [设计文件](https://datasheets.raspberrypi.com/picow/RPi-PicoW-PUBLIC-20220607.zip)（Cadence Allegro）

许可允许为任何目的使用、复制、修改和/或分发此设计，无论是否收取费用。

设计按“原样”提供，作者不对与该设计有关的任何明示或暗示的适销性和适用性担保承担责任。在任何情况下，作者都不对因使用或性能问题导致的任何特殊、直接、间接或后果性损害或任何损害负责，无论是因合同、过失或其他侵权行为引起。

#### 其他板卡

你可以在[树莓派论坛](https://forums.raspberrypi.com/viewforum.php?f=147) 中找到关于第三方 RP2040 板卡的讨论。

#### USB PIDs

许多基于 RP2040 的设备使用树莓派的 USB 供应商 ID 和产品 ID 组合。如果你基于 RP2040 设计了第三方板卡，可能需要一个唯一的 USB 产品 ID（PID）。

如果需要为 Windows 用户提供自定义驱动程序，你可能需要唯一的 USB PID。

USB-IF 已授权树莓派使用其供应商 ID（`0x2E8A`）许可 USB 产品 ID，用于 RP2040 的常见硅组件。

要预留与树莓派供应商 ID 关联的 USB PID，请按照[树莓派USB PID git 仓库](https://github.com/raspberrypi/usb-pid)中的说明进行操作。

> **注意**
>
> 如果你使用标准的 RP2040 PID，可以使用 `iManufacturer`、`iProduct` 和 `iSerial` 字符串唯一标识你的设备。

### 内部温度传感器

RP2040 封装中的内部温度传感器为低分辨率传感器，需要用户校准后才具有精确度。

准确测量温度的一个关键部分是了解 ADC VREF 电压。转换公式意味着 ADC VREF 电压中的小误差会导致计算出的温度出现较大差异。RP2040 没有内部固定电压参考来确定 VREF 电压，因此 VREF 电压需要手动测量——需要注意的是，它可能会变化——或者需要提供外部固定电压参考。

> **注意**
>
> 随着温度升高，RP2040 传感器电压会下降。

有关内部温度传感器的更多详细信息，请参见 [RP2040 数据手册](https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf) 第 4 章第 4.9.5 节。

## RP1

![RP1 架构图](https://www.raspberrypi.com/documentation/microcontrollers/images/rp1.jpg)

RP1 是一款 12×12mm，引脚中心距为 0.65mm 的 BGA 南桥芯片，它为树莓派 5 提供了主要的 I/O（输入/输出）功能。

RP1 可提供：

* PCIe 2.0 x4
* 千兆以太网 MAC（GEM）控制器
* USB 3 主机控制器 x2
  * 每个都有 USB 3 x1 和 USB 2 x1 端口
  * USB 可用带宽是树莓派 4 的 2 倍
* SDIO 通道/eMMC x2（树莓派 5 未使用）
* MIPI 转换器 x2（4 通道，支持 DSI 和 CSI-2）
* 视频数模转换器（DAC）（3 通道，支持 PAL/NTSC 和 VGA）
  * 树莓派 5 仅使用单通道（复合视频）
* 低速外围设备（SPI、UART、I²C、PWM、GPIO、I²S）
* Delta-sigma（Σ-Δ）脉宽调制（PWM）音频输出

可在 [RP1 外围设备](https://datasheets.raspberrypi.com/rp1/rp1-peripherals.pdf?_gl=1*1ldjb52*_ga*ODAwMTM3MTg4LjE3MTc1NzY1NTQ.*_ga_22FD70LWDS*MTcyMjUyNTM0MC43OC4xLjE3MjI1MjUzNzIuMC4wLjA.)文档中找到更多有关 RP1 的信息。

## 文档

关于 Pico 系列和其他基于树莓派微控制器的开发板的文档。

### RP2350

[RP2350 数据手册](https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf)

树莓派设计的微控制器。

[使用 RP2350 进行硬件设计](https://datasheets.raspberrypi.com/rp2350/hardware-design-with-rp2350.pdf)

使用 RP2350 微控制器构建开发板和产品。

### RP2040

[RP2040 数据手册](https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf)

树莓派设计的微控制器。

[使用 RP2040 进行硬件设计](https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf)

使用 RP2040 微控制器构建开发板和产品。

### 树莓派 Pico 2

[树莓派 Pico 2 数据手册](https://datasheets.raspberrypi.com/pico/pico-2-datasheet.pdf)

基于 RP2350 的微控制器开发板。

[从零开始使用树莓派 Pico 系列微控制器](https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf)

在树莓派 Pico 系列设备和其他基于树莓派微控制器的开发板上进行 C/C++ 开发。

### 树莓派 Pico

[树莓派 Pico 数据手册](https://datasheets.raspberrypi.com/pico/pico-datasheet.pdf)

基于 RP2040 的微控制器开发板。

[从零开始使用树莓派 Pico](https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf)

在树莓派 Pico 和其他基于 RP2040 的微控制器开发板上进行 C/C++ 开发。

### 树莓派 Pico W

[树莓派 Pico W 数据手册](https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf)

带有无线功能的基于 RP2040 的微控制器开发板。

[将树莓派 Pico W 连接到互联网](https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf)

使用 C/C++ 或 MicroPython 使树莓派 Pico W 上网。

> **注意**
>
> 关于在树莓派 Pico W 上使用 C/C++ 或 MicroPython 进行 Wi-Fi 和蓝牙开发的文档，请参阅 [将树莓派 Pico W 连接到互联网](https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf) 一书。

### 软件开发

[树莓派 Pico C/C++ SDK](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-c-sdk.pdf)

用于在 RP2040 微控制器上进行 C/C++ 开发的库和工具。

[树莓派 Pico Python SDK](https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf)

用于 RP2040 微控制器的 MicroPython 环境。

树莓派 Pico C/C++ SDK 的 API 级别 Doxygen 文档也可 [作为一个微型网站](https://rptl.io/pico-doxygen) 提供。

> **注意**
>
> 提供了适用于 Windows 10、Windows 11 的 Pico C/C++ SDK [一键安装程序](https://github.com/raspberrypi/pico-setup-windows/releases/latest/download/pico-setup-windows-x64-standalone.exe)。
