Seeed Studio XIAO RP2350 入门指南(MicroPython)
Seeed Studio XIAO RP2350

XIAO RP2350 将 Raspberry Pi RP2350(双 Cortex-M33 内核,运行频率 150MHz,带 FPU,增强的安全性和加密功能)的强大功能封装到经典的 XIAO 外形尺寸中。尺寸仅为 21x17.8mm,具有 19 个多功能 GPIO、一个 RGB LED 和一个电池管理系统,超低功耗仅 50μA,支持电池供电和直接电池电压测量。得益于 XIAO 生态系统,XIAO RP2350 兼容广泛的扩展模块,包括显示器、LED 矩阵、Grove 模块、CAN 总线、Vision AI 传感器和毫米波传感器。凭借对 MicroPython、C 和 C++ 的原生支持,XIAO RP2350 非常适合各个级别的开发者创建紧凑的电池供电应用,用于智能控制、可穿戴设备、DIY 键盘等。
特性
- 强大的 MCU 板: 配备 Raspberry Pi RP2350 芯片,具有对称双 Arm Cortex-M33 @ 150MHz 和 FPU。
- 增强的安全功能: 内置安全启动和加密引导加载程序确保应用程序安全。
- 软件支持: 兼容 C/C++ 和 MicroPython,确保轻松的项目开发和原型制作。
- 丰富的板载资源: 集成 RGB LED、2MB 闪存、520kB SRAM 和 19 个多功能 GPIO(模拟、数字、I²C、UART、SPI、PWM)。
- 扩展的 8 个新 IO: 与之前的 XIAO MCU 相比,在背面增加了 8 个 IO 引脚,支持更复杂的应用。
- 高效的电源设计: 睡眠模式下超低功耗仅 50μA,支持电池供电。通过内部 IO 直接测量电池电压,增强电池管理系统(BMS)。
- 紧凑的拇指大小设计: 尺寸为 21 x 17.8mm,采用 Seeed Studio 经典的 XIAO 外形尺寸,非常适合空间受限的应用。
- 生产友好: 表面贴装器件(SMD)设计,所有组件都在正面,两侧有邮票孔,便于高效批量生产。
规格参数
产品 | XIAO RP2040 | XIAO RP2350 |
处理器 | Raspberry Pi RP2040 | Raspberry Pi RP2350 |
双核 Cortex-M0+ @ 133MHz | 双核 Cortex-M33 @ 150MHz,FPU | |
RAM | 264kB SRAM | 520kB SRAM |
Flash | 2MB 板载 | 2MB Flash |
LED | 1个用户LED(3色),1个电源LED,1个RGB LED | 1个用户LED,1个充电LED(电池充电指示器),1个RGB LED |
接口 | 11个引脚:4x模拟,11x数字,1x I²C,1x UART,1x SPI,全PWM | 19个引脚:3x模拟,19x数字,2x I²C,2x UART,2x SPI,全PWM |
按钮 | 1个RESET按钮,1个BOOT按钮 | |
安全性 | - | OTP,安全启动,Arm TrustZone |
低功耗 | - | 4.2V/50uA |
软件兼容性 | Arduino,PlatformIO,MicroPython,CircuitPython,Zephyr,更多即将推出 | Arduino,PlatformIO,MicroPython,CircuitPython,更多即将推出 |
工作温度 | -20°C~70°C | |
尺寸 | 21x17.8 mm |
硬件概述
XIAO RP2350 正面引脚图 |
---|
![]() |
XIAO RP2350 背面引脚图 |
![]() |
XIAO RP2350 组件 |
![]() |
需要更多引脚详细信息?请导航到下面的资产和资源。
平台支持
XIAO RP2350由RP2350驱动,支持MicroPython和Raspberry Pi提供的C/C++ SDK。这种灵活性允许开发者为原型设计和开发选择他们首选的编程语言和环境。
C/C++ SDK | MicroPython |
---|---|
![]() | ![]() |
入门指南▶️
本页面主要面向 MicroPython 用户。对于有兴趣学习 SDK 编程或高级用户,您可能希望从 Raspberry Pi Pico 系列 C/C++ SDK 开始。本指南将帮助您设置环境并开始使用示例代码。此外,您可以访问 XIAO RP2350 与 C/C++ SDK 获取与 XIAO RP2350 相关的更具体说明。
如果您从官方网站下载固件,需要使用 1.26.0 或更高版本。SEEED_XIAO_RP2350
步骤 1:在 XIAO RP2350 上安装 MicroPython
要在 XIAO RP2350 上安装 MicroPython 固件,请按照以下步骤操作:
步骤 1.1. 下载 MicroPython 固件:
- 导航到 MicroPython 下载 页面。
- 下载与 XIAO RP2350 兼容的最新
.uf2
固件文件。
默认固件适用于 ARM 架构,如果您想使用 RISC-V,请使用链接中相应的固件版本。
步骤 1.2 进入 BOOTSEL 模式:
您可以使用以下两种方法之一在 XIAO RP2350 上进入 BOOTSEL 模式:
- 方法 1:连接计算机之前
- 方法 2:连接计算机时
- 按住 BOOT 按钮:
当您的 XIAO RP2350 与计算机断开连接时,按住 BOOT 按钮。 - 连接到您的计算机:
在按住 BOOT 按钮的同时,使用 USB 线缆将 XIAO RP2350 连接到您的计算机。 - 释放 BOOT 按钮:
板子连接到计算机后,您可以释放 BOOT 按钮。XIAO RP2350 现在应该处于 BOOTSEL 模式,您的计算机将识别它为可移动存储设备。

