Files
STM32F4-Base/docs/硬件平台/V0.1_网表详细分析报告.md
wandering1 e4d70f9fcb docs(真值): 勘查 13 条文档/代码不一致全部处置(10 改 3 核实)+ 补 3 处
证据源 = 主树 ci-artifacts/archify/architecture-dtu-overview-20261030-095132/
evidence.md §11。该目录不入库,故把每条的判据与实测源抄进正文,别让证据只活在
一台机器上。处置口径:能改的改成与代码同源,核实后确认文档没问题的明确写「不改」。

判停点与就绪屏障(条 1、条 3)
- AGENTS 原写 `protect_task.c:98` 直接停走判据:`:98` 是 `s_prev_cal_lock` 变量,
  判停点是 `App/task/protect_task.c:268 if (adc_cal_prot_blocked() != 0u)`,
  判定本体在标定层 `adc_cal_prot_blocked()`、protectTask 只是消费者 → 改引用,
  同步 `ui_task.c:240` 页面注释与 `docs/任务规划/数据可信.md` 的同一处行号。
- `SYS_EVT_FTP_READY` 有生产者(`Src/freertos.c:490`,注释自陈预留)无消费者;
  `SYS_EVT_TIMESYNC_READY` 全仓无生产者也无消费者(只有定义与测试桩)。
  AGENTS、`sys_events.h` 位注释、屏障配图(生成器 + 产物)三处从「四个就绪位
  并列」改成「bit0/bit1 在用 + bit2/bit3 预留」,并指向
  `docs/架构设计/项目启动顺序管理.md` §3.2 的逐位对照表。ftpTask 实际等的是
  `NET|STORAGE`(`Src/freertos.c:477-479`,WaitAll|NoClear,100 ms 分片喂狗)。

/log 不是「三本」(条 5)
- `App/log/sys_log_mcu.c` 的 `s_paths[]` = run / selftest / accid / alarm /
  start / oper / yk 七本 64B 定长文本 + `soe.log`(64B 定长二进制)+ `wdev.log`
  (变长取证行,`App/fs/vol_lock` 侧投,不走定长格式)。
  → AGENTS 两处、总览 §2.1 与 §4 的「三本」改成「七本 + SOE(+ wdev 取证行)」。

主机单测 44 套 → 47 套(条 2,两把机器尺互证)
- `scripts/check_test_coverage.py --list` 打印 47 行;`ls -d test/host/*/` = 48 个
  一级目录,唯一没有 `run_unit_test.py` 的是 `common/` ⇒ 47 套。
- 差额三名 = 屏板链路套件:`sb_proto`、`sb_link`(2026-10-29 入库)、
  `sb_led_map`(2026-10-30 入库)。专属钩子仍是 22 根 ⇒ 无专属钩子的从 22 套变 25 套。
- 同步面:AGENTS、`docs/门禁说明/README.md`、`host-unit-tests.md` §6 台账(名单补
  三名)、`docs/代码规范/pre-commit使用说明.md`、`主机单测覆盖率口径.md`(含耗时句)、
  `scripts/README.md`、总览目录树、`.pre-commit-config.yaml` 三处注释、
  `test/host/sys_log_mcu/sys_log_mcu_test.c` 一处注释。
- 带日期戳的历史测量值按纪律冻结不动:28 套、41 套 ~105 s、40 套/18 套那三处。

本仓 LVGL 版本(条 6)
- vendored 版本 = `Lib/lvgl/lv_version.h:9-11` 的 9.3.0;总览两处「LVGL v9.2」与
  `gen_arch_svg.py` 图内文字改 v9.3 并重跑产物(脚本与产物同一笔,`generated-fresh`
  逐字节核)。
- **刻意不动**:`docs/内存管理/RAM使用分析与优化方案.md` 两处「LVGL v9.2 文档」+
  GitHub `release/v9.2` 分支 URL ——那是对外游某分支文档的引用,不是本仓版本声明。

触发口径与栈值(条 4、7、9、10)
- ADC 映射 §1「ADC1 为软件触发」是旧口径:`Src/adc.c:53` 实为
  `ADC_EXTERNALTRIGCONV_T3_TRGO` → 改成 TIM3 TRGO,并补一句「TIM3 与 TPAFE 的
  CONVST 之间没有硬件耦合,仍不构成共同采样触发」,缺陷结论本身不变。
- 同文档 adcTask 栈 512 → 640 words(`Src/freertos.c:159 .stack_size = 640 * 4`)。
- `docs/UI设计/UI_设计架构.md` 的 uiTask 栈「16384 words」是单位错:
  实为 4096 words = 16384 B(`Src/freertos.c:218`),顺手补上行号。
- `App/app/app_main.c:197` 注释「DE = PD0」陈旧:`:198` 实传 `ST_DIR4_*`
  (V0.1 实板 PA15,V0.0 才是 PD0)→ 注释改指 V0.1 网表报告的引脚迁移表。
- 两处已退役编号 `N-18`(ADC 映射、V0.1 网表报告)换成登记簿条目名
  「双转换器无共同采样触发」。

核实后确认「文档没问题」的三条(条 8、12、13)
- 黄金参考「菜单 8 状态 + 内容页 66 张」:`simulator/tests/ref/` 实测 66 个
  `shot_*.bin`,与 `ui-golden` 钩子显示名一致 → 不改。
- `App/task/rs485_task.c` 存在但 `Src/freertos.c` 不创建它(grep 无 rs485):
  AGENTS 与总览都已写明「尚未接线 / 暂缓」,图侧画成「实现待接线」→ 不改。
- 104 端口 `:2404` 是工厂默认、可经 `/config.ini` `[comm]` 改 → 总览索引表补
  「默认」二字;「uiTask 10 ms 节拍」核实 = `ui_tokens.h:65 UI_TASK_TICK_MS 10` ✓。

并行勘查会话的同族发现(它扫「文档声明数 vs 真值」,逐处独立复验后采纳 3 处)
- `App/protocol/iec104/iec104_link.h` 头注释写「端口:TCP 2404(§1.5 B0 定义)」,
  同文件下方已写「服务端口真源已迁 [comm] 段」= 自相矛盾 → 补「工厂默认」并指回
  [comm] 与「下次重 bind 即生效」。
- `scripts/gen_task_table.py` 的 iec104Task 描述「:2404 监听」→「工厂默认 :2404
  监听」,`--write` 重生成 README 任务表(AGENTS 表无描述列,实测未被改写)。
- `App/log/README.md` 五行写入点行号全漂:事故 181→188、告警 184→191、启动
  176→183(`App/task/protect_task.c`);操作 `iec104_pts.c` 574/602→582/610、
  `default_task.c` 242→266、`sys_log_mcu.c` 646→682;遥控 573/576/582/586/596/
  598/609 → 581/584/590/594/604/606/617(宿主 `sim_syslog.c:245` 原值正确、未动)。
- **撤销一条**:我早先记的「`docs/算法/继电保护功能复现规划.md:225` 声称记录本已
  有消费者」与原文不符——:225 实为规划表里「动作/SOE 记录 | 复用 `sys_log`」一行,
  属能力复用口径、不是当前态断言 → 不改。教训:**改引用前逐处读现文,别照自己
  上一轮的笔记盲替**(这条比改中的每一处都值钱)。
