| 名称 | board-topology-analysis |
| 描述 | >- 板卡拓扑分析:读取嘉立创EDA“板卡拓扑导出器”插件导出的拓扑 JSON(board-topology/1.1 格式), 生成中文分析报告:主控芯片是什么、板载传感器有哪些、对外接口(网口/RS232/RS485/USB/排针等)及 外部接线方式、通信模块(4G/WiFi/LoRa/以太网等)及其特殊功能(如 4G 模块内置 GNSS)、 引脚级连接关系(如 P4 的 GPIO4 作为 SCL2 与 BMP581 的 SCK 相连)、控制时序(如用 RS485 前需拉低 COMM_CTL)、ADC 分压等模拟前端说明;并做引脚使用合规检查——手册禁用却用了的引脚(NC/保留脚被 连接)、必须接却没接的引脚(电源/地/散热盘悬空、配置脚无偏置),规则可从数据手册收割沉淀复用。 触发词:分析板卡、板卡拓扑、拓扑 JSON、引脚连接分析、主控连接、topology.json、继续分析待查芯片手册清单、销账待查清单、处理待查手册清单、 检查芯片接法、引脚合规、禁用引脚、该接没接、悬空检查、 *.topology.json 文件、“这个板子有哪些传感器/接口/模块”、板卡开发入门。 |
板卡拓扑分析(board-topology-analysis)
把嘉立创EDA 插件导出的板卡拓扑 JSON,变成嵌入式工程师能直接上手开发的中文报告。 分析是纯只读工作:绝不修改原理图/PCB;如需回 EDA 查证,只允许只读查询 API。
输入
用户会给出一个 *.topology.json(或让你分析“当前板卡”——先在 topo/ 目录找,找不到就问用户要文件)。
⚠️ 禁止整读拓扑 JSON 文件:文件约 200KB ≈ 5-7 万 token,整读一次烧掉大量上下文且没有意义。所有查询一律走配套脚本。流程原则:脚本先行、AI 只处理脚本标注的残留(待确认残表、管型未知、语义解释),不要手工重做脚本能算的事:
node <技能目录>/scripts/q.js <文件> info # 概览
node <技能目录>/scripts/q.js <文件> main # 主控识别打分(关键词+功能连接密度)
node <技能目录>/scripts/q.js <文件> classify # 全板器件分类(一次跑全, 输出待确认残表)
node <技能目录>/scripts/q.js <文件> comp U14 # 器件详情+引脚表
node <技能目录>/scripts/q.js <文件> net SCL2 # 网络成员
node <技能目录>/scripts/q.js <文件> pin U14 5 # 引脚详情+同网络成员
node <技能目录>/scripts/q.js <文件> links U14 # 器件邻接表(每脚→网络→对端, 代替逐net手查)
node <技能目录>/scripts/q.js <文件> audit U14 # 引脚审计(五类+配置脚自动追上下拉/分压)
node <技能目录>/scripts/q.js <文件> control # 控制网络全板扫描(驱动/偏置/开关管链/直连电源疑点)
node <技能目录>/scripts/q.js <文件> dividers # 分压结构扫描(自动算比值与电压)
node <技能目录>/scripts/q.js <文件> pincheck # 引脚合规检查(禁用却用了/该接没接; exit 2=有错误)
node <技能目录>/scripts/q.js <文件> value R46 # 元件值解析为数值
node <技能目录>/scripts/q.js <文件> find 485 # 关键字搜索器件
node <技能目录>/scripts/q.js <文件> verify 报告.md # 自检(交付前必跑)
单条命令输出几十到一两千 token(pincheck/classify/control 全板输出居上限,仍远低于整读)。整读文件只允许一种情况:verify 报告时读报告本身。
数据结构(board-topology/1.1,通常无需直接看原文):
components[]:ref/name/value/mpn/fp/desc/datasheet/lcsc/inBom/toPcb,pins为[引脚号, 引脚名, 网络]数组,网络为空=悬空。nets:{ 网络名: [[位号, 引脚号], ...] }反查最快。value是元件值(“10kΩ”、“100nF”)——分压比、上下拉默认电平必须用 q.js value 解析后计算,报告里凡分压/上拉必须带阻值。datasheet:立创库数据手册链接(约九成器件有)——查手册优先用它。excluded:工程级差集(在工程中但不在当前网表),混有其他原理图文档的器件,只能当“可能有未完成设计”的提示,不得直接当本板器件写结论。mainCandidates:按引脚数排序的主控候选。main(可选):用户在插件导出面板点选指定的主控位号。
分析流程
1. 识别主控
若 JSON 顶层有 main 字段(用户在插件面板点选指定的主控),直接采用它作为分析中心,不再猜测——用户已经替你做了判断。未指定时跑 q.js <文件> main:脚本按 主控关键词(references/keywords.md 主控表,仅匹配 name/mpn)> 功能性连接密度(跨非电源地网络连接的非无源位号数,阻容/磁珠/晶振/测试点已排除)> 引脚数 打分并输出前三与证据。不要手工重算连接密度(电源地网会把所有器件连成一片,4G 模组会假性胜出)。两个以上大芯片(如主控 + 4G 模块)以“程序存储/运行主系统”者为主控;打分与直觉冲突时列证据问用户。
确定主控后,从它的 pins 提取引脚功能:pinName 就是芯片引脚名(GPIO4、UART0_RXD、SD_IO1、MIPI_CSI_RX_D0…),这是“以主控为中心发散”的索引。
2. 器件分类
跑 q.js <文件> classify:脚本解析 references/keywords.md 关键词表给全板器件分类(关键词命中优先于位号直觉——RJ45 网口坐可能用 D 位号;无源位号只认“对外连接器”关键词),一次输出全部分类 + 待确认残表。AI 只需处理残表(通常 0-5 个),按连接关系判断(如接到 DB9 的收发器=RS232);确属关键词表缺口的(如新封装族),把关键词补进 keywords.md 再重跑,让下一块板更省。
2b. 引脚审计(分类后、下结论前必做)
对每个功能性器件跑 q.js <文件> audit <Ref>,得到 电源/地/配置/信号/悬空 五类引脚清单,配置脚自动追上下拉(↳ 上拉 R3(10kΩ)→ESP_VBAT(轨3.3V)、↳ 分压 R36(10kΩ)→VCC / R38(10kΩ)→GND ⇒ 节点≈…、↳ 无上下拉电阻)。规则:
- 配置类引脚(SDO/CSB/ADDR/A0/SEL/EN/DIR/SHDN/RST/BOOT…)的结论以偏置行为准(含 0Ω 跳线追轨电压);
无上下拉且无驱动的配置脚默认电平不定,进 pincheck/待查。真实教训:漏追 SDO 导致把已确定的 I2C 地址写成“待确认”——现在偏置行是自动生成的,直接引用。 - 电源/地类快速确认即可;信号类进入连接关系解析;悬空类列入报告“悬空与预留”。
- 结论只允许从审计表里出,不允许跳过审计直接按器件名脑补。
2c. 引脚使用合规检查(禁用却用了 / 该接没接)
跑 q.js <文件> pincheck(对全部 U/Q 器件)。两层规则:
- 通用规则(无需手册):NC/保留脚(NC/DNC/RESERVED/RSV)被连接;电源脚悬空(VDD/VCC/VDDA/VDDPST… 前缀匹配)或接地脚接非地网络;散热盘(EP/EPAD)未接地;配置脚悬空;同前缀整组悬空折叠成“接口未用”信息行。输出
[错误]/[警告]/[信息] REF.pin 名 (网络): 原因,exit 2 = 有错误。 - MPN 规则库:
references/pin_rules.json(技能基线)+<拓扑目录>/pin_rules.local.json(本板收割,同名键覆盖)。规则动词:forbid_connect(手册禁用)、must_gnd/must_vcc/must_net(必须接)、warn_float/warn_connect、allow_float(查实可悬空,用来压制通用错误——没有它销不了账)。
处理闭环(错误/警告不能留到交付):
pincheck输出的 MPN 规则未覆盖清单 = 收割候选。在 5b 手册查询阶段对这些型号:ds_fetch下载 →ds_grep --rule-scan抽规则句 → 蒸馏成规则写进pin_rules.local.json(note 必须带手册页码)→ 重跑pincheck销账。- 查实“可悬空”的写
allow_float;查实有问题的进报告第九章 + 第十章待查清单(设计疑点)。 - 板级验证过的规则可手工晋升进技能的 references/pin_rules.json(跨板受益)。
- 结论必须来自手册原句或通用电气常识,查不到依据又解释不了的错误保持原样上报,不许为了清零编规则。
3. 解析连接关系(报告的核心)
对每个功能性器件跑 q.js <文件> links <Ref> 一次拿全邻接表(每脚 → 网络 → 对端成员;电源/地网自动折叠免列),再对关键总线用 net 命令补细节。不要逐引脚手查。输出格式:
P4 的 GPIO4(U1.4,网络 SCL2)与 BMP581 的 SCK(U14.2)相连,I2C2 时钟线。
写作规则:
- 主控侧给“引脚名 + GPIO 复用含义”(如 GPIO4 当 SCL2 用),对端给“位号.引脚 + 引脚名”。
- 总线类(I2C/SPI/UART/SDIO/RMII)注明总线编号和速率相关线索(如有串联电阻、上拉)。
- 每条断言都能在 JSON 里指出依据(net 名 + 两端 ref.pin)。不得编造连接。
4. 控制时序与使用前提(用户最看重的部分之一)
跑 q.js <文件> control:全板扫描控制网络(网名模式 *EN/*CTL/*RST/*BOOT/*MODE…、成员引脚名、三极管栅极三准则),每网输出 驱动方(GPIO)、偏置(含分压计算)、开关管(管型+高/低边+漏极/集电极去向一跳)、受控对端;电源/地网上的使能脚单独标出 ★使能/配置脚直连电源地(核对极性!)。AI 的工作是把每条链写成语义范式,不要重算结构:
- 三极管/MOS 操作方式直接写成“拉高/拉低 GPIO → 器件动作”,不要让读者自己推:
- N-MOS(AO3400/2N7002/SI2302,源极接地):拉高 GPIO → 导通。用于低边开关(继电器、背光、地侧通断)或把开漏节点拉低。
- P-MOS(AO3401/SI2301,源极接电源):拉低 GPIO → 导通(栅极常有一只上拉电阻维持默认关断)。用于高边电源开关。
- NPN/PNP 三极管:同 N-MOS/P-MOS 方向;“数字三极管”(DTC143Z、MMUN2211 等,内置基极电阻)可由 GPIO 直驱,集电极/漏极输出是开漏——受控芯片引脚若无外部上拉,恢复电平依赖芯片内部上拉(写进待确认)。
control标“管型未知”的进待查清单。 - 写法示例(这是标准句式):
复位 4G 模组:拉高 GPIO27 → Q6(DTC143Z NPN)导通 → RESET 拉低 → ML307C 复位;释放 GPIO27 后靠模组内部上拉恢复。 继电器输出:拉高 GPIO18 → Q5(AO3400 N-MOS)导通 → K1 线圈得电(D3 续流)→ L_IN↔L_OUT 接通。
- 偏置行为(control 已算好)写进结论:分压 = 默认电平为分压点(如 10k 上拉 + 10k 下拉 → 1.65V 临界电平,必须写“上电后立即由固件驱动到确定电平”)。
- ★直连条目必须逐条核对极性——真实案例:RS485 收发器 RE# 接 VCC,按主流手册(低有效)会禁用接收输出,属于疑似设计问题,进待查清单。
- 复用链(一条 UART 经模拟开关分到两路收发器)要写清:切到哪路、由哪个 GPIO 控制、拉高/拉低对应哪路;切换器件(BL1551B 等 SPDT)的选择极性查不到手册就两种可能都写明后果并进待查清单。
5. ADC、分压与模拟前端(必须给出可计算的比值)
跑 q.js <文件> dividers:全板扫分压结构并自动算好比值与电压(电源反馈网标“正常”、A/B 总线标“偏置/终端”、小阻值采样标“电流采样”)。AI 只做两件事:把与本板功能相关的行代入报告(换算公式 + 用途解释),以及对 ADC 网络核对主控侧引脚名含 ADC:
- 分压:输出“信号 → R1(值) → 节点 → R2(值) → GND,采集电压 = 被测电压 × R2/(R1+R2)”。电平转换场景写明:如 5V 域 TX 经 10k 串 + 20k 下拉 → 5V×20/30 = 3.33V,可直接进 3.3V GPIO。
- 采样电阻:电流通路写明采样电阻值(如互感器 → 2Ω → 计量芯片 IP),换算公式留到手册章节给参数位置。
- 上拉/下拉:写阻值和默认电平;一上一下写分压结果并提示上电时序风险。
- 位号前缀 R 但 value 带容值单位(如 100nF)→ 实为电容(图纸位号习惯问题),按电容解读(dividers 已自动排除)。
配置/地址引脚结论直接引用 audit 偏置行(真实教训:漏追 SDO 导致地址“待确认”,其实图上有):
- SDO/A0 拉低 → I2C 地址取低地址(如 BMP581 SDO=GND → 0x46)
- CSB 拉高 → 选 I2C 模式;拉低 → SPI 模式
- 结论句式:“接口模式与地址已从图纸确定:I2C @ 0x46(CSB→R27 4.7k 上拉 VCC 选 I2C,SDO→R26 4.7k 下拉选 0x46)”
5b. 芯片手册在线查询(不确定的型号先查再写)
对型号功能/协议拿不准的芯片,按顺序尝试,不要凭印象断言:
- EDA 内建立创库(若网桥/扩展可用):
eda.lib_Device.search('HLW8032')返回立创商城器件数据(含数据手册链接字段),可顺藤下载 PDF。 - WebSearch 搜
型号 datasheet pdf,下载后用 Read 工具读 PDF 对应章节。 - 下载:
python scripts/ds_fetch.py <位号> --json <拓扑JSON>(自动取 datasheet 链接下载到 datasheets/<MPN>.pdf;加--kw也可粗定位)。 - 检索结论用脚本,不要整页读 PDF:
python scripts/ds_grep.py datasheets/<MPN>.pdf --kw 关键词1 关键词2——行级提取命中行±上下文并报告文字层覆盖率(--page N深读某页;--ctx 0更省;路径给目录则一次查多份)。输出“扫描版无文字层”或行级信息不够时,才用 Read 按页视觉阅读该 PDF。 - 引脚规则句收割(配合 2c 的 pincheck):
python scripts/ds_grep.py datasheets/<MPN>.pdf --rule-scan——只抽“指令动词+引脚样 token”双命中的行(如 “VENB must be held HIGH or LOW, and mustn’t be floated”、“必须接地”),比--kw噪声小得多。AI 读命中行 → 蒸馏成规则(forbid_connect/must_gnd/must_vcc/allow_float…,note 带页码)→ 写进<拓扑目录>/pin_rules.local.json→ 重跑pincheck销账。 - 查到的结论直接更新报告;查不到的保持“待查手册”并列明具体待查项。
- 用户要求时可把手册整理成“可直接写代码的协议速查”:通信接口与参数(波特率/帧格式/地址)→ 帧结构表 → 寄存器/命令表 → 换算公式(代入板上阻值)→ 初始化/读数伪代码。
5c. 待查清单销账(触发语:“继续分析待查芯片手册清单”“销账”)
报告第十章是结构化结账清单,每行自带销账原料(数据手册链接 + 板上已算参数)。触发后逐条处理,单条流程固定:
python scripts/ds_fetch.py <位号> --json <拓扑JSON>下载手册,python scripts/ds_grep.py datasheets/<MPN>.pdf --kw <章节关键词>行级检索结论(省 token;报“扫描版无文字层”才视觉读页);- 读出结论,按类型二选一落盘:
- 协议/参数/寄存器类 → 生成
速查/<芯片名>_速查.md(通信参数→帧/寄存器表→换算公式代入板上阻值→伪代码),结论摘要写回报告对应章节; - 极性/使能/兼容性/引脚规则类 → 结论直接写回报告对应章节;引脚规则同时蒸馏进
pin_rules.local.json并重跑pincheck(第九章的 错误/警告 应同步销账或标“设计疑点”);
- 协议/参数/寄存器类 → 生成
- 该行状态更新(附来源:手册版本+页码):
- 结论正常 → 已结案,从清单删除(结论已沉淀在正文/速查);
- 结论与图纸矛盾 → 设计疑点(保留在清单,标红注明冲突点,建议实测/改版);
- 手册无法回答(依赖实物)→ 待实测(保留在清单,把“待查”改写为附操作步骤的实测项,如标准负载标定法)。
状态机:待查 → 已结案 | 设计疑点 | 待实测。报告正文与速查文档是结论的家,清单只是未决项的账本——销账一轮后清单应只剩疑点和实测项。
6. 对外接口的使用方式(用户明确要求)
对每个对外连接器(排针 H/J/CN、端子、DB9、RJ45、USB、IPEX/SMA 天线座、TF 卡座、SIM 座):
- 引脚表:
引脚号 → 网络 → 信号功能 → 对端。 - 使用说明,规则固定:
- 串口交叉:本板 TX 接外部设备 RX,本板 RX 接外部设备 TX;注明电平(TTL 3V3 还是经 RS232/485 收发器转换后的标准电平)。
- 标准连接器给标准定义:DB9 针式 2=RXD 3=TXD 5=GND(对 DCE 视具体情况标注并提示核对);RJ45 用网口变压器的说明线序走 MDI;USB 给 VBUS/D-/D+/GND。
- 供电能力:接口上的 VCC 来自哪路电源(顺着 net 查到 LDO/DCDC 输出),能查到就写“H1.2 供电 5V(来自 DCDC U?.4,理论最大 X——查不到电流规格就删掉这句)”。
- 示例句式:H1.1 = TX(3V3 TTL)→ 外接模块的 RX;H1.2 = RX ← 外接模块的 TX;H1.3 = GND 必须共地。
7. 通信模块与特殊功能
每个模块写:型号/位号、与主控的通信口(哪组 UART/SPI/USB,引脚级)、电源域、开关机/复位控制(PWRKEY/RESET 由哪个 GPIO 控制、时序要求写“待查模块手册”)、天线(IPEX 座位号)、特殊功能:
- 4G 模组:ML307C/Air780*/A7670/EC800 等多带 GNSS/蓝牙/音频——型号后缀和手册决定,确定的写确定,不确定的写“该型号部分批次带 GNSS,待确认”。板上有独立 GNSS 天线座且连到模块 GNSS_ANT 引脚的,可以确定支持。
- WiFi/BT 模组:注明天线和是否与主控共存。
- 以太网:写 PHY/MAC 芯片型号、接口类型(RMII/SPI),若用 SPI 以太网芯片(W5500/CH390/DM9051)注明占用哪组 SPI 和中断脚。
报告模板(输出为 Markdown 文件,命名 板卡分析_<工程名>.md)
# <工程名> 板卡拓扑分析报告
> 数据源:<文件名> | 导出时间:<exportedAt> | 器件 N / 网络 M
## 一、板卡概览
一段话:这块板子是什么(主控+主要外设构成),几层功能(主控—通信/接口—对外)。
## 二、主控芯片
| 项目 | 内容 |
| 型号 | ESP32-P4(U1,QFN104)|
| 关键资源 | 从引脚名统计:UART×n、SPI×n、I2C×n、ADC 通道、SDIO、RMII、USB… |
## 三、板载传感器
### BMP581 气压传感器(U14)
- 连接:SCL2 ← U1.GPIO4;SDA2 ← U1.GPIO5(引脚级列表)
- 接口与地址已从图纸确定:I2C @ 0x46(CSB→R27 4.7k 上拉选 I2C,SDO→R26 4.7k 下拉选低地址;引用 audit 偏置行)
## 四、对外接口(含使用方式)
### RS232(DB9 CN3,经 SP3232 U??)
| 引脚 | 网络 | 功能 | 外部接线 |
| 2 | RS232_RX | 数据接收 ← 收发器 TXD | 接对方 TXD(交叉)|
…每图一个“怎么用”结论。
## 五、通信模块
### 4G Cat.1 ML307C-GC(U32)
- 主通信:UART? → U1.GPIOxx/GPIOyy
- 开关机:4G_PWRKEY ← GPIO??(时序要求待查手册)
- 特殊功能:内置 GNSS(GNSS 天线座 GNSS 连 U32.GNSS_ANT)
- SIM:CARD1(USIM 座)
## 六、控制时序与使用前提
(逐条:要做什么 → 拉高/拉低哪个网络(哪个 GPIO)→ 依据)
## 七、主控引脚连接总表
| 主控引脚 | 复用功能 | 网络 | 对端 | 说明 |
(全部功能性连接,按引脚号排序)
## 八、悬空引脚与未用资源
主控悬空的 GPIO 列表(可分配给新功能,pincheck 的“整组悬空”信息行直接引用);刚放置未连线的器件提醒。
## 九、引脚使用合规性检查(pincheck 结果 + 销账状态)
| 级别 | 器件.引脚 | 现象 | 依据/处理 | 状态 |
|---|---|---|---|---|
| 错误 | U1.41 VDD_MIPI_DPHY | 电源脚悬空 | 手册 x.x 节: MIPI 未用可悬空 → allow_float | 已销账 |
| 警告 | U1.54 NC | NC 脚接 ESP_VDD_HP | 手册 p.x: 该 NC 内部接 HP 域, 接法正确 | 已销账 |
(来自 `q.js pincheck`;初始照抄脚本输出,销账后逐行更新状态:已销账 / 设计疑点(进第十章) / 待实测;“依据”必须给手册页码或明确写“通用电气常识”。)
## 十、待查芯片手册清单(结构化账本,触发“继续分析待查芯片手册清单”即可销账)
| 芯片 | 位号 | 待确认问题 | 数据手册链接 | 板上相关参数 | 状态 |
|---|---|---|---|---|---|
| BL1551B | U22/U23 | ENB 有效电平与导通侧映射(决定 232/485 切换方向) | (自动取 JSON datasheet 字段) | COMM_CTRL(GPIO39)→ENB | 待查 |
(硬性要求:链接从拓扑 JSON 的 datasheet 字段取;“板上相关参数”必须带已算好的阻值/网络;状态 ∈ {待查, 已结案, 设计疑点, 待实测},已结案行在结论写入正文/速查后从清单删除并标注手册来源。)
8. 交付前自检(必跑,防低级错误)
报告写完后必须执行:
node <技能目录>/scripts/q.js <文件> verify <报告.md>
node <技能目录>/scripts/q.js <文件> pincheck
verify 抽取报告中所有 U1.4 形式的引脚断言,逐条对网表核验(位号存在、引脚存在、显示实际网络)。exit 2 = 有存疑条目,必须逐条修正报告后重跑,直到 0 条存疑才能交付。 真实教训:靠肉眼复查漏掉了 SPI 引脚映射写反,机械核验能系统性拦住这类错误。
pincheck 复跑一遍确认引脚合规状态:0 错误,或每个残留错误在第十章有对应“设计疑点/待实测”行(不允许无解释的错误)。收割到的规则已在 pin_rules.local.json 落盘。
交付前检查清单
q.js verify0 存疑。q.js pincheck0 错误(或逐条已解释:已销账/设计疑点/待实测)。- 新鲜度:
stats.unconnectedPins异常偏多、或excluded里出现大量普通器件时,在报告开头提示“原理图可能处于编辑中,本报告基于 <exportedAt> 快照”。 - 禁读检查:确认本次分析没有整读拓扑 JSON(只用了 q.js),也没有手工重做 main/classify/control/dividers/pincheck 能算的事。
- 所有“拉高/拉低”控制语句满足三极管/MOS 链路范式(管型+方向+恢复方式)。
- 计量/ADC 类芯片有“板上常数 + 标定方法”小节。
硬性规则
- 每条连接、每个结论都要能回溯到 JSON 数据(net + ref.pin)。数据里没有的不要写。
- 阻容、磁珠、晶振、测试点只在影响理解时提及(如上拉/分压),不单独列条目。
- 不确定的内容一律标“待确认”并进第十章,绝不编造型号功能、I2C 地址、时序参数。pin_rules 里的规则必须有手册依据(note 带页码),不许为了清零错误编造规则。
- 遇到
inBom:false的器件被网表排除导致“悬空网络”时,在待确认里说明。 - 报告是给嵌入式工程师上手开发用的:语言直接、结论先行、引脚级精确。
- 只读红线:本技能绝不修改用户的原理图/PCB;调用 EDA API 仅限只读查询。
实战校准(易错点,来自真实板卡分析)
- 位号不等于类型:连接器可能用任意位号——真实案例:RJ45 网口座位号是 D1/D2(HR915340A),按“D=二极管”过滤会漏掉。判断器件类型永远以
fp/name/mpn/连接为准,位号惯例只作提示。 - 三极管细分:Q + AO3401(P-MOS)做高边电源开关(栅极被拉低导通);AO3400/2N7002(N-MOS)做低边开关或电平转换;DTC143Z/SI2302 类“数字三极管”内置基极电阻,直接由 GPIO 驱动。追“使能网络 → MOSFET → 受电器件电源”链条时,逐管标注导通极性。
- 两个电阻 = 分压:信号 → R1 → GPIO 节点 → R2 → GND 是降压采样(如 5V 模块 TX → 3.3V GPIO);R1 上拉 VCC + R2 下拉 GND 挂在控制网络上,说明主控不驱动时默认电平由分压比决定——默认状态必须进“待确认”。
- 单节点网络 = 预留引脚(如只挂在网络上的一个 GPIO + 一个上拉电阻),归入“悬空与预留”。
- 活动指示灯:LED 一端 VCC、经串联电阻挂在 UART/控制网络上 = 低电平点亮的动作指示,说明里提一句即可。
- 模块型大芯片(引脚数超过主控的 4G/WiFi 模组)不是主控:判据是“谁跑主程序/谁连 Flash”(
q.js main的功能连接密度已把这一点量化,电源地网必须排除,否则 4G 模组假性胜出)。 - pincheck 通用规则校准事实(M-Box 实测):立创导出的 QFN 散热盘常直接命名为
GND引脚而非EP,EP 规则是给其他命名习惯备用的;电源脚必须前缀匹配(ESP32-P4 有 VDDPST_1/VDD_HP_0/VDD_MIPI_DPHY);RES不当保留脚(LoRa 模块 RES=复位);模块未用接口整组悬空(RSV×41/USIM1_*×5)折叠成一条信息行,逐脚报只会刷屏。 - 位号前缀 U 不等于芯片:ESD/TVS/共模电感/互感器也用 U 位号(引脚名纯数字是特征),pincheck 的收割候选已按此排除;
UART3_TXD1这类字头位号是 LED/网络标记,classify只把U\d/Q\d式位号归入待确认。