- 按住 BOOT 按钮:
当 XIAO RP2350 已连接到您的计算机时,按住 BOOT 按钮。 - 点击 RESET 按钮:
在仍然按住 BOOT 按钮的同时,按下并释放 RESET 按钮,该按钮在上图中标记为"B",位于板子的右下角。 - 释放 BOOT 按钮:
按下 RESET 按钮后,释放 BOOT 按钮。XIAO RP2350 现在应该处于 BOOTSEL 模式,您的计算机将识别它为可移动存储设备。

步骤 1.3. 安装固件:
- 拖放 下载的
.uf2
文件到 XIAO RP2350 的可移动存储驱动器中。 - 文件复制完成后,板子将自动重启,完成固件安装。
步骤 2:安装 Thonny IDE
MicroPython 是一种类似于 Python 的解释型语言。然而,与 Python 不同,MicroPython 直接在硬件上运行(裸机),提供交互式提示符(REPL)来立即执行命令,以及从内置文件系统运行和导入脚本的能力。
要连接到 XIAO RP2350 板并开始编写和运行您的 Python 代码,您可以使用任何支持串行连接的终端工具,如 minicom、PuTTY、electerm、warp 等。为了获得更用户友好的体验,您可以使用 Thonny,因为它易于使用、功能集成且对初学者友好。这样,您就可以享受直接在设备上编写和运行 Python 代码的乐趣。
Thonny IDE 是一个对初学者友好的 Python 编辑器,非常适合 MicroPython 开发。以下是安装方法:
-
下载 Thonny:
- 访问 Thonny 下载页面。
- 选择适合您操作系统(Windows、macOS 或 Linux)的安装程序并下载。
-
安装 Thonny:
- 运行 下载的安装程序。
- 按照 屏幕上的说明完成安装过程。
-
为 MicroPython 配置 Thonny:
- 打开 Thonny IDE。
- 查看 Thonny 窗口的右下角。
- 点击解释器选择区域。
- 从下拉菜单中选择 'MicroPython (RP2040)'。
- 确保选择了正确的端口——Thonny 通常会自动检测。
现在您已准备好使用 Thonny IDE 为您的 XIAO RP2350 编写和上传 MicroPython 代码!
- Thonny IDE
- PuTTY 控制台


如果您的设备已准备好使用 MicroPython,让我们从一个简单的项目开始:
让它闪烁! ✨
让板子闪烁 LED 通常是每个人运行的第一个程序。XIAO RP2350 也是如此。
根据原理图,USER LED
(XIAO RP2350 上的黄色 LED)连接到 GPIO25/D19
。
对于所有 XIAO 系列板子,USER LED
在设置为低电平
时会点亮,在设置为高电平
时会熄灭。
- 闪烁
- LED渐变
from machine import Pin # Import the Pin class from the machine module
from time import sleep # Import the sleep function from the time module
# Initialize GPIO25 as an output pin, which controls the USER LED
led = Pin(25, Pin.OUT)
# Turn off the LED initially
led.value(1) # led.on() -> high level -> light off
sleep(0.5) # Wait for 0.5 seconds
# Turn on the LED
led.value(0) # led.off() -> low level -> light on
sleep(0.5) # Wait for 0.5 seconds
# Enter an infinite loop
while True:
# Toggle the LED state (on to off or off to on)
led.toggle()
# Print the current state of the LED
print(f"LED {'ON' if led.value() == 0 else 'OFF'}")
sleep(0.5) # Wait for 0.5 seconds before the next toggle
![]() | ![]() |
# Example using PWM to fade an LED.
import time
from machine import Pin, PWM
# Construct PWM object, with LED on Pin(25).
pwm = PWM(Pin(25))
# Set the PWM frequency.
pwm.freq(1000)
# Fade the LED in and out a few times.
duty = 0
direction = 1
for _ in range(8 * 256):
duty += direction
if duty > 255:
duty = 255
direction = -1
elif duty < 0:
duty = 0
direction = 1
pwm.duty_u16(duty * duty)
time.sleep(0.001)

