Seeed Studio XIAO RP2040 入门指南

概述
Seeed Studio XIAO RP2040 系列包括 XIAO RP2040 和 XIAO RP2040 Plus。两块开发板都由相同的 Raspberry Pi RP2040 微控制器驱动,该芯片配备双核 Arm Cortex-M0+ 处理器,最高运行频率 133 MHz,并集成 264 KB SRAM。每块板载还包含 2 MB Flash 存储。因此,它们具备相同的核心处理性能,并共享同一套 RP2040 软件生态。
两块开发板的主要区别在于可用的 GPIO 数量、外设连接能力以及板载电源管理特性。
标准版 XIAO RP2040 采用常见的 14 针 XIAO 封装,引出 11 个 GPIO 引脚和 3 个电源引脚。其 11 个数字 I/O 引脚均支持 PWM,其中有 4 个还支持模拟输入。该板在紧凑的 21 × 17.8 mm 尺寸中提供 I2C、UART、SPI 和 SWD 接口。
XIAO RP2040 Plus 保留了相同的 14 针 XIAO 引脚布局,并在板背面和侧边增加了 15 个 GPIO 焊盘,使可用数字 I/O 引脚总数从 11 个增加到 26 个。它还增加了第二路 I2C 接口、独立的 USB D+/D− 焊盘,以及包括 BAT+、BAT− 和 BAT_EN 在内的电池相关连接。
对于电池供电应用,XIAO RP2040 Plus 集成了板载 PMIC、电池充电指示灯以及 BAT 到 3V3 的回流保护。这些附加特性使 Plus 版本更适合用于自定义载板、贴片组装、电池供电设备以及需要更多 I/O 资源的项目。
Seeed Studio XIAO RP2040 兼容 Seeed Studio XIAO 扩展板。
特性
- 强大的 RP2040 MCU: 双核 Arm Cortex-M0+ 处理器,最高运行频率 133 MHz
- 丰富的存储资源: 264 KB SRAM 和 2 MB 片上 Flash 存储
- 广泛的软件兼容性: 支持 Arduino、PlatformIO、MicroPython、CircuitPython、TinyGo、Rust、Zephyr 等
- 通用 XIAO 封装: 两个版本都保留标准 14 针 XIAO 布局,包括 11 个 GPIO 引脚和 3 个电源引脚
- 紧凑外形尺寸: 拇指大小的 21 × 17.8 mm 设计,适用于可穿戴设备和空间受限的应用
- 标准 XIAO RP2040 接口: 11 个数字 I/O 引脚、4 个模拟输入引脚、11 个支持 PWM 的引脚,以及 I2C、UART、SPI 和 SWD 接口
- 扩展的 XIAO RP2040 Plus I/O: 额外增加 15 个 GPIO 焊盘,总计 26 个数字 I/O 引脚,并提供第二路 I2C 接口和专用 USB D+/D− 焊盘
- 集成电池管理: XIAO RP2040 Plus 集成板载 PMIC、电池充电指示、专用电池连接以及 BAT 到 3V3 的回流保护
- 灵活的组装方式: 兼容面包板的通用引脚结合半孔和适用于贴片的焊盘,便于定制载板
规格参数
| 产品名称 | Seeed Studio XIAO RP2040 | Seeed Studio XIAO RP2040 Plus |
|---|---|---|
| 芯片组 | Raspberry Pi RP2040 | |
| 处理器 | 双核 Cortex-M0+,最高 133 MHz | |
| RAM | 264 KB SRAM | |
| Flash | 2 MB 板载 Flash | |
| 接口 | GPIO 引脚 × 14 | GPIO 引脚 × 29 |
| 板载器件 | 用户 LED × 1 | 用户 LED × 1 |
| 电池管理(PMIC) | 无 | 板载 PMIC |
| 电源 | 输入电压(Type-C):5V | |
| BAT 到 3V3 回流保护 | 否 | 是 |
| 软件兼容性 | Arduino、PlatformIO、MicroPython、CircuitPython、TinyGo、Rust、Zephyr,以及 更多即将支持 | |
| 工作温度 | -40°C 至 85°C | |
| 尺寸 | 21 x 17.8mm | |
| 产品版本 | Seeed Studio XIAO RP2040 3 片装套件 Seeed Studio XIAO RP2040 预焊接版 | Seeed Studio XIAO RP2040 Plus |
硬件概览
对于通用 I/O 引脚: MCU 的工作电压为 3.3V。如果接入通用 I/O 引脚的电压高于 3.3V,可能会导致芯片损坏。
对于电源引脚: 内置的 DC-DC 转换电路可以将 5V 转换为 3.3V,允许通过 VIN-PIN 和 5V-PIN 使用 5V 电源为设备供电。
XIAO RP2040 目前仅支持电池供电,在连接电池时不能再连接 Type-C,否则可能存在安全风险。
请注意使用安全,请勿撬起屏蔽罩。
引脚映射
| XIAO 引脚 | 功能 | XIAO RP2040 | XIAO RP2040 Plus | 描述 |
|---|---|---|---|---|
| 5V | VBUS | VBUS | VBUS | USB 5 V 电源输入/输出 |
| GND | GND | GND | GND | 地 |
| 3V3 | 3V3_OUT | 3V3_OUT | 3V3_OUT | 3.3 V 电源输出 |
| D0 | A0 | GPIO26 | GPIO26 | GPIO,ADC0 |
| D1 | A1 | GPIO27 | GPIO27 | GPIO,ADC1 |
| D2 | A2 | GPIO28 | GPIO28 | GPIO,ADC2 |
| D3 | A3 | GPIO29 | GPIO29 | GPIO,ADC3 |
| D4 | SDA0 | GPIO6 | GPIO6 | GPIO,I2C0 数据 |
| D5 | SCL0 | GPIO7 | GPIO7 | GPIO,I2C0 时钟 |
| D6 | TX | GPIO0 | GPIO0 | GPIO,UART 发送 |
| D7 | RX | GPIO1 | GPIO1 | GPIO,UART 接收 |
| D8 | SCK | GPIO2 | GPIO2 | GPIO,SPI 时钟 |
| D9 | MISO | GPIO4 | GPIO4 | GPIO,SPI 数据输入 |
| D10 | MOSI | GPIO3 | GPIO3 | GPIO,SPI 数据输出 |
| D11 | — | — | — | 不作为外部引脚提供 |
| D12 | GPIO | — | GPIO18 | 仅 Plus 版本的扩展 GPIO |
| D13 | SCL1 | — | GPIO21 | 仅 Plus 版本的 I2C1 时钟 |
| D14 | SDA1 | — | GPIO20 | 仅 Plus 版本的 I2C1 数据 |
| D15 | GPIO | — | GPIO19 | 仅 Plus 版本的扩展 GPIO |
| D16 | GPIO | — | GPIO22 | 仅 Plus 版本的扩展 GPIO |
| D17 | GPIO | — | GPIO23 | 仅 Plus 版本的扩展 GPIO |
| D18 | — | — | — | 不作为外部引脚提供 |
| D19 | GPIO | — | GPIO5 | 仅 Plus 版本的扩展 GPIO |
| D20 | GPIO | — | GPIO13 | 仅 Plus 版本的扩展 GPIO |
| D21 | GPIO | — | GPIO14 | 仅 Plus 版本的扩展 GPIO |
| D22 | GPIO | — | GPIO15 | 仅 Plus 版本的扩展 GPIO |
| D23 | GPIO | — | GPIO16 | 仅 Plus 版本的扩展 GPIO |
| D24 | GPIO | — | GPIO17 | 仅 Plus 版本的扩展 GPIO |
| D25 | GPIO | — | GPIO10 | 仅 Plus 版本的扩展 GPIO |
| D26 | GPIO | — | GPIO9 | 仅 Plus 版本的扩展 GPIO |
| D27 | GPIO | — | GPIO8 | 仅 Plus 版本的扩展 GPIO |
| Reset | RUN | RUN | RUN | 复位输入 |
| Boot | RP2040_BOOT | RP2040_BOOT | RP2040_BOOT | 进入 bootloader 模式 |
| USER_LED_R | 红色通道 | GPIO17 | — | 在 XIAO RP2040 上直接控制 RGB LED 红色通道 |
| USER_LED_G | 绿色通道 | GPIO16 | — | 在 XIAO RP2040 上直接控制 RGB LED 绿色通道 |
| USER_LED_G | 蓝色通道 | GPIO25 | — | 在 XIAO RP2040 上直接控制 RGB LED 蓝色通道 |
| RGB_LED | WS2812B 数据 | — | GPIO12/NEOPIX | 单线 WS2812B 彩色数据控制 |
| RGB_EN | WS2812B 使能 | — | GPIO11 | 使能 WS2812B 供电;不是颜色数据引脚 |
| User LED | 用户控制 LED | — | GPIO25 | XIAO RP2040 Plus 上的独立用户 LED |
| BAT_EN | 电池使能 | — | GPIO24 | Plus 版本上的电池电源控制 |
| CHARGE_LED | 充电指示灯 | — | — | 硬件控制的充电状态 LED;不是用户 GPIO |
| SWDIO | SWD 调试 | SWDIO | RP2040_SWDIO | 串行线调试数据 |
| SWCLK | SWD 调试 | SWCLK | RP2040_SWCLK | 串行线调试时钟 |
| USB_D+ | USB | - | USB_DP | USB 1.1 全速正向数据线 |
| USB_D- | USB | - | USB_DM | USB 1.1 全速负向数据线 |
进入 Bootloader 模式
有时当用户烧录程序失败时,Seeed Studio XIAO RP2040 的端口可能会消失。我们可以通过以下操作来解决这个问题:
- 长按 B 按钮。
- 将 Seeed Studio XIAO PR2040 连接到你的电脑。
- 电脑上会出现一个磁盘驱动器。
此时,芯片进入 Bootloader 模式,烧录端口会再次出现。由于 RP2040 芯片有两个分区,一个是 Bootloader,另一个是用户程序。产品在出厂时会在系统存储器中烧录一段 Bootloader 代码。我们可以通过执行上述步骤在模式之间切换。
复位
如果你想复位 Seeed Studio XIAO RP2040,请执行以下步骤:
- 将 Seeed Studio XIAO RP2040 连接到你的电脑。
- 按下 R 引脚 一次。
请注意:内置可编程单色 LED(红色、蓝色和绿色)的行为与 Arduino 上的是相反的。在 Seeed Studio XIAO RP2040 上,需要将引脚拉低才能使其点亮。