- 同一批勘查还报了约 12 处「`2404` 缺『工厂默认』限定词」(AGENTS、`App/protocol/
  README.md`、`Src/freertos.c` 注释、5 篇 docs、`test/host` 工具,含一张配图生成器
  要连产物同批重跑)与 `测试开发标准流程.md`「像素层 60 内容页」、
  `.pre-commit-config.yaml` uinav 注释「快检档 18 张黄金参考」(后者写时为真、
  描述的却是钩子现有行为):**本笔刻意不做**,另开任务空间处理——那批要同时动
  AGENTS.md 与 `.pre-commit-config.yaml` 两处单写者面,与并行会话撞车的代价更高。
- 端口生效语义(用户裁定 2026-10-30):产品基线写「公共地址与端口可配…改后需重启
  生效」,代码 `App/task/iec104_serv.c` 是「ca 改后要重启;port 下次重 bind 才生效」
  ——裁定**按代码语义要改**处理(改了端口应立刻重 bind),属固件行为变更,另开任务
  且需真机验证;`.serialtest/config.json` 写死 `i104: listening on 2404` 必检锚点
  是同题(现场改端口会让串口回归假失败),一并留给那条任务。

自查(任务树内)
- `check_doc_links.py --sections-strict`:12 个改动 .md 逐个 rc=0;
  `check_mermaid.py` 改动 .md 全 rc=0;`check_generated_fresh.py` PASS
  (25 个生成器 / 21 一致 / 4 存量基线);`check_nested_comment.py --all` PASS
  (449 文件,新发 0、存量 2);`check_bom_drift.py --all` 99 个名单文件无漂移。
- 编译:`.dsh/skills/keil-build` 退出码 0(0 错误 0 警告),
  Program Size Code=246720 RO=29836 RW=2052 ZI=149708 —— 与本树凭证同码,
  证明这批改的确实只有注释与文档。
- 字节体检:23 个文件无 CR / U+FFFD / 行尾空格 / 缺末行换行;`ui_task.c` 被编辑后
  丢的 3 字节 BOM 已补回(bom-guard 复验通过);5 处「三连空行」逐文件与
  HEAD 比对确认是存量(Python 生成器的 PEP8 双空行与个别 C 文件原有空行)。
- 一次性工具 `ci-artifacts/fix_docs2.py`:断言式规则表,按文件读一次、在演化文本上
  逐条替换、一次写盘。第一版写成「每条规则各自从启动时快照起算」,同一文件后一条
  把前一条整体覆盖,只有每文件最后一条活下来——靠「改完再全仓复扫旧形态」当场抓到,
  这条判据本身已值得写进流程。
- 待办:`git add` 后需重跑 `ram_baseline.py --update`(体积凭证按 git 索引内容生成,
  未 staged 的文件不在凭证里,`check_size_gate.py --local` 现在因此报红)。
- 未 commit、未 push(AGENTS.md 边界:提交属 Ask first)。
2026-10-30 14:19:35 +08:00

36 KiB
Raw Permalink Blame History

V0.1 硬件网表详细分析报告(相对 V0.0 差异版)

一句话结论:V0.1 与 V0.0 架构完全一致(19 颗芯片料号、电源树、隔离串口段、以太网链路、存储/RTC 全部原封未动);本次改版 = 裁剪(删 LCD/按键/TVS)+ 大面积 U17 引脚重排 + ADC 前端通道对应关系置换 + 调试口改型(H2→CN2 XH-3A)。V0.0 待办中仅 A1(D1/D2 去焊盘)落实,B1/B2/B3②/A2 均未处理;网表未新增任何设计缺陷类型,但引脚重排使 固件 BSP 必须整体重映射,且 AIN↔ADC 通道置换(17 路中 13 路变了)必须同步软件通道表,否则采到的量全部对错通道。

数据手册逐脚核对结论(§11,依据 docs/芯片手册/stm32f405rg.md,DS8626 Rev 12):① 网表脚号 = 数据手册 LQFP144 脚号(V0.0 报告"编号与数据手册不符"的结论系作者记忆偏差,予以推翻,V0.0 §3.3-3 的实物抽查项由手册证据直接关闭);② V0.1 全部 30 个换脚网络经手册 AF/GPIO/ADC/SWD 核对电气上全部成立,未发现"不可能连接";③ V0.1 处理了 V0.0 的 2 处引脚问题(2026-10-09 勘误:其中 ADC17 一处定性有误,只有 SWCLK 是真实设计缺陷,见 §4.6 勘误段):SWCLK(V0.0 接 104=PA12,非 JTAG 脚 → V0.0 实板 SWD 不通,实测飞线至 PA14 调通 → V0.1 改 109=PA14)与 ADC17(V0.0 接 46=PB0 → V0.1 改 44=PC4;PB0 实为 ADC12_IN8 并非无效脚,此改版的实际收益是解除与 LED2 的复用,PC4 的正确通道号是 ADC12_IN14);④ 新核出 3 项关注点(V7 VCAP 电容值未标注 / V8 子板 LED 3 线落在 PC13/14/15 的 3mA 限 / V9 V0.1 主板 SDIO 固定引脚组全部被占用)。

本文只写差异。凡本文未提及的器件、网络、电路,均与 V0.0 完全一致,结论直接沿用 V0.0_网表详细分析报告.md(下称"V0.0 报告")。

  • 分析对象:V0.1.tel(341 行,本目录)
  • 对照基线:V0.0.tel(369 行)+ V0.0 报告全文
  • 核实方法:脚本对两份网表做 $PACKAGES/$NETS 逐脚比对(元件增删、封装/值变更、网络增删、网络成员变更、逐引脚归属网络变更),差异逐条人工复核(方法见附录 A);U17 全部脚位另按数据手册(docs/芯片手册/stm32f405rg.md Table 7/9)逐脚核对功能/AF,并与 STM32F407-Demo.ioc、Inc/main.h 代码引脚交叉验证(§11)
  • 分析日期:2026-09-20

1. 差异速览

1.1 规模

指标 V0.0 V0.1 Δ
网表行数 369 341 −28
元件($PACKAGES 收录) 236 215 −21(删 22、增 1)
网络数 251 229 −22(删 22、增 0)
网表中出现的引脚数 940 846 −94
成员发生变化的共有网络 — 55 见 §3–§7

1.2 六类变化

# 类别 内容 详见
Δ1 接口裁剪 H1(16pin 8080 LCD 接口)整体删除(14 个 LCD_* 网络);SW2SW9 八键 + R44/R50/R53R58 上拉删除(KEY1~8 网络) §2、§3
Δ2 调试口改型 H2(2.54 排针)→ CN2(XH-3A,2.5mm 3P),脚序保持 1=SWDIO / 2=SWCLK / 3=GND;SWCLK 的 U17 脚位 104→109 §2、§4.6
Δ3 U17 引脚重排 TPAFE 控制组、UART 三对旋转、SPI1(→U18 耦合线)、U18 桥 11 线、SWCLK、ADC17、LED——共 30 个网络换脚(网名不变);被删 LCD 腾出的引脚区(U17.5~15/18/28/29)接收了桥/SPI1 信号 §4
Δ4 LED 丝印倒序 6 路 LED 网名不变,但网名↔实板 LED 编号的对应倒序;U17.44/45/46 职责变化 §5
Δ5 ADC 前端通道置换 17 路 AIN/V_ZL ↔ ADC 输入的电阻对应关系被置换(13 路变化、4 路不变)——功能性变化,软件通道表必改 §6
Δ6 电源/地去容清理 删 D1/D2(A1 落实)、C21(3.3V 去耦)、C97(TPAFE AVCC 去耦);C3(RTL8305 1.0V 大容)封装由 220µF/BD6.3 改为 C0805(值未标注) ⚠️ §7