将代码复制到 Thonny IDE 后,如下图所示,只需点击 Run current script
按钮或按 F5
键。这将执行代码片段,您将看到 XIAO RP2350 上的 LED 开始闪烁。
使用 RGB LED
XIAO RP2350 配备了内置 RGB LED,您可以使用 MicroPython 来控制它。以下是如何循环显示不同颜色的示例:
import array, time, random
from machine import Pin
import rp2
NUM_LEDS = 1
LED_PIN = 22 # PICO_DEFAULT_WS2812_PIN
POWER_PIN = 23 # PICO_DEFAULT_WS2812_POWER_PIN
# Global brightness variable (0.0 to 1.0)
BRIGHTNESS = 0.1
@rp2.asm_pio(sideset_init=rp2.PIO.OUT_LOW, out_shiftdir=rp2.PIO.SHIFT_LEFT, autopull=True, pull_thresh=24)
def ws2812():
T1 = 2
T2 = 5
T3 = 3
wrap_target()
label("bitloop")
out(x, 1) .side(0) [T3 - 1]
jmp(not_x, "do_zero") .side(1) [T1 - 1]
jmp("bitloop") .side(1) [T2 - 1]
label("do_zero")
nop() .side(0) [T2 - 1]
wrap()
# Set up the power pin
power_pin = Pin(POWER_PIN, Pin.OUT)
power_pin.value(1) # Turn on power to the LED
# Create the StateMachine with the ws2812 program, outputting on LED_PIN
sm = rp2.StateMachine(0, ws2812, freq=8_000_000, sideset_base=Pin(LED_PIN))
# Start the StateMachine, it will wait for data on its FIFO.
sm.active(1)
def set_led_color(color):
sm.put(array.array("I", [color]), 8)
def random_color():
return random.randint(0, 255) | (random.randint(0, 255) << 8) | (random.randint(0, 255) << 16)
def interpolate(color1, color2, factor):
r1, g1, b1 = color1 & 255, (color1 >> 8) & 255, (color1 >> 16) & 255
r2, g2, b2 = color2 & 255, (color2 >> 8) & 255, (color2 >> 16) & 255
r = int(r1 + factor * (r2 - r1))
g = int(g1 + factor * (g2 - g1))
b = int(b1 + factor * (b2 - b1))
return (b << 16) | (g << 8) | r
def apply_brightness(color, brightness):
r, g, b = color & 255, (color >> 8) & 255, (color >> 16) & 255
r = int(r * brightness)
g = int(g * brightness)
b = int(b * brightness)
return (b << 16) | (g << 8) | r
print("Starting random color transitions with adjustable brightness...")
# Main loop
current_color = random_color()
while True:
next_color = random_color()
for i in range(100): # 100 steps for smooth transition
transition_color = interpolate(current_color, next_color, i / 100)
final_color = apply_brightness(transition_color, BRIGHTNESS)
set_led_color(final_color)
time.sleep_ms(20) # Adjust this value to change transition speed
current_color = next_color
# Optionally, you can change the brightness here for demo purposes
# BRIGHTNESS = random.random() # This will set a random brightness each cycle

