RP2040开发板电路设计

RP2040开发板电路设计
陈鑫宇RP2040开发板,做嵌入式开发
拿它做点能跑起来的东西,配了一块1.8寸屏:屏幕、电池、主控、充电板。
项目开在4choor3/rp2040-txt-reader,接线表在hardware/PINOUT.md,带图的分步制作指南在docs/BUILD_GUIDE.zh-CN.md。
选型
对于板子的选择:
| 方案 | 卡在哪 |
|---|---|
| ESP32 + TFT_eSPI | 经典Arduino路线,性能够,但放文件需要重编译烧录,或者开网页传,工具链麻烦 |
| ESP32-C3 SuperMini | 25元、硬币大小、自带Wi-Fi热点,手机连上用网页传文件——还是甩不开Arduino |
| ESP32 + I2C OLED | 1.3寸OLED配U8g2,对比度好,但屏偏小,固件构建也重 |
| RP2040 + CircuitPython | 不用Wi-Fi:刷上固件后板载16MB闪存直接变成一块U盘,代码、字体、TXT拖进去就能用 |
选RP2040最为方便:插上线就是U盘,驱动装一次就识别、不用开热点、不用编译器。
物料清单
| 部件 | 型号 / 规格 | 尺寸 | 成本 |
|---|---|---|---|
| 主控 | YD-RP2040(16MB闪存版) | 53.3 × 22.9 mm | ¥9–11 |
| 屏幕 | 1.8寸TFT,ST7735,128×160 SPI | 模块约56 × 34 mm | ¥7–10 |
| 电池 | 503035聚合物锂电,3.7V 500mAh | 约35 × 30 × 3.5 mm | ¥5–8 |
| 充电保护 | TP4056 Type-C模块 | — | ¥1–2 |
| 翻页键 | 6×6×5轻触微动开关×2 | — | <¥1 |
| 电源开关 | SS12D00拨动开关(可选) | — | <¥1 |
自己焊接的话,主控要买未焊接排针的散件版,屏幕需要焊接好的,不能是裸板。
结构
屏幕(最底层,屏面朝外)→ 缓冲层 + 电池(中层)→YD-RP2040 + TP4056(顶层)
主控53.3 × 22.9 mm能放在约56 × 34 mm的屏幕背后,电池夹在中间。
缓冲层
屏幕背面有LDO、贴片阻容,有的批次还带SD卡座,凸起1–2mm。软包锂电池皮很薄,不能直接压上去。需要垫一些软的中层。
焊接
先拆掉排针
如果收到板子后者屏幕是已经焊好排针的版本,需要先拆下排针:
- 用斜口钳或尖嘴钳夹碎排针底部的黑色塑料座,让金属针彼此独立。
- 一手镊子夹住一根针,一手用电烙铁加热背面的焊点;锡化啦就轻轻往外抽。
- 吸锡器吸净孔内残锡,或者用牙签趁热捅穿——孔必须通透,后面要穿线。
屏幕接线
剪8根约5cm的30AWG硅胶线,分别穿过屏幕底板那8个孔(VCC、GND、SCL、SDA、RES、DC、CS、BLK)焊死。
电源链路
电池红线焊TP4056的B+,黑线焊B−。这两根正负极不能接反或短接。
接着OUT+出来先过拨动开关再过主控Vin,OUT−接主控GND。
飞线对接
把屏幕上焊接的8根线从电池侧边翻上来,一根一根焊到主控对应引脚上。每焊一根都先比划长度:剪掉多余的、重新剥皮再焊,保证线贴着电池边缘走、不拱起来。
全部接完就是文章开头那张图的样子。
按键
两个按键各自的一个引脚并联起来接GND,另一个引脚分别接GP16 / GP17。主控内部上拉,按下即拉低触发,不占地方也不用额外元件。
接线表
屏幕(1.8寸ST7735,走硬件SPI1)
| 屏幕引脚 | 接到YD-RP2040 | 作用 |
|---|---|---|
| VCC | 3V3 | 屏幕逻辑供电 |
| GND | GND | 信号地 |
| SCL / SCK | GP10 | SPI硬件时钟 |
| SDA / MOSI | GP11 | SPI数据输出 |
| RES / RST | GP12 | 屏幕硬件复位 |
| DC / A0 | GP13 | 数据 / 命令切换 |
| CS / CE | GP14 | SPI片选 |
| BLK / LED | 3V3 | 背光供电(常亮) |
板上通常只引出一个3V3孔,接两根线不方便。做法是在屏幕端把VCC和BLK短接,并联后共用一根飞线接到3V3,最整洁。
电源链路(电池 → 充电板 → 开关 → 主控)
| 起点 | 终点 | 说明 |
|---|---|---|
| 电池红线(+) | TP4056 B+ | 充电输入正极 |
| 电池黑线(−) | TP4056 B− | 充电输入负极 |
| TP4056 OUT− | 主控GND | 系统共地 |
| TP4056 OUT+ | 拨动开关 引脚1 | 正极先过开关 |
| 拨动开关 引脚2 | 主控Vin | 主板供电 |
| TP4056 OUT+ | 主控Vin | 不加开关时的直连方案 |
翻页按键
| 功能 | 一端 | 另一端 | 触发逻辑 |
|---|---|---|---|
| 下一页 | GP16 | GND | 按下拉低 |
| 上一页 | GP17 | GND | 按下拉低 |
通电前检查
拨开关之前确认这几处:
- 剪断的金属废线头全部清理干净,没有掉进任何板子缝隙里。
- 从底板翻上来的导线外皮完好,没有被板边锋利焊盘割破露铜。
- 电池与任何金属针脚、焊点之间都有绝缘(双面胶或硬塑料片),没有被刺穿的可能。
- 有条件就上万用表蜂鸣档:该通的关键引脚确实通,相邻引脚没有意外短路。
上电
接线正确、固件也烧好之后拨开关,屏幕会亮起来打印启动信息——这台跑的是CircuitPython 10.3.0,画面里的提示文字是固件自带的拼音化中文。
屏幕上出现字,说明SPI那五根线、复位、片选和供电正确。
屏幕是彩屏,能显示标准24位BMP图片,仓库里examples/image_viewer.py可做测试。
放文件:插上线就是U盘
- Type-C线插设备连电脑,会弹出一块名叫
CIRCUITPY的U盘。 - 把UTF-8编码的
book.txt拖进盘根目录,拔线。 - 拨开关开机,按「下一页」从第一页开始读。
充电时线要插在TP4056的Type-C口,插主控口是直接给主控供电,不走充电板。
固件
板子跑的是CircuitPython(仓库:adafruit/circuitpython)。屏幕驱动、中文字体、翻页逻辑一共216行,另外依赖三个库,都在Adafruit的仓库里:
- Adafruit_CircuitPython_ST7735R — 屏幕底层驱动
- Adafruit_CircuitPython_Display_Text — 文本排版
- Adafruit_CircuitPython_Bitmap_Font — 加载点阵字体
- 想一次拿齐,用官方合集Adafruit_CircuitPython_Bundle
中文用的是BDF点阵字体,文泉驿点阵宋体有现成的中文字形可以转。
注意:
- CircuitPython 9.x起
FourWire从displayio拆成了独立的fourwire模块,照8.x教程写会报AttributeError,表现是背光亮但屏幕全黑——很容易误判成焊接问题。 - 这块屏的色序是BGR,建display时要显式
bgr=True,不设颜色会反。
仓库
完整制作指南(选型 → 烧录 → 组装 → 排障)在docs/BUILD_GUIDE.zh-CN.md,接线表在hardware/PINOUT.md,代码与示例在仓库根目录。MIT协议,欢迎照抄。