1.3 V0.0 待办在 V0.1 的落实核对(对照 V0.0 §3、§5.3)

V0.0 项 V0.1 状态 网表证据
A1 D1/D2 去焊盘 ✅ 已落实 D1/D2 及其 GND/3.3V/G3.3V 成员全部消失
A2 U4 料号改 B0303S ❌ 未落实 $PACKAGES 仍记 PWRM-TH_B0505S-1WR3
B1 V33IN 串肖特基 ❌ 未落实 U2.37 仍直连 3.3V 网,无新增二极管
B1 引 MDC/MDIO ❌ 未落实 U2.25/26 仍无任何网络
B2 主轨改 buck + 5V 排针 + TVS ❌ 未落实 U6/U7 SOT-223 不变、G3.3V 双轨不变、无新增 5V 接口/TVS
B3② SPI1→U18(EXTKO1/2) 耦合改线 ⚪ 复核后撤销(无需改线) 数据手册核对:两线落点(PD8/PD9→PF1/PF2)均无 SPI1 AF 且代码从未配置,实为悬空 GPIO 线,"SPI 流量干扰"不成立;风险并入 B3①(13 条悬空线配置安全电平,§4.4/§11.3)
V0.0 §3.4 T1 远端 4/5/12/13 对地旁路 ❌ 未落实 仍悬空
V0.0 §3.4 网名 'R16' 与电阻 R16 撞名改名 ❌ 未落实 网络 'R16' 仍存在
V0.0 §3.4 TPAFE RESET 改 GPIO ❌ 未落实 HRST 仍为 R16 10k + C31 上电 RC 脉冲电路
V0.0 §5.3 R35 1.5k→10k(视 U8 分档) —(条件项) 仍 1.5k,分档未核则维持原判
代码项(B3① GPIO 配置、功能级断言) 与网表无关 见本文 §9 固件同步清单(重排后工作量变大)

1.4 V0.1 新增关注项(建议编号 V1~V10,纳入待核)

# 事项 建议
V1 AIN↔ADC 通道置换(§6):13/17 路对应关系变化,网名 AINn 与 ADCn 编号不再一致 已确认(2026-10-09):置换本身按走线安排处理,固件通道映射表、UI 显示、自检上报同步更新并逐通道实测(→ ADC通道映射说明.md);但"8 路电气量分属两片转换器"不是走线优化,是缺陷 → 见 V10
V2 C3 封装/值变更(§7):AVDDL 1.0V 大容 BD6.3 220µF → C0805,网表值 '{Value}' 未记录 对照 RTL8305 V10OUT 输出电容要求(V0.0 §4.2,手册"需一只外部二极管+大容")核实 0805 容值(0805 上限约 22~47µF)与耐压/ESR;值补录进 BOM
V3 LED 网名↔丝印倒序(§5):net LEDn 现驱动 LED(11−n) 与结构/丝印确认 LED1 位置定义,固件 LED 序表同步
V4 SWCLK 引脚 104→109(§4.6):数据手册核对确认 104=PA12(无 JTAG 功能,V0.0 设计缺陷 B4——实测 V0.0 实板 SWD 不通,飞线至 PA14 后调通)、109=PA14=JTCK-SWCLK ✓——V0.0 §3.3-3 的"实物抽查 3 脚"待核项由手册证据关闭(25=NRST、23/24=PH0/PH1、73=PB12 全部与手册一致),V0.1 SWD 连接正确 上板时 CN2 烧录/调试通断验证一次(仅物理连线确认)
V5 C97 删除:TPAFE AVCC 去耦由 6 减为 5 颗 可接受,留意 ADC 噪声底是否有实测劣化
V6 网表卫生:C3、CN2 值未标注('{Value}') BOM 补值
V7 VCAP1/VCAP2(U17.71/106)旁路电容 C94/C79 值未标注:数据手册要求 VCAP1/VCAP2 各接 1~4.7µF 低 ESR 陶瓷电容至 VSS(内部 1.2V LDO 稳定裕量) 实测 C94/C79 容值(若为 100nF 则低于手册建议,168MHz 满负荷下 1.2V 轨纹量/稳定性需留意);值补录 BOM
V8 V15/J3/F3 子板 LED 3 线落在 PC13/PC14/PC15(脚 7/8/9):备份域电源开关供电,手册 Note 3 限灌流 ≤3mA、≤2MHz、不可作电流源 核子板 LED 驱动电流需求;超 3mA 则 V0.2 移足驱力脚或子板加三极管扩展
V9 V0.1 主板 SDIO 固定引脚组全被占用:PC6/PC7/PC8/PC9/PA8(TPAFE 控制)+ PA9(USART1)+ PC10/PC11/PC12/PD2(UART4/UART5)= SDIO 全部 10 脚(F407 SDIO 无重映射) 架构约束备案:V0.1 主板无 SDIO 能力;当前设计不受影响(代码未启用 SDIO,FatFs 卷在 SPI NAND 上)
V10 8 路电气量分属两片转换器(V0.1 硬件缺陷,V0.2 改版项):UA/UN/IA 走 TPAFE5160(16 位、同步、±5 V 双极性),UB/UC/IB/IC/IN 走 STM32 ADC(12 位、顺序扫描、0~3.3 V 单极性)→ 跨转换器通道无同一时刻性(相位关系不确定)、精度与量程不一致。详见 §6-3 与 ADC通道映射说明.md §1(2026-10-10 定性更正,登记簿条目「双转换器无共同采样触发」) V0.2 改版:8 路电气量 UA/UB/UC/UN/IA/IB/IC/IN 全部接 TPAFE5160,与 TPAFE 上 5 路备用路(AIN5/13/7/15/12)对调串联电阻在转换器一侧的目的地——元件数量与料号不变,属走线级改动。V0.1 现板:主板侧只做逐通道监视,不做跨转换器的相位/功率/功率因数/矢量运算

2. 元件级变化

2.1 删除(22 只)

组 元件 原功能(V0.0)
LCD 接口 H1(HDR-TH_16P-P2.54-V-F) 8080 并口显示模块座(V0.0 §2.2 显示/扩展)
按键 SW2~SW9(KEY-SMD_4P ×8) 面板 8 键(V0.0 上拉表 KEY1~8)
按键上拉 R44、R50、R53、R54、R55、R56、R57、R58(10K ×8) KEY1~8 上拉(原 10K 组 9 只,仅保留 NRST 上拉 R40)
调试排针 H2(HDR-TH_3P-P2.54-V-F) SWD 3P 排针(由 CN2 替代)
轨 TVS D1、D2(SMB_L4.6 ×2) 3.3V / G3.3V 对地管——即 A1 的 DNP 管,本次直接去焊盘,A1 关闭
去耦 C21(C0603) 3.3V 主轨去耦一颗(V0.0 判"数量充足",减 1 无碍)
去耦 C97(C0603) TPAFE AVCC 去耦 6→5 颗(V5)

