文件
phonerail/.claude/r2/a5b_slots.py
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

82 行
4.5 KiB
Python
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# -*- coding: utf-8 -*-
u"""R2 底板 **A5B-SLOTS** 页:PCI-E x4 插槽阵(槽 4~5)。
⛔ **2026-09-09 用户拍板:底板上的 5 个 D± 退路座 `J39~J43` 全部去掉。**
它们是 D12「金手指那条 D± 万一不稳,割断改飞 5 根短线」的底板侧接口。
⇒ 现在底板侧**没有退路**:`USBn_DP/DM` 从 `U32` 直接到插槽针,一条路走到黑。
⚠ 连带影响两条:
① 刀片上的 `J2`(B4-EDGE 那个同款 4P 座)失去了对端,除非另配线束,否则也用不上;
② 「最远一路 D± ~70 mm」当初拍板接受时,理由之一就是「退路座本来就是为这一条留的」
(方案 §28.10)—— 这条理由现在没了,D± 只能一次做对。
/c/Python314/python .claude/r2/a5b_slots.py # 只算 + 本地自检
/c/Python314/python .claude/r2/a5b_slots.py --push # 清页 + 重画(只有主代理能跑)
⚠️ **这一页在契约 §6 的四页表里没有,是 A5 算完版面之后新开的。**
一页排不下 5 个槽(每槽净宽 355、槽距 365,一行 3 槽已经吃掉 1085/1125),
两行又会压进标题栏 —— 完整的账在 `a5_slots.py` 的表头 §版面。
所有画法(针位、母线、端口方向、逐脚对账)都在 `a5_slots.py` 里,本文件只给坐标和文字。
**页 uuid 还没有**:`PAGE = None`,等主代理在 BASE 原理图(`372e2399adb7a6db`)里
建出这一页、把 uuid 写进 `.claude/r2/r2-uuids.json` 的 `boards.BASE.pages` 之后填进来。
## 退路座去掉之后本页变简单了
原来 `USB4_DP/DM` / `USB5_DP/DM` 在本页同时出现在「槽」和「退路座」两处,
天然是两块铜、要靠 `ALLOW_SPLIT` + `check_pin_nets` 逐脚对账放行;
`USB1~3_DP/DM` 更是只有退路座一处。**现在这几条全部消失** ——
本页只剩槽 4/5,每个网在页内要么只有一处、要么本来就连通。
"""
import os
import sys
HERE = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, HERE)
import a5_slots as A5 # noqa: E402
PAGE = 'e493f8bce3a51aae'
NAME = 'A5B-SLOTS'
# 槽 4/5 仍放 cy=580(退路座删了之后 y<385 整条带子空着,不动版面免得又踩叠字)
SLOT_XY = {4: (200, 580), 5: (565, 580)}
# 退路座一字排开,间距 210:标签往左伸 ≈162,右边是座子本体 +25 ⇒ 相邻之间还剩 23
WV_XY = {} # 退路座已删(2026-09-09 用户拍板)
TEXTS = [
(45, 800, u'【A5B-SLOTS】5 个 PCI-E x4 插槽之 槽 4~5(槽 1~3 在 A5-SLOTS)', 13),
(790, 770, u'针位与画法完全同 A5-SLOTS:', 11),
(790, 752, u' A 排地母线 cx−160、B 排 cx+160,', 10),
(790, 734, u' B 排在 B8 那一行断开让 +3V3 东出。', 10),
(790, 710, u'⚠ 底板 A1 = GND、B31 = PRSNTn#:', 11),
(790, 692, u' 刀片上 A1↔B31 才是短接线,', 10),
(790, 674, u' 插上刀片才把 B31 拉到地。', 10),
(790, 656, u' 两针都叫 PRSNTn# = 检测永远失效。', 10),
(790, 632, u'⚠ B10(+3.3Vaux)必须悬空,', 11),
(790, 614, u' 连同 A5~A8 / B9 每槽 6 针悬空。', 10),
(790, 590, u'✅ T8 已结(换料):J34~J38 =', 11),
(790, 572, u' SOFNG PCIE-64P11L(C19188869),', 10),
(790, 554, u' PC 标准 x4 64PIN。', 10),
(790, 536, u' ⛔ 贴片立式,保持力只靠焊盘 ——', 10),
(790, 518, u' 刀片必须另加固定件。', 10),
(790, 494, u'⛔ 2026-09-09 用户拍板:5 个 D±', 11),
(790, 476, u' 退路座 J39~J43 全部删除。', 10),
(790, 458, u' 底板侧不再有 D± 退路 ——', 10),
(790, 434, u' USBn_DP/DM 从 U32 直达槽针,', 10),
(790, 416, u' 一条路走到黑;刀片上的 J2 也', 10),
(790, 398, u' 随之失去对端。', 10),
# ⚠ 这三行历史上踩过一次叠字:原来是 (45, 196) 的一整行长文字,正好从退路座的
# GND 旗标签中间穿过去,`verify_sch` 六项全过、只有放大截图看得出来
# (同 A2-AUX 的两处叠字,方案 §19.2)。退路座虽然删了,这三行仍留在右侧空白区。
(790, 374, u'⚠ 本页不在契约 §6 的四页表里:一页', 10),
(790, 356, u' 排不下 5 个槽(355×5=1815 ≫ 1125),', 10),
(790, 338, u' 账见 a5_slots.py 表头。', 10),
]
def main():
A5.main(slots=SLOT_XY, wvs=WV_XY, texts=TEXTS, page=PAGE, name=NAME)
if __name__ == '__main__':
main()