电池使用
只有 XIAO RP2040 Plus 在背面配备了 BAT 电池连接器,请注意区分。
XIAO RP2040 Plus 可以使用 3.7V 锂电池作为电源输入。你可以参考下图了解接线方式。

焊接时请务必注意不要让正负极短路,以免烧毁电池和设备。如果电池本身带电,切勿直接将其焊接到电路板上,否则可能烧毁电路板。在电路上电的情况下发生短路风险极大,建议使用适配器。
电池电压读取示例
根据原理图,XIAO RP2040 Plus 使用 SGM40567-4.2XG/TR 锂离子电池充电 IC,为单节锂离子电池提供恒流和恒压充电。充电状态由闪烁的 Charge_LED 指示。
电池电压测量电路使用 TPS22916CNYFPR 负载开关来使能或关闭测量通路。当需要测量电池电压时,MCU 通过 BAT_EN (GPIO24) 使能测量通路,从而在设备处于待机模式时降低电池消耗。
此外,还使用了 SGM4875XXDM6G/TR 模拟开关来切换 ADC 输入通道。通过 GPIO24/BAT_EN 控制,选择将电池测量信号或其他模拟输入信号连接到 A3 (GPIO29) ADC 引脚,从而实现 ADC 引脚的复用。
当 A3 引脚用作 ADC 输入以测量电池电压时,不能同时作为通用 I/O 引脚使用。请在分配引脚时务必考虑这一点。