2.2 新增(1 只)

元件 封装 连接
CN2 CONN-TH_3P-P2.50_HCTL_XH-3A-L(XH-3A,2.5mm) 1=SWDIO、2=SWCLK、3=GND——与 H2 脚序一致,仅连接器改型(V0.0 §4.1 SWD 功能不变,但 SWD 线对调试器线材要求改为 XH 端子)

2.3 封装/值变更(1 只)⚠️

元件 V0.0 V0.1 说明
C3 CAP-SMD_BD6.3(钽/大容)220uF C0805 '{Value}' AVDDL(RTL8305 片内 LDO 1.0V 输出)大容改小封装、值未记录——见 V2

C45(5V 轨 220µF)仍为 BD6.3,未受影响。

3. 删除的网络(22 个,无新增网络)

  • LCD_*(14):LCD_DB07、LCD_RD、LCD_WR、LCD_CS、LCD_CD、LCD_RST、LCD_BK(原 H1.2H1.15 ↔ U17)。
  • KEY1~8(8):原 SW2SW9.3/.4 + R44/50/5358.1 + U17.58/59/60/63/64/65/66/67。

其余 229 个网络名称与 V0.0 完全相同;其中 55 个成员/引脚有变化(§4~§7)。

4. U17 引脚重排总表(网名不变、仅换脚——共 30 网)

网表脚号即数据手册 LQFP144 脚号(§11.1 已逐脚证实,V0.0 报告"编号与手册不符"的结论作废);下表"脚"列均为此编号,括号内为手册引脚名。U18 B 侧(子板侧)、U3 数据总线 DB0~15、CH395F SPI、GD NAND SPI、I2C RTC、INT、ST_UART0/2 的 U17 脚位全部不变。

4.1 TPAFE5160 控制组(7 网,V0.0 §4.5)

网络 V0.0 脚(引脚名) V0.1 脚(引脚名) 备注
TP_FRSTDATA 115 (PD1) 96 (PC6) 仍经 R24 4.7k 上拉;⚠ 代码仍配 PD1,待迁
TP_BUSY 123 (PD7) 97 (PC7) ⚠ 代码仍配 PD7(EXTI),待迁
TP_RD 117 (PD3) 98 (PC8) ⚠ 代码仍配 PD3,待迁
TP_CONVST 118 (PD4) 99 (PC9) U3.9/10 侧不变;⚠ 代码仍配 PD4,待迁
TP_OS2 55 (PF15) 100 (PA8) ⚠ 代码仍配 PF15,待迁
TP_OS1 54 (PF14) 103 (PA11) ⚠ 代码仍配 PF14,待迁
TP_OS0 53 (PF13) 104 (PA12) 原 SWCLK 脚;⚠ 代码仍配 PF13,待迁

(并口数据 DB015 = U17.56/57/8794/124129/132 = PG0PG15 不变,数据手册核对全部为 FT I/O ✓;OS 三线从原 53/54/55 移入 96104 块。7 个新脚均为合法 GPIO,无 AF 冲突,但 PC6PC9/PA8 与 SDIO 固定引脚组重叠——当前设计不用 SDIO,无实际冲突,见 §11.3/ V9。)

4.2 UART 三对旋转(6 网)——隔离器↔USART 对应关系变化

