文件
phonerail/CLAUDE.md
T
zhou yang和Claude Opus 5 efcba30a0c R2 底板改 4 层(D15):规则 / 几何 / 背面摆位 / 4 层布线与铺铜,已下发
- 规则:铜层 2→4,差分 0.28/0.18,间距 0.15,过孔 0.3/0.2(rules_base)
- 几何:98×98 板框 + 4×M3,槽阵居中,L1 12V 大铜 + 指头(pcb_base)
- 摆位:五插槽留 L1,其余 133 件翻到 L4;背面镜像规则实测;Hub 放走廊 2、
  东移 2.5 mm;扇出圈 / 小件间距 1.5(去耦例外)/ 9 A 过孔阵禁区(place_base)
- 叠层按用户决定改为 L1 槽面 / L2 整层 +3V3 / L3 整层 GND / L4 器件面
- 布线:D± 七对按构造布通(USB3 掉头、USB1/2 北去掉头、USB4/5 东绕、
  J23 桥),+3V3 / GND / +12V 平面网每脚一孔,0.125 网格 + PathFinder
  开关(route_base、remote_route.ps1);剩 37 个网待手工补
- 铺铜:4 层重写,入口链自南向北切段 + 断面校核(pour_base);
  已下发布线 / 缝合孔 / 铜面轮廓,填铜未成功(待查)
- 工具:plot_base / plot_routes / shot_base,board_check 通孔两层都算

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_0168Bu6SEx3cXXCJLkdnE6zB
2026-09-10 21:02:10 +08:00

69 行
3.7 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# PhoneRail —— 五路手机直供电源板
给手机农场用的一块电源板:12V 输入,5 路独立 3.5~4.2V / 4A,直接从**电池座**给
小米8(dipper)主板供电(去掉电池和保护板),ESP32-S3 负责遥测、断电重启、
侧键模拟和 USB 通断。
## 先读这两份
| 文件 | 内容 |
|---|---|
| **`五路直供电源板设计.md`** | 设计定稿 v1.6。规格、拓扑、逐项计算、保护链、BOM、PCB 要点、调试顺序、小米8 侧接口引脚定义。**改任何设计决定都要同步更新它。** |
| **`PROGRESS.md`** | 当前进度与下一步。原理图画到哪一页、还有哪些阻塞项。 |
| **`刀片式方案规划-R2.md`** | **R2 新架构**(底板 4 层 98×98、器件全在背面 + 5 片相同刀片、PCIe 竖插;D15,2026-09-10 由 2 层改),2026-09-08 起与 R1 并行。工程 UUID 在 `.claude/r2/r2-uuids.json`。**R1 保留不动。** |
## 布线计算硬规则
**所有 PCB 布线运算统一在 `10.5.5.13` 服务器执行。** 本机只允许刷新 EasyEDA
快照、校验服务器结果、下发和跑 DRC;不得在本机运行 `route_base.py --replan`、
`--dp-only` 或其他 A* 试算。底板统一从 `.claude/r2/remote_route.ps1` 进入。
服务器上优先用 PyPy(`-Interp /root/pypy/bin/pypy3`,单轮快约 4.7 倍,输出确定);
`-Variants @('...','...')` 并行跑多组参数、自动取未完成最少且不比当前缓存差的结果。
设计文档里 **§0.1 是决策清单**(13 条已定稿,不要再重新讨论),
**§12 是待确认项**。动手前先扫这两节。
## 画原理图时
工程已建好在 EasyEDA Pro 里,通过 `easyeda-api` skill 的 WebSocket 桥接操作。
**动手前必须先读 `easyeda-sch-geometry` skill**(项目级,在 `.claude/skills/` 下)。
它记录了 Y 轴方向、旗/端口的旋转语义、坐标吸附、导线数组格式等一批实测约定——
这些坑每一个都已经真实踩过一次,不读会重蹈覆辙。
器件和工程的 UUID 全部缓存在 **`.claude/eda-parts.json`**,
直接读取即可,不用重新 `lib_Device.search`。
每次改完跑(**它跑的是当前打开的那一页**,所以先 `openDocument` 再验):
```bash
/c/Python314/python .claude/skills/easyeda-sch-geometry/scripts/verify_sch.py --nets
```
改完还要跑一次**跨页对账**,确认没有"全工程只有一个实例"的网络:
```bash
/c/Python314/python .claude/xpage.py
```
六项检查全过之后,**还要让用户截图确认方向与排版**——
几何验证证明不了"看着对",本项目所有方向问题都是靠人眼截图发现的。
(`python .claude/shot.py <pageUuid> out.png` 可以自己先截一张看。)
⚠️ **几何验证有一类抓不到的错**:端口/旗的引脚和元件引脚放在**同一个坐标**时,
中间是一段零长度导线,验证会通过,重画那一页时才会真的断开。
本项目已经踩到三处(P2 的 `K1_VUP`、P1 的 `BLD_REF`/`BLD_A`)。见 skill §8a。
## 硬件参考资料
`小米8原理图/Xiaomi_Mi_8_Schematic.pdf`(44 页,Rev E8)——
主板电池座 J600、侧键 J601~J604、尾插 J1401 的引脚定义已从中逐脚追踪出来,
结论写在设计文档 §13。图纸本身是第三方扫描件,**以实测为准**。
## 两条容易搞混的约定
- **电池侧接排线的 `P+`/`P−`(保护板输出侧),不是 `B+`/`B−`。** 焊错边常温下现象完全正常,
只有过压时才暴露。判别方法和验证步骤见设计文档 §13.5 / §13.7。
- **J600 的 `GND3`/`GND4` 固定脚实际接的是 VBATT,不是地。** 同理 J1401 的 `GND2` 是 USB_VBUS。
按名字当地用会直接短路电池。