RP2040开发板电路设计

RP2040开发板,做嵌入式开发

拿它做点能跑起来的东西,配了一块1.8寸屏:屏幕、电池、主控、充电板。

桌面原型:YD-RP2040、1.8寸屏、TP4056与500mAh锂电用飞线连成一整套,屏幕正在显示圆周率

项目开在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。软包锂电池皮很薄,不能直接压上去。需要垫一些软的中层。

焊接

先拆掉排针

如果收到板子后者屏幕是已经焊好排针的版本,需要先拆下排针:

  1. 用斜口钳或尖嘴钳夹碎排针底部的黑色塑料座,让金属针彼此独立。
  2. 一手镊子夹住一根针,一手用电烙铁加热背面的焊点;锡化啦就轻轻往外抽。
  3. 吸锡器吸净孔内残锡,或者用牙签趁热捅穿——孔必须通透,后面要穿线。

屏幕接线

剪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 按下拉低
Raspberry Pi Pico 引脚图与产品尺寸图

通电前检查

拨开关之前确认这几处:

  • 剪断的金属废线头全部清理干净,没有掉进任何板子缝隙里。
  • 从底板翻上来的导线外皮完好,没有被板边锋利焊盘割破露铜。
  • 电池与任何金属针脚、焊点之间都有绝缘(双面胶或硬塑料片),没有被刺穿的可能。
  • 有条件就上万用表蜂鸣档:该通的关键引脚确实通,相邻引脚没有意外短路。
第一次上电:屏幕亮起并显示 CircuitPython 启动信息与提示文字

上电

接线正确、固件也烧好之后拨开关,屏幕会亮起来打印启动信息——这台跑的是CircuitPython 10.3.0,画面里的提示文字是固件自带的拼音化中文。

屏幕上出现字,说明SPI那五根线、复位、片选和供电正确。

另一个角度:主控电源灯亮起,屏幕显示一张 24 位 BMP 图片

屏幕是彩屏,能显示标准24位BMP图片,仓库里examples/image_viewer.py可做测试。

放文件:插上线就是U盘

  1. Type-C线插设备连电脑,会弹出一块名叫CIRCUITPY的U盘。
  2. 把UTF-8编码的book.txt拖进盘根目录,拔线。
  3. 拨开关开机,按「下一页」从第一页开始读。

充电时线要插在TP4056的Type-C口,插主控口是直接给主控供电,不走充电板。

固件

板子跑的是CircuitPython(仓库:adafruit/circuitpython)。屏幕驱动、中文字体、翻页逻辑一共216行,另外依赖三个库,都在Adafruit的仓库里:

中文用的是BDF点阵字体,文泉驿点阵宋体有现成的中文字形可以转。

注意:

  • CircuitPython 9.x起FourWire从displayio拆成了独立的fourwire模块,照8.x教程写会报AttributeError,表现是背光亮但屏幕全黑——很容易误判成焊接问题。
  • 这块屏的色序是BGR,建display时要显式bgr=True,不设颜色会反。

仓库

完整制作指南(选型 → 烧录 → 组装 → 排障)在docs/BUILD_GUIDE.zh-CN.md,接线表在hardware/PINOUT.md,代码与示例在仓库根目录。MIT协议,欢迎照抄。