文件
phonerail/.claude/p4_nets.py
T
zhou yang和Claude Opus 5 2bfe308b30 初始导入:PhoneRail 五路手机直供电源板
原理图/PCB 已在 EasyEDA 里做到 12 页跨页 0 漏接,固件刚完成骨架包 A1。
这次是把已有的一切一次性纳入版本控制,没有改动任何设计内容。

纳入:
- 设计与需求文档、PROGRESS.md、小米8 参考原理图 PDF 与追脚脚本
- .claude/ 下的 EasyEDA 桥接工具链与几何/网表缓存(eda-parts.json、
  pcb-parts.json、pcb-pads.json、p2-ch1.json 等,是重画各页的唯一事实来源)
- 117 张验证截图(本项目所有方向问题都是靠人眼看截图发现的,属于证据不是垃圾)
- firmware/ 的 A1 骨架与 site/ 文档站源码

.gitignore 排除:构建产物(firmware/build、host/build、sdkconfig)、
site/node_modules、__pycache__、桥接日志 _bridge.log、脚本自标的 *.stale。

.gitattributes 默认 `* -text`:现有 .py/.json 大多是 CRLF,原样存,
不让 git 重写行尾。唯一例外是 *.sh 强制 LF —— 带 \r 的 shell 脚本 bash 跑不了。

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01QYuExfgyYa6DzRRcUso8M8
2026-09-06 18:18:14 +08:00

87 行
4.6 KiB
Python
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# -*- coding: utf-8 -*-
"""P4-USB 网表:5 路 USB 通断(TPS22918 负载开关,只切 VBUS,D± 板上直通)。
一路一列,信号自上而下:J12~J16 USB-A 上游 -> U24~U28 -> J17~J21 4P 出线座。
用法见 build.py。"""
import sys, os
HERE = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, HERE)
sys.path.insert(0, os.path.join(HERE, 'skills', 'easyeda-sch-geometry', 'scripts'))
import local_netcheck as N
w, gnd, pwr, port, txt = N.w, N.gnd, N.pwr, N.port, N.txt
def gndu(x, y):
"""地旗 rot=180:引脚在下、符号在上,供导线从下方接入。"""
N.FLAGS.append(('Ground', 'GND', x, y, 180))
XS = [130, 345, 560, 775, 990]
for n, X in enumerate(XS, 1):
up = '+5V' # 2026-09-03 起:板上 U30 的 5V 轨(原来是 USB-A 来的上游 5V)
vb = 'VBUS%d' % n # 开关之后送手机的 5V
dm = 'USB%d_DM' % n
dp = 'USB%d_DP' % n
en = 'VBUS_EN%d' % n
ct = 'CT%d' % n
# ── D± 从 P4B-HUB 的 U32 下行口进来(原来是从 USB-A 座直取)──
# 两个端口错开 40 的 y,标签才不撞在一起
w(dm, (X + 5, 740), (X + 5, 305)); port(dm, X + 5, 740, 0, 'IN')
w(dp, (X - 5, 700), (X - 5, 305)); port(dp, X - 5, 700, 0, 'IN')
# ── GND 母线直下到 4P 出线座 ─────────────────────────────────
w('GND', (X - 15, 620), (X - 15, 305))
w('GND', (X - 15, 600), (X - 45, 600))
w('GND', (X - 45, 600), (X - 45, 580)); gnd(X - 45, 580)
# ── 板上 5V 轨 -> 开关 VIN,带 2.2uF 输入电容 C70n ────────────
w(up, (X + 15, 660), (X + 15, 610)); port(up, X + 15, 660, 0, 'IN')
w(up, (X + 15, 610), (X + 75, 610))
w(up, (X + 75, 610), (X + 75, 600)) # U.VIN
w(up, (X + 35, 610), (X + 35, 595)) # C70n.2
w('GND', (X + 35, 555), (X + 35, 540)); gnd(X + 35, 540)
# ── 开关 GND ─────────────────────────────────────────────────
w('GND', (X + 85, 600), (X + 85, 620))
w('GND', (X + 85, 620), (X + 65, 620))
w('GND', (X + 65, 620), (X + 65, 640)); gndu(X + 65, 640)
# ── 开关 ON:VBUS_ENn 端口 + 100k 下拉 R70n ───────────────────
w(en, (X + 95, 600), (X + 95, 685))
w(en, (X + 95, 685), (X + 25, 685))
w(en, (X + 25, 685), (X + 25, 675)); port(en, X + 25, 675, 0, 'IN')
w(en, (X + 95, 660), (X + 125, 660)) # -> R70n.1
w('GND', (X + 125, 620), (X + 125, 605)); gnd(X + 125, 605)
# ── 开关输出 VBUSn:QOD 短接 VOUT,100nF 输出电容 C71n ────────
w(vb, (X + 75, 480), (X + 75, 330))
w(vb, (X + 75, 330), (X + 15, 330))
w(vb, (X + 15, 330), (X + 15, 305)) # -> J(16+n).1
w(vb, (X + 85, 480), (X + 85, 455)) # QOD
w(vb, (X + 85, 455), (X + 75, 455))
w(vb, (X + 75, 420), (X + 55, 420)) # C71n.1
w('GND', (X + 55, 380), (X + 55, 365)); gnd(X + 55, 365)
# ── CT 摆率电容 C72n(100pF C0G)─────────────────────────────
w(ct, (X + 95, 480), (X + 95, 450))
w('GND', (X + 95, 420), (X + 95, 405)); gnd(X + 95, 405)
# ── 4P 出线座的两个固定脚接地 ────────────────────────────────
w('GND', (X - 35, 305), (X - 35, 320))
w('GND', (X - 35, 320), (X - 15, 320))
# 固定脚 5 的地旗要绕过连接器右侧的型号文字(X+56~X+121)才放得下
w('GND', (X + 35, 305), (X + 130, 305)); gnd(X + 130, 305)
txt('CH%d' % n, X + 45, 705, 13)
# ── 文字 ────────────────────────────────────────────────────────
txt('【P4-USB】五路 USB 通断:只切 VBUS,D± 板上直通(上游 = P4B-HUB 的 U32)', 45, 796, 14)
txt('TPS22918: 1~5.5V / 2A / Ron 52mΩ,ON 脚不得悬空', 45, 185, 11)
txt('R701~705 100k 下拉 → ESP32 复位期间 VBUS 全断', 45, 168, 11)
txt('CT 100pF C0G: tR≈425µs,涌流≈94mA(10µF 负载)', 45, 151, 11)
txt('QOD 短接 VOUT: 内部 RPD≈24Ω,关断约 200µs 归零', 45, 134, 11)
txt('CIN 2.2µF > COUT 100nF;VBUS 来自板上 5V 轨 U30,不吃上游线电流(§9.4)', 45, 117, 11)
txt('2026-09-03 改板载 Hub:J12~J16 五个 USB-A 已删,D± 改由 U32 下行口供给(§15.1)', 45, 100, 11)
NC = {}