电池和电源管理
是否可以在不使用额外组件的情况下读取电池电压?是的,使用 XIAO RP2350,这比以往任何时候都更容易。在之前的 XIAO 系列成员中,例如 XIAO ESP32C3,读取电池电压需要手动连接到 A0 并使用电阻。
但是使用 XIAO RP2350,这个过程得到了简化。您现在可以直接使用 A3/GPIO29
引脚来读取电池电压水平,简化您的设计和开发。只需记住将 GPIO19
引脚设置为高电平,因为这是启用电池电平读取所必需的。
按照这个代码片段使用 Pico SDK 读取电池电压:
- MicroPython
- C/C++ SDK
from machine import Pin, ADC
import time
# Function to initialize the GPIO pin for enabling battery voltage reading
def init_gpio():
enable_pin = Pin(19, Pin.OUT)
enable_pin.value(1) # Set the pin to high to enable battery voltage reading
def main():
print("ADC Battery Example - GPIO29 (A3)")
init_gpio() # Initialize the enable pin
adc = ADC(Pin(29)) # Initialize the ADC on GPIO29
conversion_factor = 3.3 / (65535) # Conversion factor for 12-bit ADC and 3.3V reference
while True:
result = adc.read_u16() # Read the ADC value
voltage = result * conversion_factor * 2 # Calculate the voltage, considering the voltage divider (factor of 2)
print("Raw value: 0x{:03x}, voltage: {:.2f} V".format(result, voltage))
time.sleep(0.5) # Delay for 500 milliseconds
if __name__ == '__main__':
main()
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "hardware/adc.h"
// Function to initialize the GPIO pin for enabling battery voltage reading
void init_gpio() {
const int enable_pin = 19; // Pin to enable battery voltage reading
gpio_init(enable_pin); // Initialize the pin
gpio_set_dir(enable_pin, GPIO_OUT); // Set the pin as output
gpio_put(enable_pin, 1); // Set the pin to high to enable battery voltage reading
}
int main() {
stdio_init_all(); // Initialize standard input/output
printf("ADC Battery Example - GPIO29 (A3)\n");
init_gpio(); // Initialize the enable pin
adc_init(); // Initialize the ADC
// Initialize the ADC GPIO pin (GPIO29)
adc_gpio_init(29);
// Select ADC input 3 (corresponding to GPIO29)
adc_select_input(3);
while (1) {
// 12-bit conversion, assume max value == ADC_VREF == 3.3 V
const float conversion_factor = 3.3f / (1 << 12); // Conversion factor for 12-bit ADC and 3.3V reference
uint16_t result = adc_read(); // Read the ADC value
// Calculate the voltage, considering the voltage divider (factor of 2)
printf("Raw value: 0x%03x, voltage: %f V\n", result, result * conversion_factor * 2);
sleep_ms(500); // Delay for 500 milliseconds
}
}
资源与素材
XIAO RP2350 利用 Raspberry Pi RP2350 的强大功能,充分利用 Raspberry Pi 社区的丰富共享资源。这为您在这块小巧的开发板上定制项目开启了无限可能的世界。以下是帮助您入门的重要资源和素材。
数据手册和原理图
-
📄 [PDF] RP2350 数据手册
-
📄 [PDF] Seeed Studio XIAO RP2350 原理图
-
📄 [XLSX] Seeed Studio XIAO RP2350 引脚图表
-
📄 [DXF] Seeed Studio XIAO RP2350 DXF 尺寸图
-
📄 [UF2] 低功耗测试固件
相关资源
- 📄 [PDF] Raspberry Pi Pico 系列入门指南:设置和编程 Raspberry Pi Pico 开发板的综合指南,非常适合想要学习 MicroPython 或 C/C++ 的初学者。
- 📄 [PDF] Raspberry Pi Pico 系列 Python SDK 记录 MicroPython 设置教程和 API 的手册
- 📄 [PDF] Raspberry Pi Pico 系列 C/C++ SDK 记录 Pico C/C++ SDK API 的手册
- 🔗 [Kicad] Seeed Studio XIAO RP2350 封装库
扩展和应用
XIAO 系列拥有大量的外设和外设配件供您学习和使用,无论您想要一个允许完美交互的彩色屏幕,还是一个带有明亮简洁 RGB 灯光的集成板等等,都等待着您的探索。
作为 XIAO 家族的一员,XIAO RP2350 也是如此。当然,为了更好地利用引出的额外引脚,新的外设和开发板将不断推出,充分利用其创造的性能。
- 🌟 配件扩展
探索与 XIAO 家族兼容的各种附加组件和模块,从显示器和 LED 矩阵到 Grove 模块和传感器,了解它们如何增强您的项目。
社区和学习
此外,深入充满活力的 Raspberry Pi 社区,扩展您的知识并发现新的项目想法。利用社区共享的资源、论坛和教程来增强您使用 XIAO RP2350 的体验。除了 Seeed Studio Wiki 之外,以下是一些其他推荐的学习场所:
- Raspberry Pi 文档:获取关于 RP2350 的可靠和最新信息。
- Raspberry Pi 论坛:与其他爱好者互动,提问并分享您的项目。
- XIAO GitHub 仓库:探索官方 XIAO 仓库,获取更集中的文档并与我们的团队进行更多互动,加入我们!
- Reddit 上的 r/embedded:加入嵌入式系统社区,分享见解并讨论各种话题。
- GitHub 上的 Pico 话题:探索与 Pico 相关的仓库和讨论。
- Hackster.io:发现与各种硬件平台相关的项目和教程,包括 XIAO 和 Raspberry Pi。
- Instructables:查找使用 XIAO 和其他硬件进行创作的 DIY 项目和分步指南。
- Element14 社区:参与与电子和嵌入式系统相关的讨论、网络研讨会和项目。
更多信息,欢迎您在我们的 Seeed Studio Discord 和 Seeed Studio 论坛上分享您的项目。这些平台为您提供了与其他创客联系、获得反馈和寻找灵感的绝佳机会。无论您需要帮助解决问题、想要展示您的最新作品,还是只是希望成为支持性社区的一部分,Seeed Studio 的 Discord 和论坛都是参与和协作的完美场所。
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。