From d0ec983cdd31c1965ef6cb0671e21e5c94106a0a Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Mon, 21 Sep 2026 01:58:32 +0800 Subject: [PATCH] =?UTF-8?q?V0.0=E7=BD=91=E8=A1=A8=E5=88=86=E6=9E=90?= =?UTF-8?q?=E6=8A=A5=E5=91=8A=E6=8C=89=E6=95=B0=E6=8D=AE=E6=89=8B=E5=86=8C?= =?UTF-8?q?=E5=A4=8D=E6=A0=B8=E6=9B=B4=E6=AD=A3=EF=BC=88SWD=E9=A3=9E?= =?UTF-8?q?=E7=BA=BF=E4=BA=8B=E5=AE=9E=E3=80=81EXTKI/INT=E5=BC=95=E8=84=9A?= =?UTF-8?q?=E6=9B=B4=E6=AD=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/硬件平台/V0.0_网表详细分析报告.md | 87 +++++++++++++++++--------- 1 file changed, 59 insertions(+), 28 deletions(-) diff --git a/docs/硬件平台/V0.0_网表详细分析报告.md b/docs/硬件平台/V0.0_网表详细分析报告.md index 3845f5b5..35a0259d 100644 --- a/docs/硬件平台/V0.0_网表详细分析报告.md +++ b/docs/硬件平台/V0.0_网表详细分析报告.md @@ -1,13 +1,19 @@ # V0.0 硬件网表详细分析报告 -> **一句话结论**:架构完整、实板在跑,网表与实板无实质性电气矛盾;**19 颗芯片料号全部确认**(其中 9 颗本次新确认,8 颗经手册逐脚核实、U4 经丝印+脚位核实);**3 处设计缺陷**(B3 可纯代码解决)、**2 项 BOM/网表清理**、**4 项待核**;最大系统性风险 = 验证全在"开机标记级",功能级"静默死亡"无法发现(§1.6、§5)。 +> **一句话结论**:架构完整、实板在跑,网表与实板无实质性电气矛盾;**19 颗芯片料号全部确认**(其中 9 颗本次新确认,8 颗经手册逐脚核实、U4 经丝印+脚位核实);**5 处设计缺陷**(B3 可纯代码解决;**B4/B5 为 2026-09-20 数据手册复核新核出,V0.1 已修复**)、**2 项 BOM/网表清理**、**4 项待核**(1 项已由数据手册关闭);最大系统性风险 = 验证全在"开机标记级",功能级"静默死亡"无法发现(§1.6、§5)。 +> +> **2026-09-20 数据手册复核(DS8626,stm32f405rg.md)更正声明**: +> 1. 原文"封装引脚编号与数据手册图记忆不符"的判定**撤销**——网表脚号 = 数据手册 LQFP144 脚号(逐脚吻合,见附录 C-C1/C2);§3.3-3 实物抽查 3 脚由手册证据关闭; +> 2. **新核出 B4**:SWD 的 SWCLK 误接 U17.104 = **PA12**(无 JTAG 功能)→ **V0.0 实板 SWD 不通**(实测证实:V0.0 实板无法调试,飞线至 PA14 后调通);同因 SDCKE 误占 109 = PA14(两线脚位互换)。V0.1 已修复; +> 3. **新核出 B5**:ADC17 输入(V_ZL2)接 U17.46 = **PB0(非 ADC 输入脚**,F407 ADC 输入仅 PA0~7/PC0~7)→ 该通道电气上死(潜伏,代码未读);V0.1 改 44 = PC4 = IN12 修复; +> 4. 5 处文字表述更正(INT=PE5 非 PA0、EXTKI=PE2/3/4 非 PC13/14/15、存储"SD 卡"实为 SPI NAND、B3②"SPI 流量干扰"不成立、"USART5"应为 UART5),详见**附录 C**。 > > **文档结构**:§1 结论速览 → §2 总体架构 → §3 问题清单 → §4 逐芯片详解 → §5 改进方向 → §6 最优先三件事 → 附录 A 勘误记录 / 附录 B 手册清单。 - **分析对象**:`V0.0.tel`(369 行,本目录) - **对照依据**:`docs/芯片手册/`(12 份芯片手册 + 2 份 STM32 参考件,见附录 B)、`AGENTS.md`、`STM32F407-Demo.ioc`、`Drivers/BSP/` 驱动代码、`docs/问题记录/`、`docs/测试说明/` - **分析日期**:2026-09-15 -- **核实方法**:网表逐脚对照手册 → 代码/.ioc 交叉 → 实板开机标记反推;初版误判已全部撤回,汇总见**附录 A** +- **核实方法**:网表逐脚对照手册 → 代码/.ioc 交叉 → 实板开机标记反推;初版误判已全部撤回,汇总见**附录 A**;**2026-09-20 按 STM32 数据手册(DS8626)复核 U17 全部脚位并矫正,见附录 C** ## 1. 结论速览 @@ -17,9 +23,9 @@ |---|---| | 架构/实板 | 完整且在跑:网络/ADC/NAND/RTC/RS485 均通过开机标记 | | 芯片料号 | 19 颗全部确认(§1.2 总表) | -| 设计缺陷 | **3 处** B1/B2/B3(§3.1) | +| 设计缺陷 | **5 处** B1/B2/B3/B4/B5(§3.1;B4/B5 为 2026-09-20 数据手册复核新核出,V0.1 已修复) | | BOM/网表清理 | **2 项** A1/A2(§3.2,网表与实板不符,V0.1 更新) | -| 待核项 | **4 项**(§3.3) | +| 待核项 | **4 项**(§3.3,其中第 3 项"引脚编号实物抽查"已由数据手册证据关闭) | | 系统性风险 | 验证全为开机级、功能级盲区 →"静默功能死亡"(§1.6) | ### 1.2 芯片料号总表 @@ -39,19 +45,21 @@ | U14 | C2836689 RJ45 | 多用途数据连接器 | — | 模块手册待补(§3.3-2) | | U15 | TP8485E-SR | RS485 收发器 | 逐脚 | — | | U16 | SD2506API-G | I2C RTC 模块 | 逐脚 | 内置晶振+充电电池 | -| U17 | STM32F407ZGT6 | 主控(LQFP-144) | 代码/.ioc 交叉 | 封装引脚编号待实物抽查(§3.3-3) | +| U17 | STM32F407ZGT6 | 主控(LQFP-144) | 代码/.ioc 交叉 + **数据手册逐脚复核(2026-09-20)** | 脚号 = 数据手册 LQFP144 编号(附录 C-C1);**B4/B5** | | U18 | AIP74LVC16245TA48 | 双 8 位总线收发器(子板桥) | 逐脚(48 脚全对) | **B3** | | U19 | GD5F2GQ5UE | SPI NAND(WSON-8) | 逐脚 | — | > 其中 U4、U8、U9~U11、U12、U13、U15、U18(9 颗)为本次分析新确认;其余 10 颗原已知料号。 -### 1.3 设计缺陷(3 处,详情 §3.1) +### 1.3 设计缺陷(5 处;B1/B2/B3 详情 §3.1,B4/B5 为 2026-09-20 数据手册复核新增) | # | 摘要 | 修复 | |---|---|---| | B1 | RTL8305 V33IN 缺串联肖特基 + MDC/MDIO 悬空(无 SMI) | V0.1 改板 + 代码 SMI 初始化 | | B2 | 3.3V 主轨 SOT-223 LDO 余量 + 板级无独立 5V 输入 | V0.1:主轨改 buck + 5V 排针 | -| B3 | U18 桥:11 个悬空 GPIO → 子板输出线电平不定;SPI1 MISO/MOSI 耦合至子板 EXTKO1/2 | **① 代码配置 11 个 GPIO(无需改板)** ② V0.1 改线 | +| B3 | U18 桥:11 个悬空 GPIO → 子板输出线电平不定;另有 2 条"SPI1"名义线(实为悬空线,2026-09-20 更正)→ 子板 EXTKO1/2 | **① 代码配置 13 个 GPIO(无需改板)** ② ~~V0.1 改线~~(更正后无需,附录 C-C6) | +| **B4** | **SWD 的 SWCLK 误接 U17.104 = PA12**(PA12 无 JTAG 功能,SWD 仅认 PA13/PA14)→ **V0.0 实板 SWD 不通**(实测:实板无法调试,飞线至 PA14 后调通);同因 SDCKE 误占 109 = PA14(两线脚位互换) | **V0.1 已修复**:SWCLK→109 = PA14、SDCKE→28 = PC2 | +| **B5** | **ADC17 输入(V_ZL2)接 U17.46 = PB0**——PB0 非 ADC 输入脚(F407 ADC 输入仅 PA0~PA7/PC0~PC7)→ 该通道电气上死(潜伏:代码当时未读此通道) | **V0.1 已修复**:→44 = PC4 = ADC12_IN12(代码实现该通道时用 `ADC_CHANNEL_12`) | ### 1.4 BOM/网表清理(2 项,详情 §3.2) @@ -64,7 +72,7 @@ 1. H1102NLT 共模磁环手册(T1) 2. HR911105A RJ45 模块手册(J1/J2) -3. STM32 封装引脚编号实物抽查(3 脚) +3. ~~STM32 封装引脚编号实物抽查(3 脚)~~ —— **已关闭(2026-09-20,数据手册证据,附录 C-C2)** 4. X1 25MHz 晶振选料参数(±50ppm / ESR<50Ω) ### 1.6 系统性风险:"静默功能死亡" @@ -107,10 +115,10 @@ flowchart LR |---|---|---| | 以太网 | CH395F(SPI2+DMA) → T1(350uH CM 磁环) → RTL8305NB port3 → 内部 crossbar → port0/1 → J1/J2(集成磁 RJ45) → 网线 | **在跑**(Trap05:CH395F PHY 与 RTL8305NBI 自协商不兼容 → 代码 `ch395f_set_phy(0x08)` 强制 100M 全双工后稳定) | | 模拟采集 | 15 路 AIN(10 路 → TPAFE5160 8ch+备用,5 路 → STM32 ADC,均 1k+1k 匹配阻抗+滤波)→ 16 位并口回 STM32 | 开机标记通过(**功能级未验证**,见 §3.1/B3 与 §5) | -| 存储 | GD5F2GQ5UE(WSON8, SPI1) + SD 卡(FatFS) | NAND init 标记通过 | +| 存储 | GD5F2GQ5UE(WSON8, SPI1)——**FatFS 卷在此 NAND 上**(2026-09-20 更正:网表无 SD 卡/SDIO,原文"SD 卡(FatFS)"系误称,附录 C-C5) | NAND init 标记通过 | | 时钟 | SD2506API(I2C RTC 模块:内置晶振 + 内置充电电池 + 充电电路) → 墙钟子系统 | SD2506 ID 读取通过(功能性验证);内置电池掉电自动续走,代码开机写 18H=0x82 使能充电并读 battery: 标记 | -| 串口 | USART1 调试口;U5 直连 UART×2;RS232×2(U9/U10 数字隔离器→U13 TPT3232E→CN1,其中 #3 复用 U14 RJ45);RS485(USART5→U11 数字隔离器→U15→A/B→CN1;DE/RE 经 U8 光耦 FOC-817 跨界;U12 = SuperESD 防静电阵列并接 A/B,对 CGND 钳位) | 初始化标记通过(**功能级未验证**) | -| 显示/扩展 | H1(16pin) 8080 LCD 接口 → 显示模块;U18(TSSOP48) AIP74LVC16245 双 8 位总线收发器(strapping 锁定 A→B 常通):子板 EXTKI×3→PC13/14/15、11 个未配置 GPIO→子板 LED/继电器/HT/EXTKO、SPI1 MISO/MOSI→子板 EXTKO1/2 | 代码未读 PC13/14/15、未驱动 11 个 GPIO(子板输出电平不定,**B3**) | +| 串口 | USART1 调试口(PA9/PA10);U5 直连 UART×2(USART1 复用 + USART3 PB10/PB11);RS232×2(U9/U10 数字隔离器→U13 TPT3232E→CN1,其中 #3 复用 U14 RJ45;#1 = USART2 PD5/PD6,#3 = UART4 PC10/PC11);RS485#4(**UART5** PC12/PD2——2026-09-20 更正:原文"USART5",F407 无 USART5,附录 C-C10 →U11 数字隔离器→U15→A/B→CN1;DE/RE 经 U8 光耦 FOC-817 跨界,DE = PD0;U12 = SuperESD 防静电阵列并接 A/B,对 CGND 钳位) | 初始化标记通过(**功能级未验证**) | +| 显示/扩展 | H1(16pin) 8080 LCD 接口 → 显示模块;U18(TSSOP48) AIP74LVC16245 双 8 位总线收发器(strapping 锁定 A→B 常通):子板 EXTKI×3→**PE2/PE3/PE4**(脚 1/2/3;2026-09-20 更正,原误作 PC13/14/15,附录 C-C4)、11 个未配置 GPIO→子板 LED/继电器/HT/EXTKO、2 条"SPI1"名义线(实为未配置悬空线,2026-09-20 更正,附录 C-C6)→子板 EXTKO1/2 | 代码未读 PE2/3/4、未驱动 13 个 GPIO(子板输出电平不定,**B3**) | ### 2.3 关键架构事实 @@ -119,13 +127,15 @@ flowchart LR ## 3. 问题清单 -### 3.1 设计缺陷(3 处,V0.1 应修) +### 3.1 设计缺陷(5 处,V0.1 应修;B4/B5 已于 V0.1 修复) | # | 问题 | 影响 | 修复 | |---|---|---|---| | B1 | RTL8305 V33IN 缺手册要求的串联肖特基(3.3V 直连);MDC/MDIO 悬空(无 SMI) | 掉电时 V33IN 可倒灌 3.3V 主轨、破坏上电时序并威胁片内 LDO;PHY 全参数锁死默认态,Trap05 只能单边强制 | 3.3V→V33IN 串肖特基(BAT54/SS34,阳极接 3.3V、阴极接 V33IN,Vf 小,禁硅 PN);引 MDC/MDIO 至 STM32 GPIO(代码加 SMI 初始化:port3 强制 100F、LED 配置、VLAN 确认) | | B2 | 3.3V 主轨 SOT-223 LDO;板级无独立 5V 输入 | 峰值电流/热余量存疑;单独调试必须依赖子板线缆 | 主轨改 buck(顺带并掉 G3.3V 双轨偏移);加 5V 调试排针 + TVS | -| B3 | U18 桥(AIP74LVC16245,strapping 锁定 A→B 恒使能):A 侧 11 个 GPIO(H16/V15/J3/F3/R16/K3/DQM0/WAIT1/DQM1/RAS/SDCKE)未配置悬空 → 子板 LED×4/RELAY_STO/HT×5/EXTKO3 电平不定;SPI1 MISO/MOSI 耦合至子板 EXTKO1/2(SPI 流量干扰) | 子板输出态(含继电器)随机;子板若用 EXTKO1/2 将被干扰 | ① 代码显式配置 11 个 GPIO 为安全默认电平(LED 灭/继电器断/告警静默,**无需改硬件**)② V0.1 改线 2A1/2A2→EXTKO1/2 耦合(或确认子板未用此 2 线) | +| B3 | U18 桥(AIP74LVC16245,strapping 锁定 A→B 恒使能):A 侧 11 个 GPIO(H16/V15/J3/F3/R16/K3/DQM0/WAIT1/DQM1/RAS/SDCKE)未配置悬空 → 子板 LED×4/RELAY_STO/HT×5/EXTKO3 电平不定;另 2 条"SPI1"名义线(U17.77/78 = PD8/PD9,**2026-09-20 更正:无 SPI1 AF、代码未配置,实为悬空线**)→ 子板 EXTKO1/2 | 子板输出态(含继电器)随机 | ① 代码显式配置 **13 个** GPIO 为安全默认电平(LED 灭/继电器断/告警静默,**无需改硬件**)② ~~V0.1 改线~~(2026-09-20 更正:该 2 线无 SPI1 AF 且无驱动源,"SPI 流量干扰"不成立,无需改线) | +| **B4** | SWD 的 SWCLK 接 U17.104 = **PA12**(无 JTAG 功能;SWD 仅认 PA13/PA14)→ 实板 SWD 不通(**实测证实:V0.0 实板无法调试,飞线至 PA14 后调通**);同因 SDCKE 占 109 = PA14(脚位互换,见 §4.6) | V0.0 板 SWD 烧录/调试不可用(飞线绕过);ST-LINK 常规 2 线流程失效 | **V0.1 已修复**:SWCLK→109 = PA14(JTCK-SWCLK)、SDCKE→28 = PC2 | +| **B5** | ADC17 输入(V_ZL2)接 U17.46 = **PB0**——非 ADC 输入脚(F407 ADC 输入仅 PA0~PA7、PC0~PC7) | 第 17 路模拟输入电气上无效(潜伏:代码未读该通道,开机标记照样 PASS——典型"静默死亡") | **V0.1 已修复**:→44 = PC4 = ADC12_IN12(代码实现时用 `ADC_CHANNEL_12`) | ### 3.2 BOM/网表清理(2 项,V0.1) @@ -140,7 +150,7 @@ flowchart LR 1. **H1102NLT 共模磁环**(T1):绕组布局靠实跑反推(交叠式),手册未入库。 2. **HR911105A RJ45**(J1/J2):集成磁已反证成立;pin9(LED)/pin10(strapping)/pin4,5(屏蔽) 定义待模块手册确认。 -3. **STM32 封装引脚编号**:网表与代码自洽(59 配置脚全交叉),实物抽查 3 脚后关闭(pin25=NRST、pin23/24=8MHz 波形、pin73=PB12 翻转,方法见 §5.1)。 +3. **STM32 封装引脚编号**:**已关闭(2026-09-20,数据手册证据,免实测)**——按 DS8626 Table 7 逐脚核对:25 = NRST、23/24 = PH0/PH1(8MHz)、73 = PB12 全部与数据手册一致;原文"与数据手册图记忆不符"的判定系作者记忆偏差(网表脚号即手册 LQFP144 脚号,附录 C-C1/C2)。 4. **X1 25MHz 晶振**:手册要求 ±50ppm / ESR<50Ω,选料参数待核。 ### 3.4 轻微改进(非缺陷,并入 V0.1,见 §5.3) @@ -153,15 +163,15 @@ flowchart LR ### 4.1 主控:U17 = STM32F407ZGT6(LQFP-144) -- 全部功能引脚与代码/.ioc 一一对应(59 个已配置脚);VDD×14、VDDA(pin32/33 经 L6)、NRST(pin25)= R40 10k 上拉 + 2×100nF(C14/C74) + SW1、HSE(pin23/24)= 8MHz + 12pF×2。 -- 封装引脚编号(NRST=25、HSE=23/24、PB12-15=73-76、VDDA=32/33)与常见数据手册图记忆不符,但**与可工作代码+实板完全自洽** → 判定网表正确,实物抽查 3 脚后关闭(§3.3-3)。 -- 悬空脚:U17.7 及若干未配置 GPIO——复位后高阻,正常;U18 A 侧 13 线中 11 线(H16/V15/J3/F3/R16/K3/DQM0/WAIT1/DQM1/RAS/SDCKE)为未配置悬空、无人驱动(**B3**,见 §4.6),另 2 线为 SPI1 MISO/MOSI(活动信号)。 +- 全部功能引脚与代码/.ioc 一一对应(59 个已配置脚);电源脚(2026-09-20 按数据手册复核):VDD×12 + VBAT(6) + PDR_ON(143) → 3.3V(共 14 脚,PDR_ON 高 = 片内 1.2V LDO 开启 ✓);VSS×9 → GND;VSSA(31) → AGND;VREF+(32)/VDDA(33) 经 L6 → 3.3V,C77/C78 → AGND;VCAP1(71)/VCAP2(106) → C94/C79 → GND(值未标注,手册要求 1~4.7µF 低 ESR);BOOT0(138) → GND ✓;NRST(pin25)= R40 10k 上拉 + 2×100nF(C14/C74) + SW1;HSE(pin23/24 = PH0/PH1)= 8MHz + 12pF×2。 +- **封装引脚编号(2026-09-20 数据手册复核,原判定撤销)**:网表脚号与 DS8626 Table 7 的 LQFP144 脚号**逐一吻合**(NRST=25、HSE=23/24、PB12-15=73-76、VSSA=31/VREF+=32/VDDA=33、PG0-15=56/57/87-94/124-129/132、PA13/PA14=105/109 等 40 余脚全部对上)——原文"与常见数据手册图记忆不符→判定网表正确"中的"不符"系**作者记忆偏差**(当时未实际比对在库手册),予以撤销;§3.3-3 实物抽查项由手册证据关闭(附录 C-C1/C2)。 +- 悬空脚:U17.7 及若干未配置 GPIO——复位后高阻,正常;U18 A 侧 13 线中 11 线(H16/V15/J3/F3/R16/K3/DQM0/WAIT1/DQM1/RAS/SDCKE)为未配置悬空、无人驱动(**B3**,见 §4.6),另 2 线("SPI1_SIMO/SOMI" 网名,U17.77/78 = **PD8/PD9**)经 2026-09-20 数据手册复核更正:此二脚**无 SPI1 的 AF**(F407 的 SPI1_MOSI/MISO 仅可选 PA7/PB5/PC12,而 PB5 已用于 NAND 的 SPI1),代码亦从未配置 → 实为**未配置悬空线**而非活动信号,与 11 线同类(附录 C-C6)。 ### 4.2 以太网段:U1、U2、T1、J1/J2、X1/X2 #### U1 = CH395F(QFN-32,以太网 MAC+PHY,SPI 从设备) -- 引脚全对:SCS/SCK/SDI/SDO→PB12-15(封装 pin73-76)、INT→PA0(pin4)、RSTI←NRST、VDDK 1uF(C13)、晶振 X2 25MHz+12pF×2、ELINK#/EACT#→LED1/LED2(470Ω 上拉,低有效)。 +- 引脚全对:SCS/SCK/SDI/SDO→PB12-15(封装 pin73-76)、INT→**PE5(pin4;2026-09-20 更正:原文误作 PA0,代码 `CH395_INT` = GPIOE PIN5 佐证,附录 C-C3)**、RSTI←NRST、VDDK 1uF(C13)、晶振 X2 25MHz+12pF×2、ELINK#/EACT#→LED1/LED2(470Ω 上拉,低有效)。 - TXD 脚为 5.1k **下拉** = SPI 模式配置正确(初版"下拉可疑"疑虑已排除,见附录 A-9)。 #### U2 = RTL8305NBI-CG(QFN-48,5 端口 10/100 PHY 交换) @@ -210,6 +220,8 @@ flowchart LR **隔离拓扑总览**:对外 485/RS232 口与主数字地完全隔离——电源经 U4(隔离 DC-DC)跨界,TX/RX 经 U11/U9/U10(数字隔离器)跨界,DE/RE 经 U8(光耦)跨界,A/B 线 ESD 经 U12/D3-D6 钳位至 CGND。 +**STM32 侧引脚/AF(2026-09-20 数据手册 Table 9 复核,全部成立)**:RS485#4 = **UART5**(原文"USART5"更正:F407 无 USART5 外设;PC12 = UART5_TX(AF8)、PD2 = UART5_RX(AF8));RS232#1 = USART2(PD5/PD6,AF7);RS232#3 = UART4(PC10/PC11,AF5);DE = PD0(GPIO);调试口 = USART1(PA9/PA10,AF7);U5 直连第二路 = USART3(PB10/PB11,AF7)。 + #### U8 = FOC-817SC-F 光耦(RS485 DE/RE 隔离) - 手册已入库(`docs/芯片手册/光耦隔离芯片FOC-817SC-F.md`,佛山市国星光电):红外 LED+光电晶体管,V_ISO=5kVrms、CTR 50-600%@IF=5mA/VCE=5V、V_CE(sat)≤0.2V、BV_CEO≥80V、隔离电容 0.6-1pF。 @@ -279,9 +291,9 @@ flowchart LR - **Strapping(网表核实,工作模式锁定)**:1DIR(pin1)/2DIR(pin24) 经 4.7k(R38/R41)上拉 3.3V → DIR=H;1OE(pin48)/2OE(pin25) 经 4.7k(R39/R42)下拉 GND → OE=L。按手册功能表(nOE=L、nDIR=H:nBn 随 nAn),两字节均工作于 **A→B 单向直通、恒使能**(A 侧为输入、B 侧为输出,桥永久导通)。 - **逐脚核实(48 脚与手册全部吻合)**:12 电源脚(GND=4/10/15/21/28/34/39/45、VCC=7/18/31/42,取主 3.3V/GND 轨)✓;32 个 I/O 脚与 1A/2A/1B/2B 分配完全一致 ✓;4 控制脚(pin1/24=1DIR/2DIR、pin48/25=1OE/2OE)✓。 - **信号通路(A→B,三类)**: - 1. **子板→STM32(确定、有功能)**:EXTKI1/2/3(子板按键态,A 侧主动驱动:U5.C1/B16/A16→1A2/1A1/1A0)→1B2/1B1/1B0→ST_IN_E4/C3/D4→STM32 封装 pin3/2/1 = PC15/PC14/PC13(LQFP-144 标准编号,与 59 配置脚已证实的网表编号体系一致)。注意:网名为历史遗留(ST_IN_C3 实为 EXTKI2、ST_IN_D4 实为 EXTKI3、ST_IN_E4 实为 EXTKI1)——这 3 线实为**子板 EXTKI 按键信号经收发器传入 STM32**,电平由子板按键状态决定;V0.0 代码尚未读 PC13/14/15(无 EXTKI 处理)——硬件通路完整,待固件启用。 - 2. **STM32→子板(悬空、不定,B3)**:H16/V15/J3/F3/R16(1A3~7←U17.79/80/81/82/85)+ K3/DQM0/WAIT1/DQM1/RAS/SDCKE(2A0/3~7←U17.86/96/97/98/99/109)共 **11 线均为未配置高阻引脚** → 所驱动子板输出 11 线(RUN_LED/TRIP_LED/ERT_LED/CLZ_LED、RELAY_STO、HT_A23/HT_A26/HT_C25/HT_C26/HT_C27、EXTKO3)**电平不定** → 子板 LED/继电器/告警状态不可预测。 - 3. **SPI 线耦合到子板(布线副作用)**:2A1/2A2 = SPI1 MISO/MOSI(U17.77/78,活动信号,与 NAND 共用)→ 子板 EXTKO1/EXTKO2——NAND 侧 SPI 流量会调制子板这 2 线,若子板将其作通用输出将受扰(代码无法解决,V0.1 需改线或确认子板未使用)。 + 1. **子板→STM32(确定、有功能)**:EXTKI1/2/3(子板按键态,A 侧主动驱动:U5.C1/B16/A16→1A2/1A1/1A0)→1B2/1B1/1B0→ST_IN_E4/C3/D4→STM32 封装 pin 1/2/3 = **PE2/PE3/PE4**(2026-09-20 数据手册复核更正:原文误作 PC15/PC14/PC13,附录 C-C4)。注意:网名为历史遗留(ST_IN_C3 实为 EXTKI2、ST_IN_D4 实为 EXTKI3、ST_IN_E4 实为 EXTKI1)——这 3 线实为**子板 EXTKI 按键信号经收发器传入 STM32**,电平由子板按键状态决定;V0.0 代码尚未读 PE2/3/4(无 EXTKI 处理)——硬件通路完整,待固件启用(**须配 PE2/PE3/PE4,勿配 PC13/14/15**——那三脚在 V0.1 已被子板 LED 线 V15/J3/F3 占用)。 + 2. **STM32→子板(悬空、不定,B3)**:H16/V15/J3/F3/R16(1A3~7←U17.79/80/81/82/85 = PD10/PD11/PD12/PD13/PD14)+ K3/DQM0/WAIT1/DQM1/RAS/SDCKE(2A0/3~7←U17.86/96/97/98/99/109 = PD15/PC6/PC7/PC8/PC9/**PA14**)共 **11 线均为未配置高阻引脚** → 所驱动子板输出 11 线(RUN_LED/TRIP_LED/ERT_LED/CLZ_LED、RELAY_STO、HT_A23/HT_A26/HT_C25/HT_C26/HT_C27、EXTKO3)**电平不定** → 子板 LED/继电器/告警状态不可预测。⚠ **SDCKE 占用 109 = PA14(SWD 的 SWCLK 专用脚)**,而 SWCLK 头网线接在 104 = PA12(无 JTAG 功能)——**两线脚位互换,即 B4 的成因**(§3.1/B4;V0.1 已全部理顺:SWCLK→109、SDCKE→28)。 + 3. **"SPI 线"耦合到子板(2026-09-20 更正:非 SPI 流量)**:2A1/2A2 = "SPI1 MISO/MOSI" 网名(U17.77/78 = **PD8/PD9**)→ 子板 EXTKO1/EXTKO2——**更正**:PD8/PD9 无 SPI1 的 AF(F407 SPI1_MOSI/MISO 仅 PA7/PB5/PC12,PB5 已用于 NAND 的 SPI1,同一 SPI1 外设不能同时落两组引脚),代码从未配置此二脚 → 实为**未配置悬空线**,原文"NAND 侧 SPI 流量会调制子板这 2 线"**不成立**(无驱动源);风险与 11 线同类(合计 13 条悬空线,代码配安全电平即可),**无需 V0.1 改线**(附录 C-C6)。 #### U14 = RJ45(C2836689)多用途数据连接器 @@ -310,7 +322,7 @@ flowchart LR | VDDA | C77/C78(L6 后) | 模拟电源 | ✓ | | TPAFE 参考 | C37(REFCAPA/B 短接), C39(REFIN), C41/42(REGCAP) | 内部基准 | ✓ 完整 | | RS232 泵电容 | C68-C71(0603) | TPT3232E 电荷泵(C1:1-3、C2:4-5、V+:2→GND、V-:6→GND) | C1/C2/V- 与手册一致;V+ 储能接 GND(手册典型电路接 VCC,稳态等价);值网表未标,实板对照手册 Table 1 核 | -| ADC 输入前端 | 15×(1k 串联 + 1k 到 AIN_nGND + 滤波 C) | 源阻抗匹配(手册推荐做法,非分压) | ✓ | +| ADC 输入前端 | 15×(1k 串联 + 1k 到 AIN_nGND + 滤波 C) | 源阻抗匹配(手册推荐做法,非分压)✓;**2026-09-20 数据手册复核新增**:STM32 侧 9 路中 ADC9~16 → PA0~PA7(IN0~IN7)✓,**ADC17(V_ZL2)→ U17.46 = PB0,非 ADC 输入脚(F407 ADC 输入仅 PA0~7/PC0~7)→ 该通道电气上无效(B5,潜伏缺陷);V0.1 改 44 = PC4 = IN12 修复** | ⚠ **B5** | | 上拉/下拉 | R40(NRST), R29(REFSEL), R43(GD_CS), R35(DE/RE), R22(PAR/SER), R6(DIS_EEE), R24(FIRSTDATA), R4(TXD 下拉), R44/50/53(KEY1-3), R36/37/39/54-58(strapping/LED) | strapping + 默认态 | ✓ | | 4.7k×5 | R24(U3 FRSTDATA 上拉) + R38/R41(U18.1/24=1DIR/2DIR 上拉 3.3V) + R39/R42(U18.48/25=1OE/2OE 下拉 GND) | ADC 首数据线默认态 + 桥片模式锁定(A→B 单向、恒使能) | ✓ 已按手册功能表核实 | | LED 限流 | R1/7/8(470Ω), R59-R64(1k), R33 | 指示 LED | ✓ | @@ -323,8 +335,8 @@ flowchart LR 1. U1.28 直流(应 ≈0V:5.1k 下拉,SPI 模式配置脚;异常时才需排查) 2. U3.11 直流(0V?= ADC 复位电路正常;3.3V = ADC 静默死亡) 3. C3.3V 轨(U4 隔离电源输出,应 ≈3.2-3.3V)/ G3.3V 轨 / AVDDL(1.0V) / 3.3V 主轨 / 5V 轨 直流;DIR4 静态电平(空闲应 ≈0.1-0.3V = 接收态;恒 3.3V = 光耦 LED 侧异常,恒 0V = 上拉异常)+ U8.1(LED 阳极,PD0 拉低时应 ≈2.1V) -4. U17.23/24 8MHz 波形;U17.25 静止 3.3V、按 SW1 时 0V(关闭 §3.3-3) -5. U17.73 (PB12/CS) 通信时翻转(关闭 §3.3-3) +4. ~~U17.23/24 8MHz 波形;U17.25 静止 3.3V、按 SW1 时 0V(关闭 §3.3-3)~~ —— **已由数据手册证据关闭(2026-09-20:23/24 = PH0/PH1、25 = NRST,DS8626 Table 7),无需实测** +5. ~~U17.73 (PB12/CS) 通信时翻转(关闭 §3.3-3)~~ —— **已由数据手册证据关闭(2026-09-20:73 = PB12)** 6. AIN1 注入 1V 直流 → UI ADC1 值变化 + U3.14 BUSY 脉冲(**首次功能级 ADC 验证**) 7. RS485 A/B 环回:发送→回显(**首次功能级 RS485 验证**) 8. CN1 RS232/RS485 环回(经子板) @@ -334,7 +346,7 @@ flowchart LR - 开机自检加功能级断言:ADC 注入-读回校验(利用 FRSTDATA/BUSY 握手)、RS485 回环校验(DE 拉高自发自收)、CH395F PHY 寄存器读回(确认 SPI 模式 + 100M link) - `verify_log.ps1` 增加对应 Required 标记(`ADC selftest: OK` / `RS485 loop: OK` / `PHY: 100M FULL`) -- U18 桥:代码配置 11 个 A 侧 GPIO(H16/V15/J3/F3/R16/K3/DQM0/WAIT1/DQM1/RAS/SDCKE)为安全默认电平(LED 灭/继电器断/告警静默)并加读回断言,同时启用 PC13/14/15(EXTKI×3)按键读取(解决 B3①,无需改硬件) +- U18 桥:代码配置 13 个 A 侧 GPIO(H16/V15/J3/F3/R16/K3/DQM0/WAIT1/DQM1/RAS/SDCKE + SPI1_SIMO/SOMI 2 线)为安全默认电平(LED 灭/继电器断/告警静默)并加读回断言,同时启用 **PE2/PE3/PE4(脚 1/2/3,EXTKI×3)** 按键读取(2026-09-20 更正:原文误作 PC13/14/15,附录 C-C4;解决 B3①,无需改硬件) ### 5.3 V0.1 改版清单 @@ -342,14 +354,14 @@ flowchart LR - RTL8305 V33IN 串联肖特基(BAT54/SS34)+ MDC/MDIO(B1) - 3.3V 主轨改 buck + 5V 调试排针 + TVS(B2,顺带并掉 G3.3V 双轨偏移) -- U18 2A1/2A2→EXTKO1/2 的 SPI 耦合布线改线(或确认子板未用该 2 线)(B3②) +- ~~U18 2A1/2A2→EXTKO1/2 的 SPI 耦合布线改线(或确认子板未用该 2 线)(B3②)~~ —— **2026-09-20 更正撤销:该 2 线(PD8/PD9)无 SPI1 AF 且代码未配置,实为悬空线,"SPI 耦合"不成立,无需改线**(附录 C-C6) - T1 远端对地旁路;D1/D2 去焊盘;U4 焊盘更换(A1/A2) - 若 U8 CTR 分档核实为档 L:R35 1.5k → 10k(提高高温低电平裕量) - TPAFE RESET 改 GPIO 控制(获得软复位) **代码项(可先做,不依赖改版)**: -- U18 桥:配置 11 个 GPIO 安全默认电平 + 启用 PC13/14/15 EXTKI 读取(解决 B3①) +- U18 桥:配置 13 个 GPIO 安全默认电平 + 启用 **PE2/PE3/PE4** EXTKI 读取(2026-09-20 更正:原文误作 PC13/14/15,附录 C-C4;解决 B3①) - 开机功能级断言:ADC/RS485/CH395F(§5.2) **文档/网表项**: @@ -366,7 +378,7 @@ flowchart LR 1. 跑 §5.1 测量清单(电源/风险项多已随分析澄清,重点转向功能验证:C3.3V 隔离输出、U3.11 确认、RS485/RS232 环回); 2. 代码落地 §5.2 功能级断言 + U18 桥 11 个 GPIO 配置(解决 B3、消除静默死亡盲区,无需改板,可先做); -3. 补齐 2 份手册(H1102NLT / HR911105A)+ 实物抽查 3 脚(关闭 §3.3 全部待核项)。 +3. 补齐 2 份手册(H1102NLT / HR911105A)(引脚编号 3 脚抽查已由数据手册证据关闭,2026-09-20,附录 C-C2)。 完成这三步,V0.1 改版就没有未知数了。 @@ -405,3 +417,22 @@ flowchart LR | stm32f405rg.md / STM32F4xx参考手册_V18英文版_1-1000.md | U17(参考件) | > 未入库(待补,见 §3.3):T1(H1102NLT)、J1/J2(HR911105A)。 + +## 附录 C:数据手册复核矫正(2026-09-20,依据 DS8626 = `docs/芯片手册/stm32f405rg.md`) + +> 2026-09-20 用数据手册 Table 7(LQFP144 引脚定义)/ Table 9(AF 映射)对 U17 全部脚位复核,并与 `STM32F407-Demo.ioc`(59 配置脚)、`Inc/main.h` 交叉;用户实测反馈:**V0.0 实板 SWD 不通,飞线至 PA14 后调通**。逐条矫正如下(正文对应处已同步修改): + +| # | 位置 | 原判断 | 矫正 | 依据 | +|---|---|---|---|---| +| C-1 | §1.2/§4.1 | "封装引脚编号(NRST=25、HSE=23/24、PB12-15=73-76、VDDA=32/33)与常见数据手册图记忆不符" | **网表脚号 = 数据手册 LQFP144 脚号**,40 余脚逐一吻合(含 48=PB2/BOOT1、49=PF11 合并行);"不符"系初版作者记忆偏差 | DS8626 Table 7 逐脚 | +| C-2 | §3.3-3/§5.1/§6 | 实物抽查 3 脚(25=NRST、23/24=8MHz、73=PB12) | **由数据手册证据直接关闭,免实测**(25=NRST ✓、23/24=PH0/PH1 ✓、73=PB12 ✓) | DS8626 Table 7 | +| C-3 | §4.2 | "INT→PA0(pin4)" | pin4 = **PE5**(代码 `CH395_INT` = GPIOE PIN5 佐证) | DS8626 + main.h | +| C-4 | §2.2/§4.6/§5.2/§5.3 | "ST_IN 3 线 = PC15/PC14/PC13(pin3/2/1)"、"启用 PC13/14/15 读 EXTKI" | pin 1/2/3 = **PE2/PE3/PE4**(ST_IN_D4/C3/E4);EXTKI 读取须配 PE2/3/4(V0.1 中 PC13/14/15 已被 V15/J3/F3 子板 LED 线占用) | DS8626 Table 7 | +| C-5 | §2.2 | "存储:GD5F2GQ5UE + SD 卡(FatFS)" | 两版网表均无 SDIO 引脚;FatFs 卷在 **SPI NAND** 上(`App/cfg_file_store_mcu.c`:"NAND 上 FatFS 文件 /config.ini")——"SD 卡"系误称 | 网表 + 代码 | +| C-6 | §1.3/§2.2/§3.1/§4.1/§4.6/§5.3 | "SPI1 MISO/MOSI(U17.77/78,活动信号,与 NAND 共用)→ 子板 EXTKO1/2 受 SPI 流量干扰;V0.1 需改线" | 77/78 = **PD8/PD9,无 SPI1 的 AF**(SPI1_MOSI/MISO 仅 PA7/PB5/PC12,PB5 已用于 NAND SPI1),代码从未配置 → 实为**未配置悬空线**,"SPI 流量干扰"不成立;无需改线,并入 B3 代码侧 13 线安全电平 | DS8626 Table 9 + .ioc | +| C-7 | §4.1 | "VDDA(pin32/33 经 L6)" | 精确化:32 = **VREF+**、33 = VDDA(均经 L6 → 3.3V,VREF+=VDDA 为标准接法 ✓);31 = VSSA → AGND ✓;6 = VBAT、143 = PDR_ON → 3.3V(片内 LDO 开启 ✓);71/106 = VCAP1/VCAP2 → C94/C79 → GND(**值未标注,手册要求 1~4.7µF 低 ESR,待核**) | DS8626 Table 7 + 网表 | +| C-8 | 新增 **B4** | ——(初版未发现) | **SWD 的 SWCLK 接 104 = PA12(无 JTAG 功能)→ V0.0 实板 SWD 不通**(实测:实板无法调试,飞线至 PA14 调通);同因 SDCKE 占 109 = PA14(两线脚位互换);V0.1 已修复(SWCLK→109 = PA14、SDCKE→28 = PC2) | DS8626 Table 7/9 + 用户实测 | +| C-9 | 新增 **B5** | ——(初版未发现) | **ADC17(V_ZL2)接 46 = PB0,非 ADC 输入脚**(F407 ADC 输入仅 PA0~7/PC0~7)→ 该通道电气上死(潜伏,代码未读);V0.1 改 44 = PC4 = ADC12_IN12 修复(代码实现用 `ADC_CHANNEL_12`) | DS8626(ADC 通道表见 RM0090)+ 网表 | +| C-10 | §2.2 | "RS485(USART5→U11…)" | F407 无 USART5 外设;V0.0 的 RS485#4 实挂 **UART5**(PC12 = UART5_TX / PD2 = UART5_RX,AF8)✓;完整外设对应:RS232#1 = USART2(PD5/6)、RS232#3 = UART4(PC10/11)、RS485#4 = UART5(PC12/PD2)、调试 = USART1(PA9/10)、U5 直连 = USART1+USART3(PB10/11) | DS8626 Table 9 + .ioc | + +> 配套文档:V0.1 侧的完整逐脚核对见 `V0.1_网表详细分析报告.md` §11(含 V0.1 换脚 30 网的全部 AF/GPIO/ADC/SWD 判定与 V7~V9 新增关注项)。