任务介绍
设计一款基于RP2040的开发模块
- 外挂W25Q16 SPI Flash(2MB)
- 12MHz晶振
- USB Type-C接口(供电+数据)
- BOOT按键+RESET按键
- 电源LED+用户LED
- 引出全部26个GPIO
- 支持拖拽式UF2固件烧录
方案介绍
本方案设计了一款基于 Raspberry Pi RP2040 双核微控制器的开发模块,代号 RPDuino-2040。该模块完全兼容 Arduino Uno R3 接口规范,便于开发者快速上手并进行功能扩展。
设计目标
- 高性能:利用 RP2040 双核 133MHz 主频,提供远超传统 Arduino 的计算能力
- 高兼容性:兼容 Arduino Uno R3 扩展板生态,降低迁移成本
- 高扩展性:引出全部 GPIO,支持 SPI Flash、SD 卡、无线模块等多种外设
- 易用性:支持 USB 拖拽式 UF2 固件烧录,无需专业调试器
资源框图

模块介绍
根据任务要求本次我选用的是 RP2040 芯片设计了一款MCU核心板,此板卡主要用于开发学习套件的主控,常用于实时信号采集与处理场景,完全兼容 Arduino Uno R3 接口规范的开发板,以及电源供电管脚。
性能升级
- 主控芯片:采用RP2040(Cortex-M0内核,最高133MHz主频)。
- 资源扩展:264kB SRAM,通过专用 QSPI 总线支持高达 16MB 的片外闪存。
- 外设丰富:集成12位ADC(2.4MSps)、多通道定时器、USB OTG、I²C/SPI/USART等高速通信接口。
高性价比
相比传统 Arduino(ATmega328P,16MHz),性能提升近10倍,成本仅为原本的一半左右。支持更复杂的实时控制、信号处理和低功耗应用。

RP2040 芯片 DigiKey 链接:https://www.digikey.cn/zh/products/detail/raspberry-pi/SC0914-13/14306010
原理图和PCB模块介绍
原理图

PCB

PCB预览图

