跳到主要内容

微控制器芯片

Raspberry Pi 设计了自己的微控制器,这些独立的芯片适用于提供实时硬件控制的小型嵌入式项目。这些芯片被用于 Raspberry Pi Pico 系列开发板,也可用于第三方微控制器开发板。有关 Raspberry Pi Pico 的更多信息,请参阅 Pico 系列微控制器开发板

Raspberry Pi 微控制器可以使用以下语言进行编程:

  • CC++,注重性能并提供对硬件的完全控制。
  • MicroPython,提供更简单的脚本以实现快速开发。

有关使用 RP2040 或 RP2350 进行开发的更多信息,请参阅 C/C++ SDKMicroPython 文档。

微控制器概述

Raspberry Pi 微控制器是处理特定实时任务的芯片,如控制电机或在嵌入式系统中读取传感器。Raspberry Pi 提供两款微控制器:

  • RP2040 是原始的通用双核 Raspberry Pi 微控制器:一款简单、经济高效的微控制器单元 (MCU)。
  • RP2350 是一款高性能双核微控制器,适用于具有灵活硬件控制的应用;它是一款功能更强大的 MCU,具有高级功能、更大内存和安全特性。RP2350 有四个变体,详见 RP2350 变体

主要特性

RP2040 和 RP2350 共享以下核心特性:

  • 双核处理器,用于并行处理。
  • 片上 SRAM,用于实时工作负载。
  • 确定性总线结构,通过多主 AHB 交叉开关将 CPU、DMA 和外设连接到多组 SRAM。
  • 内置 USB 控制器和 PHY,使微控制器可作为 USB 设备或 USB 主机。
  • 灵活的通用 I/O (GPIO),可配置为数字输入/输出或分配给外设功能,如 UART、SPI、I2C 或 PWM。
  • 可编程 I/O (PIO),这是 Raspberry Pi 微控制器的独特功能,提供扩展的外设支持。
  • 内置硬件外设,用于 UART、SPI、I2C、PWM 等接口,减少软件开销并提高效率。
  • 高性能、低功耗和低泄漏,得益于现代 40nm 微控制器制造工艺。
  • 低功耗模式,支持使用电池供电的长时间运行。
  • 编程选项,支持 C/C++ SDK 或 MicroPython;您可以通过 MicroPython 移植运行 Python,并使用 ROM 中内置的 UF2 引导加载程序进行拖放式编程。

特性比较

下表提供了 RP2040 和 RP2350 微控制器之间的比较。有关每个微控制器特性的更多详情,请参阅 RP2040RP2350 的专门章节。

特性RP2040RP2350
类型通用 MCU高性能 MCU
处理器内核双核 Arm Cortex-M0+双核 Arm Cortex-M33(更高性能,支持 TrustZone)或 Hazard3(RISC-V)
时钟速度最高 133 MHz最高 150 MHz
片上 SRAM264 kB,分六个独立组520 kB 多组高性能
Flash(非易失性)存储无片上 flash;通过专用外部(QSPI.XIP)总线支持最高 16 MB 片外 flash 存储。根据变体可选片上 flash;通过专用外部(QSPI.XIP)总线支持最高 32 MB 片外 flash 存储。参见 RP2350 变体
外部易失性工作存储(PSRAM)不支持。通过使用 QSPI.XIP 总线的 QMI 存储接口支持。
GPIO 引脚30 个 GPIO 引脚,其中 4 个可用作模拟输入。根据变体:30 个 GPIO 引脚,其中 4 个可用作模拟输入;或 48 个 GPIO 引脚,其中 8 个可用作模拟输入。参见 RP2350 变体
可编程输入/输出 (PIO)两个 PIO 块,每个有四个状态机(共八个)。三个 PIO 块,每个有四个状态机(共十二个)。
外设参见 RP2040 特性扩展集;参见 RP2350 特性
直接内存访问 (DMA) 控制器12 通道 DMA 控制器,支持外设节拍和链接。16 通道 DMA,具有增强的吞吐量和灵活性。
AHB 交叉开关完全连接的多主 AHB-Lite 交叉开关,连接 CPU、DMA 和外设到多组 SRAM 和 flash。AHB5 交叉开关,提供更高的吞吐量和带宽。
插值器双插值器块,用于快速整数运算和表查找。双插值器块,用于快速整数运算和表查找。
整数除法器通过内存映射寄存器访问的独立硬件整数除法器。不存在,因为处理器支持 CPU 中的硬件除法。
模数转换 (ADC)4 个模拟输入,带内部温度传感器,500 kS/s,12 位转换。根据变体:4 或 8 个模拟输入,带内部温度传感器,500 kS/s,12 位转换。
核心稳压器架构片上可编程低压差 (LDO) 生成核心电压。片上降压转换器 (SMPS) 用于主动运行,外加可选的低静态电流可编程 LDO 模式用于睡眠状态。
片上锁相环 (PLL)两个 PLL,用于核心时钟和 USB 时钟生成。两个 PLL,用于核心时钟和 USB 时钟生成。
安全功能无(基本 MCU)。Arm TrustZone;加密加速器。
部署开发板Raspberry Pi Pico;第三方 RP2040 开发板。Raspberry Pi Pico 2;第三方 RP2350 开发板。
编程C/C++ SDK,MicroPythonC/C++ SDK,MicroPython

