interconnect —— 模块接线图(流水线 ⑥)
lane: 任何模型产 YAML(正确性交 pinmux_check.py) · 门: pinmux PASS + 逐网人工核对
这是 scope-A 的心脏:人照它连线。正确性靠确定性门 + 人工逐网核对,不靠模型"觉得对"。
前置
design/bom.csv(选了哪些模块)+ design/power.yaml(供电轨)+ lib/modules/(接法块)+ contracts/mcu/<MCU>.yaml(引脚能力)。
步骤
- 列对 MCU 网络:对 BOM 每个模块,读其
lib/modules/<block>.yaml,取to_mcu: true的脚(PWM/GPIO/UART/I2C/ADC/QEI…)。没有现成块就按 KB03/04/05引脚说明补一个最小块到lib/modules/。 - 分配主控引脚:从
contracts/mcu/<MCU>.yaml给每条网络挑一个支持该功能、且未被占的引脚;同类外设实例(UART/I2C/QEI…)注意不超数量上限。I2C/SPI 总线多模块共享同一对引脚(只占一次)。 - 写
contracts/pinmap.yaml(结构见contracts/pinmap.schema.yaml,照contracts/pinmap.example.yaml)。 - 跑确定性门:
python tools/pinmux_check.py contracts/pinmap.yaml。FAIL(撞脚/非法功能/超限)就改分配,重跑直到 PASS。 - 渲染:
python tools/render_wiring.py contracts/pinmap.yaml design/wiring→design/wiring.svg(接线图)+design/harness.md(接线表)。 - 人工门(高危·必做):让用户逐网核对 harness.md,重点:电源/GND、K230 串口 TX↔RX 交叉、I2C 上拉、舵机独立供电、SWD 没被占。核对打勾后才交硬件 lane。
- 更新
STATUS.md:硬件 lane 段贴design/wiring.svg、阶段→可连线;契约版本记pinmap vX。
注意
- pinmap 是神圣契约(CLAUDE.md):改完必过 pinmux_check 才提交,并通知控制 lane 重 pull(固件 SysConfig 据此生成)。
- MCU 能力表
verified:false时,pinmux PASS 只保证逻辑自洽;真实引脚复用要 lead 用 SysConfig 核(读手册=多模态)。 - 接线图一出,硬件 lane 即可开工——这是解放人手的解锁件,优先最先交付。