受 Microchip Curiosity Nano 系列开发板板启发,为了方便使用者扩展,开发板上排针和排母都采用了蛇形孔。可以在不需要焊接的情况下,只需要将排针插入,就可以通过排孔对排针的压力保持较好的电气连接,当使用完扩展板或面包板,只需要将排阵拔出,就可以单独使用核心板。同时,完全兼容 Arduino Uno R3 接口规范也方便使用 Arduino 的扩展板搭配使用。支持 Arduino 开发对于我这类从 Arduino 入坑的业余电子制作爱好者来说是十分友好的了。
为了表达和 Arduino 的不同之处,这里我给这块开发板命名为 RPDuino-2040。为以后的任务打下基础,后续将围绕 RPDuino-2040 制作搭配相应功能的扩展板,以方便实现不同的功能。
硬件设计亮点
1. 电源与时钟
- 输入电压:5 ~ 12V DC(兼容Arduino Uno电源标准)。
- 稳压电路:高效LDO稳压至3.3V,为RP2040及外设供电。
- 时钟源:12MHz晶振+内部PLL,支持高精度定时和通信。
2. 核心接口
- USB-C:实现USB串口通信(兼容Arduino编程协议)。
- 数字I/O:14个通用GPIO(兼容Uno的5V TTL电平,支持复用功能如PWM、中断、IIC、SPI、USART等)。
- 模拟输入:4路12位ADC(兼容Uno的模拟引脚A0-A3)。
3. 增强功能
- 调试接口:ARM SWD调试接口(支持ST-Link/J-Link等调试器)。
- LED与按键:板载ON/OFF状态指示灯、复位按钮及一颗板载 5050 WS2812B 灯珠。
- 蛇形排针孔:可以在不需要焊接的情况下,只需要将排针插入,就可以通过排孔对排针的压力保持较好的电气连接。
- DC电源开关:原版的 Arduino Uno R3 的DC电源输入是没有开关的。在本设计中,增加了一个拨动开关。
- UART引脚切换:增加了一个 滑动开关 可提供UART引脚的交换功能。
4. 尺寸与封装
- PCB尺寸:完全匹配 Arduino Uno R3(68.6mm × 53.3mm),支持现有扩展板和外壳。
5. 软件支持
开发环境
- Arduino IDE:提供RP2040专用Arduino核心,支持直接编译和下载。
- LL库:开放标准库,支持复杂外设开发(如FreeRTOS、GUI、机器学习)。
- MicroPython:支持MicroPython、CircuitPython等编程语言开发。
混合开发模式
- 支持Arduino简化编程(快速原型开发)与PIO底层开发(高性能需求)的自由切换。
模块主要性能指标和管脚定义
主要性能指标
类型 | MCU核心板(兼容 Arduino Uno Rev3 接口) |
|---|---|
核心芯片 | RP2040 |
内核 | Arm Cortex-M0 |
时钟频率 | 133MHz |
SRAM | 264KB |
Flash | 2MB ~ 16MB |
IO数量 | 22 |
板卡尺寸 | 68.6mm × 53.3mm |
供电电压 | 4.5V~5.5V |
输出信号电平 | 3.3V |
板型 | Arduino Uno Rev3 |
管脚定义
管脚属性 | 管脚名 | 管脚编号 | 管脚编号 | 管脚名 | 管脚属性 |
|---|---|---|---|---|---|
- | - | - | 32 | SCL (I2C3_SCL) | I/O |
- | - | - | 31 | SDA (I2C3_SDA) | I/O |
- | - | - | 30 | AREF | P |
- | - | - | 29 | GND | P |
- | - | 1 | 28 | 13 (PWM/SPI2_SCK) | I/O |
P | IOREF (3.3V) | 2 | 27 | 12 (PWM/SPI2_MISO) | I/O |
I | REST | 3 | 26 | 11 (PWM/SPI2_MOSI) | I/O |
P | 3.3V | 4 | 25 | 10 (PWM/SPI2_NSS) | I/O |
P | 5V | 5 | 24 | 9 (PWM) | I/O |
P | GND | 6 | 23 | 8 | I/O |
P | GND | 7 | 22 | 7 | I/O |
P | VIN | 8 | 21 | 6 (PWM) | I/O |
I/O | A0 (ADC) | 9 | 20 | 5 (PWM) | I/O |
I/O | A1 (ADC) | 10 | 19 | 4 | I/O |
I/O | A2 (ADC) | 11 | 18 | 3 (PWM) | I/O |
I/O | A3 (ADC) | 12 | 17 | 2 | I/O |
I/O | A4 (SDA0) | 13 | 16 | 1 (TX) | I/O |
I/O | A5 (SCL0) | 14 | 15 | 0 (RX) | I/O |
SWD烧录口管脚定义
管脚属性 | 管脚名 | 管脚编号 |
|---|---|---|
P | 3.3V | 1 |
P | GND | 2 |
I/O | SWD | 3 |
I/O | CLK | 4 |
I/O | RESET | 5 |
2.4G模板接口(SPI)
管脚属性 | 管脚名 | 管脚编号 |
|---|---|---|
P | GND | 1 |
P | 3.3V | 2 |
I/O | CE(GPIO21) | 3 |
I/O | CSn(GPIO23) | 4 |
I/O | SCK(GPIO18) | 5 |
I/O | MOSI(GPIO19) | 6 |
I/O | MISO(GPIO20) | 7 |
I/O | IRQ(GPIO22) | 8 |
板上设置及标识
标记 | 名称 | 默认状态 | 描述 |
|---|---|---|---|
PWR | 电源指示灯 | 亮 | 指示3.3V电压是否工作正常 |
LED2 | STA | 灭 | 通过编程可以进行状态指示 |
RGB | STA | 灭 | 通过编程可以进行状态指示 |
总结
本开发板通过保留 Arduino Uno 的易用性和发挥 RP2040 的性能优势,为开发者提供了一个 “高性能、高兼容、高扩展性” 的硬件平台。无论是 Arduino 用户向专业领域进阶,还是嵌入式开发者快速原型验证,均可通过此板实现高效开发。