RP2040

RP2040 是原始的 Raspberry Pi 双核微控制器。它采用 7 x 7 mm QFN-56 封装,专为低成本、低功耗嵌入式控制应用而设计。它为电机控制、信号处理、人机界面和嵌入式数据采集等任务提供确定性实时性能、灵活的 I/O 和适度的计算能力。有关 RP2040 的更多详细信息,请参阅 RP2040 数据表

RP2040 为 Raspberry Pi PicoPico WPico HPico WH 和其他第三方 RP2040 微控制器开发板提供动力。有关更多信息,请参阅 Raspberry Pi Pico基于 RP2040 的开发板

RP2040 微控制器芯片

RP2040 命名

Raspberry Pi 芯片遵循以 RP 开头的命名约定,表示"Raspberry Pi",后跟一个数字。具体来说,微控制器名称 RP2040 的由来如下:

  • RP 指定该芯片为 Raspberry Pi 芯片。
  • 2 表示处理器内核数。
  • 0 表示内核处理器类型(Cortex-M0+)。
  • 4 表示 RAM 容量,以对数因子表示,对应 264 kB 片上 SRAM。
  • 0 表示非易失性存储容量,以对数因子表示(其中 0 表示没有板载 flash 存储器)。
RP2040 命名说明

RP2040 特性

RP2040 是一款为嵌入式系统、实时控制和 I/O 管理设计的独立微控制器。具体来说,RP2040 提供以下功能:

  • 对称双核处理器复合体。 双核 Arm Cortex-M0+ 处理器运行频率最高 133 MHz,提供对称多处理。CPU 内核提供同等的低功耗和高效处理性能,可以并行运行任务。这对于实时控制、多任务处理和一般嵌入式任务非常有用。
  • 大容量片上内存。 264 kB 片上 SRAM 分布在六个独立组中,提供快速内部存储器用于运行代码和存储数据,并允许 CPU 和外设同时访问。
  • 支持外部 flash 存储。 RP2040 没有内置 flash 存储器,因此不会在内部存储程序。相反,RP2040 可以通过快速 QSPI 接口直接从外部 flash 存储器运行代码,使用缓存保持高性能。这允许您选择产品所需的 flash 存储密度,并从廉价、广泛可用的芯片中受益。
  • 温度监测。 4 通道 ADC,带内部温度传感器,500 kS/s,12 位转换;用于读取传感器和电压,包括板载温度传感器。
  • 通过可编程 I/O (PIO) 实现灵活的硬件控制。 一个可编程的迷你处理器子系统,用于在硬件中实现自定义外设,由两个 PIO 块组成,每个有四个状态机(共八个)。
  • 固定功能外设。 用于标准协议的内置硬件块,处理常见任务,无需在软件中实现,包括:
    • 两个 UART,用于串行通信。
    • 两个 SPI 控制器,用于数据传输。
    • 两个 I2C 控制器,用于与低速外设通信。
    • 16 个 PWM 通道。
    • USB 1.1 控制器和 PHY,支持主机和设备。

内部温度传感器

RP2040 中的内部温度传感器是一种低分辨率、用户校准的传感器。如果不校准传感器,它不太可能准确。

准确的温度测量关键取决于了解 ADC 参考电压 (VREF)。由于温度转换公式对 VREF 高度敏感,即使该值的微小误差也可能导致显著的温度不准确。RP2040 不包含用于确定 VREF 的内部固定电压参考,因此参考电压必须:

  • 从外部测量(注意它可能随时间变化)。
  • 由外部精密电压参考提供。
注意

RP2040 传感器电压随温度升高而下降。

有关 RP2040 内部温度传感器的更多信息,请参阅 RP2040 数据表:Raspberry Pi 的微控制器

