文件
..

PhoneRail —— KiCad 版本(由 EasyEDA 工程自动转换)

从 EasyEDA Pro 工程「五路手机直供电源板」转换而来。KiCad 侧为主线,EasyEDA 工程保留。

转换范围(2026-09-07 商定):符号库 + 封装库 + 原理图 + 网表。 EasyEDA PCB 没有搬(铜箔、布线、铺铜都保留原处)。KiCad 两块220×135mm四层PCB已完成R2功能布局,随后新增十颗Hub配置下拉,当前529个电气封装全部入板。下板已完成三批40处局部连接、120段走线,包括十条独立分流器取样线;J1已旋转180°并移至左板边,插口朝外。其余布线和铺铜未完成。规则见 PCB_LAYOUT_RULES.md,最新结果见 PCB_PROGRESS.md。

2026-09-07 原理图审查更新:已修正无源引脚类型、裸铜触点 BOM、重复说明及 17 段悬空延伸线。 后续已核对三片 74HC595 控制链、修正引脚类型,并为四个已确认不用的输出加 NC。 现已改为两侧一进一出:J26进风、J27排风,删除J28~J30及旧分压;四线接口、高边默认关电、开漏PWM及两路MOS测速接收器已实现。 FAN-R2:经本机立创EDA重新选用山洋9G0612P4S001 / C2920592 ×2,替换Noctua方案;J26/J27改为Phoenix1725672 / C3816889四位螺钉端子,适配风扇裸引线。原厂PDF、曲线及机械图已归档,见FAN_SELECTION.md、FAN_CIRCUIT.md及fan-assembly-bom.csv。 用户已决定剩余两项风扇验证首版暂不考虑,现记为延期项。专项检查:固件验证副本505通过/0失败/2延期,原固件502通过/3失败/2延期;三个引脚修复及29个C自检用例已验证,补丁待合入同级固件。严格模式仍保留两项未验证结果,详见FAN_FIVE_CHECKS.md。P6 ERC为0。0% PWM仍约3300RPM,停转必须关电;两只满速额定合计16.08W。

起板时已修复67个迁移封装的Y轴镜像、USB-C长圆孔方向和裸铜触点焊膏层;814个原始焊盘坐标及3种标准IC引脚手性复核通过。当前两板原理图一致性和几何类DRC均为0项,原生连通引擎统计未连接为807/632;此前499仅是DRC报告列表数量,尚未达到生产输出阶段。 最新ERC为下板29/载板196项,其中205项未连接引脚待审。十项电源未驱动只登记为暂时允许继续布线;Hub十个配置复用脚已补100k下拉,十个USB/LED未用端已标NC,原有元件与网络对账通过。完整逐项处理台账见 ERC_DISPOSITION.md。 随后按用户要求将载板C737改为22µF/10V固态钽KEMET T491A226K010AT / C116575,原理图、极性、PCB封装、BOM及PDF已同步,见 C737_TANTALUM.md。 样机目标为总热负荷 40W、装机有效风量 6~8CFM,上下两层同时通风;设计和测试要求见 THERMAL_TWO_FAN.md。 当前结论和复核命令见 HARDWARE_REVIEW.md,检查脚本为 scripts/check_hardware.py。

目录

kicad/
  lib/PhoneRail.kicad_sym      72 个符号(68 元件 + 1 镜像变体 + 4 电源)
  lib/PhoneRail.pretty/        67 个封装
  lib/PhoneRail-Fan.pretty/    3 个风扇电路新增封装
  lib/PhoneRail-Mechanical.pretty/  2 个机械孔封装
  lib/PhoneRail-Qualified.pretty/   厂家资料核对的替换封装,含C737固态钽
  PhoneRail-Board1/            下板:11 页原理图,301 PCB元件(FAN-R2,两风扇另列装配BOM)
  PhoneRail-Board2/            载板:12 页原理图,228 元件(新增10颗Hub配置下拉)
  out/                         导出的 PDF

两个工程各自带 sym-lib-table / fp-lib-table,用相对路径 ${KIPRJMOD}/../lib 指向共享库, 整个 kicad/ 目录可以整体拷走。

迁移验收基线(两风扇改动前)

下表是历史基线。当前下板已按用户决定删除六个元件并改动测速网络,不再与旧 EasyEDA 全量一致;载板不涉及此次电路变更。

检查 Board1 Board2
元件集合 vs EasyEDA 网表 ✔ 290/290 ✔ 218/218
封装名 ✔ 全部一致 ✔ 全部一致
网络(按引脚集合逐网络比对) ✔ 169/169 ✔ 150/150
封装焊盘号覆盖符号引脚号 ✔ ✔

判据是 EasyEDA 自己编译出来的网表(sch_ManufactureData.getNetlistFile), 不是几何反推。网络名不参与比对(EasyEDA 的匿名网 $1N236 和 KiCad 的自动命名本来就不同), 按引脚集合配对。

复核:

/c/Python314/python .claude/k_verify.py      # 网表对账(会调 kicad-cli 重新编译)
/c/Python314/python .claude/k_check_fp.py    # 封装库完整性