电池电压是通过电阻分压电路进行测量的。ADC 读取到的电压是实际电池电压的一半,因此软件必须将 ADC 测量值乘以 2 才能得到实际电池电压。
Battery read example
constexpr float ADC_VREF = 3.3f;
constexpr float ADC_MAX = 4095.0f;
constexpr float DIVIDER_RATIO = 2.0f; // 10k / 10k voltage divider
float readBatteryVoltage() {
// Enable voltage divider circuit and analog switch simultaneously
digitalWrite(BAT_EN, HIGH);
// Wait for U2 output, RC filter and ADC input to stabilize
delay(10);
// Discard one possibly stale ADC reading
analogRead(A3);
// Multiple sampling and averaging to reduce noise
uint32_t sum = 0;
constexpr int samples = 16;
for (int i = 0; i < samples; i++) {
sum += analogRead(A3);
delay(2);
}
// Turn off immediately after measurement to avoid continuous power consumption by divider resistors
digitalWrite(BAT_EN, LOW);
float adcRaw = sum / (float)samples;
float a3Voltage = adcRaw * ADC_VREF / ADC_MAX;
return a3Voltage * DIVIDER_RATIO;
}
void setup() {
Serial.begin(115200);
pinMode(BAT_EN, OUTPUT);
digitalWrite(BAT_EN, LOW); // Disable detection circuit by default
analogReadResolution(12); // RP2040 Plus ADC: 0~4095
}
void loop() {
float batteryVoltage = readBatteryVoltage();
Serial.print("Battery: ");
Serial.print(batteryVoltage, 3);
Serial.println(" V");
delay(1000);
}
对于低功耗应用,在完成电池电压测量后,请关闭 BAT_EN,以减少由分压电阻引起的静态功耗。
- 电池充电时,Charge_LED 会闪烁。

- 电池电压测量结果:锂离子电池的实测电压可能与电池上标称的额定电压不同,请始终以实际测量值为准。

原理图在线查看器
资源
XIAO RP2040
硬件设计
- 📄[Datasheet] Raspberry Pi RP2040 数据手册
- 📄[Schematic] XIAO RP2040 原理图
- 🗃️[PCB Design Files]
- 🗃️[PCB Design Libraries]
- 📄[Pinout Diagram] XIAO RP2040 引脚分布表
结构设计
- 📄[2D Dimensions] DXF 格式的 XIAO RP2040 尺寸图
- 📄[3D Model] XIAO RP2040 3D 模型
XIAO RP2040 Plus
硬件设计
- 📄[Datasheet] Raspberry Pi RP2040 数据手册
- 📄[Schematic] XIAO RP2040 Plus 原理图
- 🗃️[PCB Design Files]
- 🗃️[PCB Design Libraries]
- 📄[Pinout Diagram] XIAO RP2040 Plus 引脚分布表
课程资源

技术支持与产品讨论
感谢你选择我们的产品!我们将为你提供多种支持,确保你在使用我们产品的过程中尽可能顺利。我们提供多种沟通渠道,以满足不同的偏好和需求。