睡眠模式功耗

RP2040 即使在深度睡眠状态下也会消耗约 180 μA 的典型电流。睡眠电流取决于 PVT:

  • 工艺;因芯片而异。
  • 电压;电流线性变化。
  • 温度;电流非线性变化。

对于需要最小电流消耗的用例,我们建议完全关闭系统或系统中的 RP2040 部分。有关如何执行此操作的信息,请参阅 用于低待机电流应用的功率开关 RP2040,根据您的用例进行调整。

基于 RP2040 的开发板

您可以使用第一代 Raspberry Pi Pico 微控制器开发板作为开发板和其他基于 RP2040 开发板的参考设计。有关第三方 RP2040 开发板的讨论,请参阅 Raspberry Pi 论坛

Raspberry Pi Pico 和 Pico W 的设计文件公开可用,没有任何限制。Raspberry Pi 授权出于任何目的有偿或无偿使用、复制、修改和分发以下设计:

Raspberry Pi 还提供 RP2040 微控制器的设计文件:

  • 最小可行开发板(KiCad),RP2040 的参考设计。
  • VGA 载板(KiCad),使用 Raspberry Pi Pico 板进行多媒体的参考(也适用于 RP2350)。
重要

设计按"原样"提供,作者对设计不作任何保证,包括对适销性和适用性的所有默示保证。在任何情况下,作者均不对因使用或执行设计而造成的或与之相关的任何特殊、直接、间接或后果性损害,或因使用、数据或利润损失而造成的任何损害承担责任,无论是合同诉讼、疏忽还是其他侵权行为。

RP2350

RP2350 是一款高性能双核微控制器,有四个变体,它们在封装尺寸和是否包含板载 flash 存储器方面有所不同,详见 RP2350 变体

RP2040 相比,RP2350 提供更高的核心时钟速度、双倍的 SRAM、更强大的 Arm 内核、新的安全功能和扩展的接口能力,详见 RP2350 特性。有关 RP2350 的更多详细信息,请参阅 RP2350 数据表

RP2350 为 Raspberry Pi Pico 2Pico 2 W带排针的 Pico 2带排针的 Pico 2 W 和其他基于 RP2350 的开发板提供动力。有关更多信息,请参阅 Raspberry Pi Pico 2基于 RP2350 的开发板

RP2350 微控制器芯片

RP2350 变体

RP2350 有四个变体,在封装尺寸和是否包含堆叠 flash 存储器方面有所不同。有关这些变体命名方式的更多信息,请参阅 RP2350 命名

变体封装封装尺寸 (mm)内部 flash 存储GPIO 引脚模拟输入PWM 通道
RP2350AQFN-607 x 730416
RP2350BQFN-8010 x 1048824
RP2354AQFN-607 x 7堆叠 2 MB flash30416
RP2354BQFN-8010 x 10堆叠 2 MB flash48824

RP2350 命名

RP2350 遵循与其他 Raspberry Pi 芯片相同的命名约定,但末尾的数字和字母根据变体而变化。具体来说,RP2350 的名称变体由来如下:

  • RP 指定该芯片为 Raspberry Pi 芯片。
  • 2 表示处理器内核数。
  • 3 表示内核处理器类型(Cortex-M33)。
  • 5 表示 RAM 容量,以对数因子表示,对应 520 kB 片上 SRAM。
  • 最后一个数字(04)表示非易失性存储容量,以对数因子表示。
    • 0 表示没有板载 flash 存储器。
    • 4 表示有 2 MB 堆叠 flash 存储器。
  • 附加的字母表示微控制器封装的大小,由引脚数决定:
    • A 表示较小的芯片封装,有 60 个引脚,其中 30 个是 GPIO 引脚。
    • B 表示较大的芯片封装,有 80 个引脚,其中 48 个是 GPIO 引脚。
RP2350 命名说明

RP2350 特性

