任务介绍
我选择任务2:设计一款RP2040双核MCU开发模块.。
- 外挂W25Q16 SPI Flash(2MB)
- 12MHz晶振
- USB Type-C接口(供电+数据)
- BOOT按键+RESET按键
- 电源LED+用户LED
- 引出全部26个GPIO
- 支持拖拽式UF2固件烧录
方案介绍
Raspberry Pi Pico是一款基于RP2040设计的低成本高性能微控制器开发板,可选用Python或C/C++进行开发,方便快速入门开发学习,迷你小巧,灵活易用。这里仿照树莓派Pico自己动手制作了一款基于RP2040的核心开发板,在原版的基础上扩大了Flash的容量,并加了电压监测功能,和QWIIC的接口。

模块介绍
根据任务要求本次我选用的是树莓派RP2040芯片设计了一款MCU核心板,此板卡主要用于学习RP2040编程,板子上将RP2040引脚均已引出,并添加了QWIIC接口:
- 电源电路:按文档RP2040需要使用3.3V和1.1V两种电压供电,RP2040内部有3.3V转1.1V的LDO功能,所以不用再管1.1V电源部分。外部输入电源来自Type-c接口,输入为5V电源,通过二极管输入给ME6211芯片,转换为3.3V电压给芯片使用。

- Type-C 接口除了供电,还需要实现数据传输功能,所以RP2040的USB_DP和USB_DM引脚分别串联上27Ω电阻再与TYPE C连接。
- 外挂FLASH闪存芯片,这里我使用W25Q128JVSIQ芯片,这是一颗128M 大容量的Flash芯片,能够为RP2040提供更多的存储空间。
- 按键电路:板子上使用了两个按键,复位按键和bootsel按键。复位按键与RP2040的RUN引脚相连接,外接上拉电阻使RUN默认稳定为高电平。bootsel按键与RP2040的QSPI_SS引脚串联一个1kΩ相连接,当RP2040上电时,QSPI_SS引脚将自动默认为上拉,RP2040在启动过程中会检查这个I/O的值,QSPI_SS为逻辑0,RP2040进入引导加载驱动BootLoader模式。未按BOOTSEL按键时,复位或上电,从Flash启动,进入normal普通模式。按下BOOTSEL按键时,复位或上电,将显示为一个RPI-RP2磁盘,进入BootLoader模式,拖放UF2固件进行编程开发。

- LED灯:电源指示灯,上电时亮起,显示系统供电部分正常工作;状态显示灯,连接到RP2040的GPIO25引脚,通过程序实现亮灭。
- 引脚:使用两个20针的排针将引脚引出,方便测试使用。排针使用2.54mm间距,两组排针之间间距使用700mil,方便面包板上的使用。并在板子上做好管脚的丝印。
RP2040芯片DigiKey链接:https://www.digikey.cn/zh/products/detail/raspberry-pi/SC0914-13/14306010
原理图和PCB模块介绍


板子上的SWD接口,感觉用不上。所以以测试点的方式保留,在板子上额外添加了QWIIC接口。


主要性能指标
类型 | RP2040核心板 |
核心芯片 | rp2040 |
内核 | 双核Arm Cortex M0+内核 |
Flash | 128M |
IO数量 | 26 |
板卡尺寸 | 18mm x 52mm |
供电电压 | 5V |
输出信号电平 | 3.3V |
管脚
管脚属性 | 管脚名 | 管脚编号 | 管脚名 | 管脚属性 | |
I/O | GPIO0 | 1 | 40 | VBUS | P |
I/O | GPIO1 | 2 | 39 | VSY | P |
P | GND | 3 | 38 | GND | P |
I/O | GPIO2 | 4 | 37 | GPIO23 | I/O |
I/O | GPIO3 | 5 | 36 | 3V3 | P |
I/O | GPIO4 | 6 | 35 | VREFF | P |
I/O | GPIO5 | 7 | 34 | GPIO28 | I/O |
P | GND | 8 | 33 | GND | P |
I/O | GPIO6 | 9 | 32 | GPIO27 | I/O |
I/O | GPIO7 | 10 | 31 | GPIO26 | I/O |
I/O | GPIO8 | 11 | 30 | RUN | I/O |
I/O | GPIO9 | 12 | 29 | GPIO22 | I/O |
P | GND | 13 | 28 | GND | P |
I/O | GPIO10 | 14 | 27 | GPIO21 | I/O |
I/O | GPIO11 | 15 | 26 | GPIO20 | I/O |
I/O | GPIO12 | 16 | 25 | GPIO19 | I/O |
I/O | GPIO13 | 17 | 24 | GPIO18 | I/O |
P | GND | 18 | 23 | GND | P |
I/O | GPIO14 | 19 | 22 | GPIO17 | I/O |
I/O | GPIO15 | 20 | 21 | GPIO16 | I/O |
心得体会
绘制了RP2040核心板,参考着官方的板子,添加了自己需要的一些借口。不过RP2040芯片LQFN的封装,自己动手焊接,还是蛮心虚的。接下来继续焊接技术的探索,把模块的功能尽量完善,感谢这次的活动,学习到了非常多的硬件知识。