原理图/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
87 行
4.6 KiB
Python
87 行
4.6 KiB
Python
# -*- 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 = {}
|