RP2350 是一款为嵌入式系统、实时控制和 I/O 管理设计的独立微控制器。具体来说,RP2350 提供以下功能:

  • 对称双核处理器选项。 可选择以下低功耗、高效的 CPU 架构,可以并行运行任务,频率最高 150 MHz。有关更多信息,请参阅 架构切换
    • 双核 Arm Cortex-M33
    • 双核 Hazard3 RISC-V 处理器。
  • 扩展的片上内存。 520 kB 片上 SRAM 分布在十个独立组中,提供快速内部存储器用于运行代码和存储数据,并允许 CPU 和外设同时访问。
  • 扩展的外部 flash 存储支持。
    • 能够通过快速 QSPI 接口直接从外部 flash 存储器运行代码并进行缓存(类似于 RP2040)。
    • 能够通过 QMI 接口连接到外部 PSRAM(伪静态 RAM)芯片。
  • 温度监测。 根据变体,4 通道或 8 通道 ADC,带内部温度传感器,500 kS/s,12 位转换;用于读取传感器和电压,包括板载温度传感器。
  • 通过可编程 I/O (PIO) 实现灵活的硬件控制。 一个可编程的迷你处理器子系统,用于在硬件中实现自定义外设,由三个 PIO 块组成,每个有四个状态机(共十二个)。
  • 固定功能外设。 用于标准协议的内置硬件块,处理常见任务,无需在软件中实现,包括:
    • 两个 UART,用于串行通信。
    • 两个 SPI 控制器,用于数据传输。
    • 两个 I2C 控制器,用于与低速外设通信。
    • 根据变体,16 或 24 个 PWM 通道。
    • USB 1.1 控制器和 PHY,支持主机和设备。
    • HSTX 外设,用于高速数字输出,如视频。
  • 可选内部 flash 存储。 根据变体,RP2350 可以从外部 flash 存储器运行代码,也可以包含用于程序存储和更快访问的片上 flash:
    • RP2350ARP2350B 没有内置 flash 存储器,因此不会在内部存储程序。但是,您可以:
      • 通过快速 QSPI 接口直接从外部 flash 存储器运行代码,使用缓存保持高性能。
      • 使用一次性可编程 (OTP) 存储器来启动和存储软件。这是不可逆的。
    • RP2354ARP2354B 包含 2 MB 堆叠 flash 存储器。
  • 安全性。 围绕用于 Cortex-M 的 Arm TrustZone 构建的全面安全架构,包括:
    • 支持签名启动。
    • 8 kB 片上反熔断一次性可编程 (OTP) 存储器。
    • SHA-256 加速。
    • 硬件真随机数生成器 (TRNG)。
    • 加密代码存储和从 flash 启动。

架构切换

RP2350 包括一对开放硬件 Hazard3 RISC-V 内核,可在您编程微控制器时在启动时替换 Cortex-M33 内核。

启动 ROM 可以自动检测已构建第二阶段二进制文件的架构,并将芯片重新启动到相应的模式。除了少数安全功能和双精度浮点加速器外,芯片的所有功能都可在 RISC-V 模式下使用。

基于 RP2350 的开发板

您可以使用 Raspberry Pi Pico 2 系列微控制器开发板作为开发板和其他基于 RP2350 开发板的参考设计。有关第三方 RP2350 开发板的讨论,请参阅 Raspberry Pi 论坛

Raspberry Pi 提供 RP2350 微控制器的设计文件:

  • 最小可行开发板(KiCad)。此下载提供两个设计文件,因为 RP2350 有两种封装。
  • VGA 载板(KiCad),使用 Raspberry Pi Pico 板进行多媒体的参考(也适用于 RP2040)。
重要

设计按"原样"提供,作者对设计不作任何保证,包括对适销性和适用性的所有默示保证。在任何情况下,作者均不对因使用或执行设计而造成的或与之相关的任何特殊、直接、间接或后果性损害,或因使用、数据或利润损失而造成的任何损害承担责任,无论是合同诉讼、疏忽还是其他侵权行为。

USB 标识符

许多 RP2040 和 RP2350 芯片使用 Raspberry Pi USB 标识符(供应商 ID 和产品 ID)的组合。如果您基于 RP2040 或 RP2350 制作自己的第三方开发板,在以下情况下您可能需要一个唯一的 USB 产品 ID (PID):

  • 您需要提供自定义 Windows 驱动程序。
  • 您希望您的设备可以作为单独的产品被唯一识别。

Raspberry Pi 已获得 USB-IF 的许可,可以为其供应商 ID(0x2E8A)授权 USB PID 值,用于 RP2040 和 RP2350 的常用芯片组件。这意味着您可以在我们的供应商 ID(0x2E8A)下分配唯一的 PID。要保留与 Raspberry Pi 供应商 ID 相关联的 USB PID,请按照 Raspberry Pi USB PID Git 仓库 中的说明操作。

如果您不需要唯一的 PID,您仍然可以使用以下任何 USB 文本字段来唯一区分设备:iManufactureriProductiSerial


中文翻译版以英文版相同知识授权方式共享:CC-BY-SA 4.0。交流 Q群:498908352