已知差异 / 待办

  1. R9A~R9E(Board1 的五个 2Ω 串联母线泄放电阻)位号不以数字结尾,KiCad 判定为「未批注」, 每次 ERC / 导出网表都会警告一次。网表本身导得出来、也对得上。 保留原名是为了和设计文档 §、EasyEDA 工程、PCB 丝印一致 —— 要清掉警告就得改名(如 R91~R95), 那是设计侧的决定,没有替你做。
  2. 205个未连接引脚没有打NC标记(Board1 18个/Board2 187个);两路测速接收器已接通,不再有四个孤立测速标签。 EasyEDA 侧这些引脚的 NoConnected 全是 false,即设计者从未声明「故意不接」, 后续已按控制链用途确认四个 595 输出、按TI手册确认五个EDL未用常闭端并加 NC;其余需要按器件手册逐项判断,不要为了清零 ERC 批量打 NC 或重新生成覆盖本轮整改。
  3. 17 个悬空导线端点已整改(Board1 7 / Board2 10),移除延伸线后全量网表对账一致。
  4. 未定义引脚电气类型已清完,库与内嵌符号同步修正,pin_to_pin为0。 ERC当前为Board1 29/Board2 196条,保留未连接、电源及信号未驱动报告。AMS1117输出电容已按手册改为22µF固态钽,见 C737_TANTALUM.md。
  5. 少量位号与相邻元件的值标签轻微重叠(如 P1B-5V 的 U30 与 C733), 源自 EasyEDA 与 KiCad 字体度量不同,拖一下即可。

重新生成

依赖 EasyEDA Pro 客户端开着 + easyeda-api 桥接在线(步骤 1、2)。 步骤 3 之后纯离线。

python .claude/k_dump.py        # 1. 工程树 + 23 页源码 + 每块板 3 种格式的网表
python .claude/k_extract.py     # 2. 23 页图元几何(元件/引脚/导线/文本)
python .claude/k_dump_epro.py   # 3. 整包 .epro(符号/封装源码在这里,页面源码里没有)
python .claude/k_inv.py         # 4. 清点引用到的符号
python .claude/k_gen_sym.py     # 5. -> lib/PhoneRail.kicad_sym
python .claude/k_gen_fp.py      # 6. -> lib/PhoneRail.pretty/
python .claude/k_gen_sch.py     # 7. -> 两个工程的 23 页原理图(--nc 可打 NC 标记)
python .claude/k_verify.py      # 8. 终检

中间产物在 .claude/eda_src/(约 11 MB,含 .epro 原始包)。

转换里踩实的几何约定

这些是实测结论,改生成器之前先看一眼,否则会重蹈覆辙:

项 结论
原理图 Y 轴 EasyEDA 向上、KiCad .kicad_sch 向下 → 放置时翻 Y
符号 Y 轴 EasyEDA .esym 与 KiCad .kicad_sym 同为向上 → 符号内部图形不翻
页面 DSL 的 Y .esrc 里的 Y = API 报的 Y 的相反数(取标签坐标时要取负)
旋转 Y-up 下的逆时针,KiCad 角度 = EasyEDA 角度(503/508 个元件实测)
镜像 EasyEDA 是「先转 θ 再翻 X」。不要用 KiCad 的 (mirror y),次序不同会错位;
改用镜像过的符号变体 + 角度取 (360−θ)
字段角 KiCad 渲染角 = 存储角 + 元件旋转。90/270 的元件要存 (360−θ) 才水平;
180 上补 180 会让文字镜像,所以只对 90/270 补
单位 原理图 1 单位 = 0.01 inch = 0.254 mm;PCB/封装是 mil = 0.0254 mm
封装局部 Y / 角度 EasyEDA efoo 为 Y 向上,KiCad 为 Y 向下,必须反转 Y 和角度。旧 k_gen_fp.py 的“不翻”注释错误,本轮已修复;重新生成后须运行本目录 scripts/repair_footprint_handedness.py --apply 并复核
内层子符号名 .kicad_sch 的 lib_symbols 里,只有最外层符号名带 PhoneRail: 前缀,
内层 NAME_0_1 / NAME_1_1 加了前缀会直接「加载原理图失败」
电源符号位号 KiCad 的电源符号也必须有唯一位号(#PWR0001…),否则整个工程算未批注、网表拒绝导出
弧 EasyEDA ["ARC",id,sx,sy,mx,my,ex,ey] 的中间两个数就是弧中点,与 KiCad 三点式同构

EasyEDA 侧的一条发现

sch_ManufactureData.getNetlistFile(name, type) 是可用的(标 BETA),能导出整块板编译后的 网表,支持 EasyEDA JSON / Protel2 / PADS 三种格式。 本仓库 .claude/skills/easyeda-sch-geometry/scripts/verify_sch.py 的注释写着 「EasyEDA 不通过 API 暴露编译后的网表,所以只能按几何自己推」—— 这条已经过时。 几何反推仍然有价值(能查悬空引脚),但验收用官方网表更硬。