隔离器/通道 网络 V0.0 脚(引脚名/外设) V0.1 脚(引脚名/外设)
U9(RS232#1) ST_TX1 / ST_RX1 119/122 = PD5/PD6(USART2,AF7) 113/116 = PC12/PD2(UART5,AF8)
U10(RS232#3) ST_TX3 / ST_RX3 111/112 = PC10/PC11(UART4,AF5) 119/122 = PD5/PD6(USART2,AF7)
U11(RS485#4) ST_TX4 / ST_RX4 113/116 = PC12/PD2(UART5,AF8) 111/112 = PC10/PC11(UART4,AF5)

三组引脚在 {111,112}→U11、{113,116}→U9、{119,122}→U10 之间做了一轮轮换——即每路串口收发器挂接的 MCU USART 外设实例变了(不是简单走线挪位)。数据手册核对:V0.1 三对引脚的 AF 全部成立(UART4=AF5 on PC10/PC11 ✓、UART5=AF8 on PC12/PD2 ✓、USART2=AF7 on PD5/PD6 ✓),且当前代码(.ioc/main.h)已按 V0.1 组合配置(PC10/PC11=UART4、PC12/PD2=UART5、PD5/PD6=USART2),上板后仍需逐口回环验证(V0.0 §5.1-8 方法)。ST_TX0/RX0(U5 直连,101/102=PA9/PA10,USART1)与 ST_TX2/RX2(69/70=PB10/PB11,USART3)不变。

4.3 RS485 方向控制(1 网)

网络 V0.0 脚(引脚名) V0.1 脚(引脚名) 备注
ST_DIR4 114 (PD0) 110 (PA15) U8 光耦 LED 阴极侧,逻辑不变(V0.0 §4.4);PA15 为合法 GPIO(属 PA13~PD04 SWJ 重映射区,SWD 模式下作 GPIO 无碍);代码(main.h)已配 PA15 ✓ 与 V0.1 一致

4.4 SPI1 → U18 耦合线(2 网,B3② 相关)

网络 V0.0 脚 V0.1 脚 备注
SPI1_SIMO 78 (PD9) 12 (PF2) 仍接 U18.35;NAND 侧 SPI1(GD_*,133~135/141)不变
SPI1_SOMI 77 (PD8) 13 (PF3) 仍接 U18.33

⚠ 数据手册核对更正(§11.3):PD8/PD9(V0.0)与 PF1/PF2(V0.1)均无 SPI1 的 AF(F407 的 SPI1_MOSI/MISO 仅可选 PA7/PB5/PC12,而 PB5 已被 NAND 的 SPI1 占用,同一 SPI1 外设不能同时落在两组引脚)——这两线不是 SPI1 信号,只是 MCU 侧从未配置的悬空 GPIO 线(.ioc/代码均无 PD8/PD9/PF1/PF2 配置)。V0.0 报告 B3② 所述"NAND SPI 流量调制子板 2 线"不成立(无驱动源,线为浮空);真实风险归入 B3① 同类:13 条悬空 GPIO 线(桥 11 线 + 镜像 2 线)驱动子板输出电平不定,靠代码配置安全默认电平解决,无需改线。

4.5 U18 桥 A 侧 11 线(B3 信号组,全部换脚)

网络 V0.0 脚(引脚名) V0.1 脚(引脚名) 网络 V0.0 脚(引脚名) V0.1 脚(引脚名)
H16 79 (PD10) 5 (PE6) DQM0 96 (PC6) 14 (PF4)
V15 80 (PD11) 7 (PC13) ⚠3mA WAIT1 97 (PC7) 15 (PF5)
J3 81 (PD12) 8 (PC14) ⚠3mA DQM1 98 (PC8) 18 (PF6)
F3 82 (PD13) 9 (PC15) ⚠3mA RAS 99 (PC9) 29 (PC3)
R16 85 (PD14) 10 (PF0) SDCKE 109 (PA14) 28 (PC2)
K3 86 (PD15) 11 (PF1)

B3 性质不变(仍为 A 侧输入悬空驱动子板输出的浮空风险,修复仍是"代码配置 11 个 GPIO 安全电平");这 11 脚现在占用的是原 LCD 引脚区,V0.0 §4.1/§5.2 中列的旧脚号在 V0.1 全部作废。⚠ V15/J3/F3 落在 PC13/PC14/PC15(备份域电源开关供电,数据手册 Note 3:灌流 ≤3mA、≤2MHz、不可作电流源)——子板 LED 驱动电流若超 3mA 亮度受限,见 V8。另注意 V0.0 报告中"SDCKE=109"的脚在 V0.0 实为 PA14(SWCLK 脚)——与 V0.0 SWCLK 记在 104 同属该板网表 SWD/SDCKE 脚位记录混乱的一部分,V0.1 已全部理顺(§11.3)。

4.6 SWD 与 ADC17(2 网)

网络 V0.0 脚(引脚名) V0.1 脚(引脚名) 数据手册核对
SWCLK 104 = PA12(AF:USART1_RTS/CAN1_TX/OTG_FS_DP,无 JTAG 功能) 109 = PA14 = JTCK-SWCLK ✓ V0.0 设计缺陷(B4),V0.1 修复。实测证实:V0.0 实板 SWD 不通(网表与 PCB 一致,SWCLK 真的接在 PA12 上)——用户飞线至 PA14 后方可调试;V0.1 已更正
ADC17 46 = PB0(= ADC12_IN8,2026-10-09 勘误:PB0 确为 ADC 输入脚,见本节末勘误段) 44 = PC4 = ADC12_IN14 ✓ (原判"V0.0 的 ADC17 通道电气上无效"已于 2026-10-09 勘误:PB0 = ADC12_IN8 是有效 ADC 脚,实际问题是与 LED2 复用、代码未读);V0.1 改接 PC4——代码实现该通道必须用 ADC_CHANNEL_14(ADC_CHANNEL_12 = PC2 / pin 30,写错即读到另一只脚)

(SWDIO 仍 U17.105 = PA13 = JTMS-SWDIO ✓ 不变;46(PB0) 被 LED2 网络接管、44(PC4) 原为 LED1 网络。V0.0 报告"引脚编号与数据手册不符"的判断不适用于这两脚——编号体系本身与手册一致,V0.0 错在把 SWCLK 画到了 104。)

2026-10-09 勘误(依据 DS8626 引脚表逐脚复核,见 §11 引脚核对表): ① PC4 = LQFP144 pin 44 = ADC12_IN14,并非本报告早期写的 ADC12_IN12(ADC_CHANNEL_12 对应 PC2 = pin 30)——代码须用 ADC_CHANNEL_14; ② PB0 = pin 46 = ADC12_IN8(PB1 = pin 47 = ADC12_IN9),故 V0.0 把 ADC17 接 pin 46 电气上是有效通道,"PB0 非 ADC 输入脚 / 该通道电气上死"的定性不成立——V0.1 改到 PC4 的实际收益是解除与 LED2(PB0)的复用,不是救活死通道; ③ PC5 = ADC12_IN15(不是 ADC12_IN13;IN13 = PC3)。 语义分配(UA/UB/UC/UN、IA/IB/IC/IN、V_ZL2=温度)与 17 路端到端映射已固化到 docs/硬件平台/ADC通道映射说明.md。

5. LED 对应关系变化(6 网,网名不变)

V0.0 §2.2/§4.7 的 6 路 MCU 控制 LED(实板位号 LED5LED10,阴极经 R59R64 1k→3.3V,该侧接法不变):

网名 V0.0:U17 脚 → 实板 LED V0.1:U17 脚 → 实板 LED
LED1 44 → LED5 45 → LED10
LED2 45 → LED6 46 → LED9
LED3 47 → LED7 47 → LED8
LED4 48 → LED8 48 → LED7
LED5 49 → LED9 49 → LED6
LED6 50 → LED10 50 → LED5

即网名↔实板位号由 LED(n+4) 改为 LED(11−n)(丝印顺序相对控制顺序倒序),且网名 LED1/LED2 的驱动脚从 44/45 移到 45/46(44 让位给 ADC17)。CH395F 状态灯 LED1~LED4(U1/Q1 侧,$1N* 网络)不变。固件 LED 序表与结构丝印须按 V3 对齐。

6. ADC 前端通道对应置换(17 路中 13 路变化)⚠️ V0.1 最大软件风险

前端拓扑不变(每路仍为 R 串联 1k + 1k 到 *_GND + 滤波 C,V0.0 §4.7"源阻抗匹配"结论沿用);ADCn 网络侧(电阻→ADC 输入、滤波电容、U3/U17 脚位)除 ADC17 换脚外全部不变;变化发生在电阻→U5(子板计量芯片)侧的 AIN 网络归属:U5 各计量输出脚现在被接到不同的 ADC 输入。

U5 脚 网络 V0.0:经 Rxx → 到 V0.1:经 Rxx → 到 变化
A3 AIN1 R12 → ADC1(TPAFE#1) R31 → ADC7(TPAFE#7) ✅
B7 AIN2 R17 → ADC2 R52 → ADC17(STM32,U17.44) ✅
C14 AIN3 R19 → ADC3 R20 → ADC12(STM32) ✅
A4 AIN4 R23 → ADC4 R28 → ADC6 ✅
B6 AIN5 R26 → ADC5 R12 → ADC1 ✅
C13 AIN6 R28 → ADC6 R5 → ADC9(STM32) ✅
A5 AIN7 R31 → ADC7 R23 → ADC4 ✅
B5 AIN8 R13 → ADC8 R19 → ADC3 ✅
A8 AIN9 R5 → ADC9(STM32) R49 → ADC15(STM32) ✅
C9 AIN10 R46 → ADC10 R46 → ADC10 不变
C10 AIN11 R48 → ADC11 R48 → ADC11 不变
B3 AIN12 R20 → ADC12(STM32) R13 → ADC8(TPAFE#8) ✅
A6 AIN13 R45 → ADC13 R17 → ADC2 ✅
C12 AIN14 R47 → ADC14 R45 → ADC13 ✅
B4 AIN15 R49 → ADC15 R26 → ADC5 ✅
A7 V_ZL1 R51 → ADC16 R51 → ADC16 不变
C11 V_ZL2 R52 → ADC17(STM32) R47 → ADC14 ✅

要点:

  1. TPAFE 8 路 ↔ STM32 ADC 9 路的"归属"也变了:V0.1 中 TPAFE(U3)采 U5 的 B6/A6/B5/A5/B4/A4/A3/B3,STM32 ADC 采 C13/C9/C10/C14/C12/C11/A8/B7——两族通道数(8+9)不变,成员重分。
  2. 网名 AINn 与 ADCn 编号不再一一对应(如 AIN1→ADC7),任何按"AINn=ADCn"假设的代码/文档/测试都会静默采错通道——这正是 V0.0 §1.6 警示的"静默死亡"型风险,务必以本表建立映射。
  3. 置换疑似按 U5 连接器物理位置重排走线(TPAFE 8 路恰为 B6→B3 降序)。2026-10-10 更正:置换本身(AINn↔ADCn 编号打乱)可视为走线安排,但**"8 路电气量分到 TPAFE 与 STM32 两侧"属 V0.1 硬件缺陷**——2026-10-09 曾按"计量在子板、主板只做监视"把它确认为"有意设计",该定性作废。缺陷实质:TPAFE 8 通道同步采样、STM32 ADC 顺序扫描且两者无共同采样触发 → 跨转换器通道无同一时刻性 / 相位关系不确定;16 位 ±5 V 双极性 vs 12 位 0~3.3 V 单极性 → 同族量精度与量程不一致。下一版硬件(V0.2)需把 8 路电气量 UA/UB/UC/UN/IA/IB/IC/IN 全部改接 TPAFE5160(与 TPAFE 上 5 路备用路对调串联电阻目的地,BOM 不变),登记簿条目「双转换器无共同采样触发」。语义分配(UA/UB/UC/UN、IA/IB/IC/IN、V_ZL2=温度检测,其余 8 路备用)与 17 路端到端映射已固化为 docs/硬件平台/ADC通道映射说明.md(缺陷实质与改版要求见其 §1);固件通道映射表、UI 通道显示、自检逐通道注入验证(V0.0 §5.1-6)按该表执行。

7. 电源/地网络成员变化(拓扑不变)

电源树(V0.0 §2.1)整体成立,仅成员减少:

网络 移除成员 新增成员 说明
3.3V C21.1、D2.1、H1.1、R44/50/53~58.2(×11) — LCD 供电、8 键上拉、TVS、去耦 1 颗
GND C21.2、D1.2、D2.2、H1.16、H2.3、SW2~SW9 各 2 脚(×21) CN2.3
G3.3V D1.1 — 其余成员不变(U6/U9/U10/U11/R34/L4 等)
AGND C97.2 —
AVCC C97.1 — TPAFE AVCC 去耦 6→5(V5)

VDD50、5V、C3.3V、CGND、AVDDL(成员同,仅 C3 封装变)、STM_VDDA、PGND 成员零变化。U4/L4 隔离电源、U20~U22 跨地电容、L1/L2/L3/L6 均不变。

8. 明确未变的系统(快速确认用)

  • 19 颗芯片料号/型号全部不变(V0.0 §1.2 总表照用,仅 U4 料号勘误仍未做);U1/U2/T1/J1/J2/X1/X2/X3 以太网链路逐脚不变(TRAP-NET-05 结论沿用);
  • 隔离串口段 U8~U15、CN1 全部网络不变(仅 §4.2/4.3 的 MCU 侧换脚);
  • U16 RTC(I2C1,网名 SD_SCL/SD_SDA=PB6/PB7)、U19 NAND(GD_*)、U3 数据总线 DB015、U18 桥 B 侧与 strapping(R38R42)、HRST、NRST 等控制语义均不变(除 §4 所列换脚);
  • 晶振/负载电容、复位电路、CH395F 模式脚 R4、DIS_EEE/PBLED/INT 等 strapping 不变。

9. 固件同步修改清单(V0.1 上板前必做)

现状(Inc/main.h + STM32F407-Demo.ioc 核对):DE/LED/SWD/五组 UART 与 TPAFE 控制组 7 线均已迁到 V0.1 引脚(PA15、PC5/PB0/PB1/PB2/PF11/PF12、PA13/PA14、PC10/PC11+PC12/PD2+PD5/PD6;TPAFE = PC6/PC8/PC9/PC7/PA12/PA11/PA8)——2026-09-21 台架验证:ADC init: OK、无 BUSY 超时(见 §9-1)。

  1. TPAFE 控制组 7 线迁移(.ioc 重新生成 + main.h):PD1→PC6(FRSTDATA)、PD3→PC8(RD)、PD4→PC9(CONVST)、PD7→PC7(BUSY)、PF13/14/15→PA12/PA11/PA8(OS0/OS1/OS2)——数据手册核对 7 脚均为合法 GPIO ✓(§4.1/§11.3)。已完成并台架验证(2026-09-21):CubeMX 重生成 .ioc/main.h,驱动为宏驱动、逻辑零改动(仅注释同步),烧录后 ADC init: OK / 无 BUSY 超时,TCP 7003/8888 两轮探测通过。
  2. UART 实例确认:代码已是 V0.1 组合(RS485#4=UART4 PC10/PC11、RS232#1=UART5 PC12/PD2、RS232#3=USART2 PD5/PD6),AF 均与手册相符 ✓;上板逐口回环验证即可。
  3. ADC 通道映射表重写(§6):已落地 → docs/硬件平台/ADC通道映射说明.md(语义 UA/UB/UC/UN、IA/IB/IC/IN、V_ZL2=温度检测,其余 8 路备用;含 TPAFE buf[0..7] 下标映射、STM32 通道宏、自检注入口径)。STM32 侧 9 路中 8 路在 PA0PA7(IN0IN7),网名 ADC17(pin 44 = PC4)实现时用 ADC_CHANNEL_14——原文写的 ADC_CHANNEL_12 与"第 17 路 = V_ZL2"均已勘误:V0.1 中 ADC17 网名承载 AIN2 = UB,V_ZL2 走 ADC14 = PA5 = ADC12_IN5。当前代码未启用 STM32 ADC(HAL_ADC_MODULE_ENABLED 注释状态),属实现时的注意事项。
  4. 裁剪:删除/停用 LCD(H1 8080)与 KEY1~8 相关代码(若有);面板按键功能如仍需要,需另立需求(V0.1 已无板上按键,仅 SW1 复位保留)。
  5. 13 条悬空 GPIO 线配置安全默认电平(B3①):U18 桥 11 线(PE6/PC13/PC14/PC15/PF0/PF1/PF4/PF5/PF6/PC2/PC3,LED 灭/继电器断/告警静默)+ SPI 镜像 2 线(PF1/PF2);其中 3 线在 PC13/14/15,只能灌流 ≤3mA(V8)。
  6. EXTKI×3 读取(如启用)必须配在 PE2/PE3/PE4(脚 1/2/3)——V0.0 §5.2 写的"PC13/14/15"是引脚搞错(那三脚在 V0.1 已被 V15/J3/F3 占用,见 §11.2);硬件通路(U18 A 侧→PE2/3/4)V0.1 未变。
  7. V0.0 §5.2 功能级断言照做(ADC 注入读回、RS485 回环、CH395F PHY 寄存器读回)。

10. 上板验证补充(在 V0.0 §5.1 基础上追加)

  1. 按 §6 表逐通道注入(重点验证 13 个置换通道):U5 侧注 1V → 对应新 ADC 通道读数变化;
  2. 三条串口按 §4.2 新对应回环(RS232#1/#3、RS485#4 与 USART 实例对应确认);
  3. SWD 用 CN2(XH-3A)烧录/调试通(V4 引脚对应已由数据手册关闭,此项仅验证物理连线/线材);
  4. 6 路 LED 按新丝印序逐一点亮核对(V3);
  5. C3 位置实测:确认实际容值与 1.0V(AVDDL)轨质量(V2)。

11. 数据手册逐脚核对(U17 = STM32F407ZGT6,LQFP-144)

依据:docs/芯片手册/stm32f405rg.md(DS8626 Rev 12,STM32F405xx/407xx 数据手册)Table 7"引脚与球定义"(144 脚全部提取)+ Table 9"复用功能映射";交叉验证对象:STM32F407-Demo.ioc(59 配置脚)、Inc/main.h 引脚定义。数据提取脚本见附录 A。

11.1 根本性更正:网表脚号 = 数据手册 LQFP144 脚号

对 V0.1 网表出现的全部 U17 脚位 + V0.0 独有脚位逐一对照手册 Table 7,无一例外全部吻合(抽样证据):

网表脚 手册引脚名 网表网络 网表脚 手册引脚名 网表网络
1/2/3 PE2/PE3/PE4 ST_IN_D4/C3/E4 23/24 PH0/PH1(OSC_IN/OUT) HSE 8MHz
4 PE5 CH395F INT 25 NRST 复位
5 PE6 H16(V0.1 新用) 31/32/33 VSSA/VREF+/VDDA AGND / 3.3V
6 / 143 VBAT / PDR_ON 3.3V(内部 LDO 开启 ✓) 34~43 PA0~PA7 ADC916(IN0IN7)
44 / 46 PC4 / PB0 ADC17(V0.1)/ LED2 45 / 48 / 49 / 50 PC5 / PB2 / PF11 / PF12 LED1/4/5/6
53/54/55 PF13/PF14/PF15 TP_OS0/1/2(V0.0 位) 56/57 PG0/PG1 DB0/DB1
69/70 PB10/PB11 ST_TX2/RX2(USART3) 73~76 PB12~PB15 CH395F SPI2
87~94 PG2~PG9 DB2~DB9 101/102 PA9/PA10 ST_TX0/RX0(USART1 调试)
105 / 109 PA13 / PA14 SWDIO / SWCLK 111/112/113 PC10/PC11/PC12 ST_TX4/RX4 / ST_TX1
116/119/122 PD2/PD5/PD6 ST_RX1 / ST_TX3 / ST_RX3 115/117/118/123 PD1/PD3/PD4/PD7 TP_FRSTDATA/RD/CONVST/BUSY(V0.0 位)
124~128 / 132 PGA~PGE / PGF DB10~DB15 133~135 PB3/PB4/PB5 GD SCK/MISO/MOSI
136/137 PB6/PB7 SD_SCL/SDA(I2C1 RTC) 138 BOOT0 GND ✓
139/141/142 PB8/PE0/PE1 GD_WP/CS/HOLD 144 VDD 3.3V

结论:V0.0 报告"封装引脚编号(NRST=25、HSE=23/24、PB12-15=73-76、VDDA=32/33)与常见数据手册图记忆不符"是作者记忆偏差(V0.0 分析时未实际比对在库手册)——网表编号与手册完全一致。因此:

  • V0.0 §3.3-3 的实物抽查 3 脚(25=NRST、23/24=8MHz 波形、73=PB12)由手册证据直接关闭,无需再实测;
  • 自本报告起,所有网表脚号可直接按手册读引脚名(§4/§11.3 各表已注明);
  • 手册 Table 7 中 48/49 为合并行:48 = PB2/BOOT1、49 = PF11(F407 无 BOOT1 功能,PB2 为普通 GPIO)。

11.2 对 V0.0 报告的追溯更正(5 处)

位置 V0.0 报告原文 事实(手册 + 代码核对)
§4.2 "INT→PA0(pin 4)" pin 4 = PE5;代码 CH395_INT_Pin = GPIO_PIN_5 / GPIOE(main.h L60-61)——一直是 PE5,报告误判为 PA0
§4.6 "ST_IN_E4/C3/D4→pin 3/2/1 = PC15/PC14/PC13(标准 LQFP-144 编号…)" pin 1/2/3 = PE2/PE3/PE4(即 ST_IN_D4/C3/E4);EXTKI 三线实际在 PE2/PE3/PE4(V0.1 未变);V0.0 §5.2"启用 PC13/14/15 读 EXTKI"是引脚搞错——V0.1 中 PC13/14/15 已被 V15/J3/F3 子板 LED 线占用
§3.3-3 / §4.1 "封装引脚编号…与常见数据手册图记忆不符→判定网表正确,待实物抽查" 与数据手册一致(§11.1);抽查项由手册证据关闭
V0.0 §4.1 / §5.3 SWCLK = U17.104 pin 104 = PA12(无 JTAG 功能,AF 为 USART1_RTS/CAN1_TX/OTG_DP);实测证实 V0.0 实板 SWD 不通(用户飞线至 PA14=109 后方可调试)→ V0.0 真实设计缺陷(B4),V0.1 已更正
V0.0 §4.7 / §1.6 "ADC17→U17.46" 列为正常通道 pin 46 = PB0 = ADC12_IN8(2026-10-09 勘误:PB0 确为 ADC 输入脚,原判"非 ADC 输入脚 / 电气上无效"不成立)→ V0.0 的"ADC17"(V_ZL2)通道电气上有效,只是与 LED 复用冲突、代码未读;V0.1 改接 44 = PC4 = ADC12_IN14(代码用 ADC_CHANNEL_14)

另:V0.0 §2.2 存储项"GD5F2GQ5UE + SD 卡(FatFs)"表述有误——两版网表均无 SDIO 引脚,代码 FatFs 卷在 SPI NAND 上(App/cfg/cfg_file_store_mcu.c 头部:"NAND 上 FatFS 文件 /config.ini(卷根)"),主板本无 SD 卡/SDIO。

11.3 V0.1 换脚引脚逐脚核对(30 网全部"电气成立")

网络 V0.1 脚(引脚名) 所需功能 数据手册支持(Table 9) 判定
SWDIO / SWCLK 105 (PA13) / 109 (PA14) SWD JTMS-SWDIO / JTCK-SWCLK(AF0,SWD 固定脚) ✓(SWCLK 为 V0.0 错误修复)
ST_DIR4 110 (PA15) GPIO 输出 FT I/O(SWJ 区,SWD 模式可作 GPIO) ✓(代码已配 PA15)
ST_TX4 / ST_RX4 111/112 (PC10/PC11) UART4 TX/RX AF5 = UART4_TX/RX ✓
ST_TX1 / ST_RX1 113/116 (PC12/PD2) UART5 TX/RX AF8 = UART5_TX/RX ✓
ST_TX3 / ST_RX3 119/122 (PD5/PD6) USART2 TX/RX AF7 = USART2_TX/RX ✓
TP_FRSTDATA 96 (PC6) GPIO FT I/O(与 SDIO_D2 同脚,设计不用 SDIO) ✓
TP_BUSY 97 (PC7) GPIO (SDIO_D3 同脚) ✓
TP_RD 98 (PC8) GPIO (SDIO_D4 同脚) ✓
TP_CONVST 99 (PC9) GPIO (SDIO_D5 同脚) ✓
TP_OS2 100 (PA8) GPIO (SDIO_D6/MCO1 同脚) ✓
TP_OS1 103 (PA11) GPIO (OTG_FS_DM 同脚,未用) ✓
TP_OS0 104 (PA12) GPIO (OTG_FS_DP 同脚,未用) ✓
ADC17 44 (PC4) ADC 输入 ADC12_IN14 ✓(代码实现用 ADC_CHANNEL_14;ADC_CHANNEL_12 = PC2/pin 30,勿混——见 §4.6 勘误)
LED1 45 (PC5) GPIO (ADC12_IN15 同脚,作 GPIO 无碍) ✓
LED2/3/4 46/47/48 (PB0/PB1/PB2) GPIO PB2=PB2/BOOT1,F407 普通 GPIO ✓
LED5/6 49/50 (PF11/PF12) GPIO FT I/O ✓
H16 5 (PE6) GPIO FT I/O ✓
V15 / J3 / F3 7/8/9 (PC13/PC14/PC15) GPIO 输出(子板 LED) 备份域电源开关供电:灌流 ≤3mA、≤2MHz、不可作电流源(Note 3) ⚠ 见 V8
R16 / K3 10/11 (PF0/PF1) GPIO FT I/O ✓
SPI1_SIMO / SOMI 12/13 (PF2/PF3) (名义 SPI1) PF2/PF3 无 SPI1 的 AF(SPI1_MOSI/MISO 仅 PA7/PB5/PC12;PB5 已用于 NAND 的 SPI1,同一 SPI1 不能双落点) ⚠ 见下
DQM0 / WAIT1 / DQM1 14/15/18 (PF4/PF5/PF6) GPIO FT I/O ✓
SDCKE / RAS 28/29 (PC2/PC3) GPIO FT I/O ✓

两项 ⚠ 的定性:

  1. SPI 镜像 2 线不是 SPI1 信号:V0.0(PD8/PD9)与 V0.1(PF1/PF2)的落点都无 SPI1 AF,且代码从未配置这两脚 → 实为悬空 GPIO 线,V0.0 报告 B3②"SPI 流量调制子板 EXTKO1/2"不成立;风险并入 B3①(合计 13 条悬空 GPIO 线需代码配置安全电平,§9-5)。若确需把 NAND SPI1 流量镜像给子板,F407 单 SPI1 外设无法同时落在两组引脚,V0.2 需改方案(子板侧独立 SPI 或 GPIO 位带)。
  2. PC13/14/15 驱动能力受限:3 路子板 LED 线(V15/J3/F3)落在备份域 GPIO,只能灌 ≤3mA——子板 LED 电流需求需核(V8);V0.0 时代这 3 线在 PD11/PD12/PD13(足驱力),V0.1 换到 PC13/14/15 是驱动能力降级,亮度/限流设计需同步确认。

11.4 不变引脚抽查(V0.1 = V0.0,全部与手册一致)

  • 电源脚:VDD×12(17/30/39/52/62/72/84/95/108/121/131/144)→3.3V ✓;VSS×9(16/38/51/61/83/94/107/120/130)→GND ✓;VBAT(6)→3.3V(1.653.6V 范围内)✓;PDR_ON(143)→3.3V(片内 LDO 开启配置 ✓);VSSA(31)→AGND ✓;VREF+(32)→3.3V ✓(VREF+=VDDA 为标准接法);VCAP1(71)/VCAP2(106)→C94/C79→GND ✓(**值未标注,手册要求 14.7µF 低 ESR**,V7)
  • BOOT0(138)→GND ✓(复位默认从 Flash 启动,配置正确)
  • HSE:PH0/PH1(23/24)+12pF×2 ✓;CH395F INT:PE5(4) GPIO ✓;EXTKI×3:PE2/PE3/PE4(1/2/3) GPIO ✓
  • TPAFE 并口 DB015 = PG0PG15(56/57/8794/124129/132)FT I/O ✓
  • SPI1(NAND):PB3/4/5(133~135)=SCK/MISO/MOSI(AF5)✓,CS/HOLD/WP=PE0(141)/PE1(142)/PB8(139) GPIO ✓
  • SPI2(CH395F):PB13/14/15(74~76)=SCK/MISO/MOSI(AF5)✓,CS=PB12(73) GPIO ✓
  • I2C1(RTC SD2506):PB6/PB7(136/137)=SCL/SDA(AF4)✓
  • USART1(调试+U5 直连):PA9/PA10(101/102) AF7 ✓;USART3(U5 直连):PB10/PB11(69/70) AF7 ✓
  • 代码 59 配置脚(.ioc)在 V0.1 网表中全部存在 ✓(其中 TPAFE 控制 7 脚 PD1/PD3/PD4/PD7/PF13/14/15 在 V0.1 硬件上已悬空——代码迁移前这组信号失效,§9-1)
  • U1~U19(除 U17 外 18 颗):V0.0 报告的逐脚核实基于各芯片自身脚位编号,与 U17 编号体系更正无关,结论全部沿用

11.5 综合判定

  1. V0.1 的 U17 连接经数据手册核对全部电气成立(AF/GPIO/ADC/SWD/电源/BOOT0 逐项无误),未发现"不可能连接";
  2. V0.1 修复了 V0.0 的 2 处真实设计缺陷(B4:SWCLK 104→109——V0.0 实板 SWD 不通,实测飞线调通;B5:ADC17 46→44)——除接口裁剪外,这是本次改版最有实质的硬件收益;
  3. 新核出 3 项关注点:V7(VCAP 电容值未标注)、V8(PC13/14/15 的 3mA 驱动限制 vs 子板 LED)、V9(V0.1 主板 SDIO 能力被完全占用——当前无碍,架构约束备案);
  4. 代码侧同步项收敛为 4 条:TPAFE 控制 7 线迁移(§9-1)、13 条悬空 GPIO 安全电平(§9-5)、网名 ADC17(PC4)用 ADC_CHANNEL_14(§9-3,原写 ADC_CHANNEL_12 已勘误)、EXTKI 读 PE2/3/4 而非 PC13/14/15(§9-6);
  5. V0.0 报告"引脚编号与数据手册不符"结论撤销,实物抽查项关闭,5 处文字表述追溯更正(§11.2)。

附录 A:比对方法

  • 脚本将两份 .tel 的 $PACKAGES/$NETS 归一化(折行拼接、逗号分词)后做五个方向的集合比对:元件增删、元件封装/值变更、网络增删、共有网络成员变更、共有引脚归属变更;输出 22 删 / 1 增元件、22 删 / 0 增网络、55 个成员变化网络、逐引脚差异表,全部差异已人工回读原文复核,无误报。
  • 统计口径:元件数按 $PACKAGES 收录引用计;引脚数按 $NETS 中"位号.脚"去重计。
  • 数据手册核对(§11):用正则从 docs/芯片手册/stm32f405rg.md 的 Table 7(引脚定义,单行 HTML 大表)提取 LQFP144 列全部 144 脚号→引脚名(48/49 为合并行,单独解析:48=PB2/BOOT1、49=PF11)与 Table 9(AF 映射);与 V0.1 网表 U17 脚位、.ioc 59 配置脚、Inc/main.h 引脚宏三方交叉。