# Drivers/BSP/CH395F/ — CH395F 以太网控制器驱动 > CH395F 是 SPI 接口的 10/100M 以太网 MAC+PHY 控制器。本目录是其**底层寄存器级驱动**, > 上层的 BSD Socket 抽象见 `../NET/`。 ## 文件一览 | 文件 | 作用 | |---|---| | `ch395f.c/h` | SPI 命令收发、寄存器读写、芯片初始化、通道/中断管理 | ## 关键点 - **SPI 接口**:SPI2(PB12 CS / PB13 SCK / PB14 MISO / PB15 MOSI) - **每次 SPI 事务必须 `ch395f_spi_begin()` / `ch395f_spi_end()` 包裹** - **SPI 分频系数必须为 8**(PCB 信号完整性约束,**勿"优化"改快**) - 芯片最多 8 个 socket,本层用**事件中断 + 周期轮询**驱动 - PHY 强制 **100M 全双工**(`net_task` 中配置) ## ⚠️ 改本驱动前必读陷阱(Trap Records) | Trap | 问题 | 状态 | |---|---|---| | TC-NET-604 | "RX 窗口冻结" 判定为**非缺陷**(原报告系测试程序自吞数据 + 判读工具误判) | ✅ 结案 | | TRAP-NET-17 | **快速复连事件面未收到 → 监听静默死亡**(E14 复核:非芯片丢事件,是读清消费竞态);修复 = `net_reconcile_tick()` 周期对账自愈 | ✅ 已修 | | TRAP-NET-18 | **上传中止后首笔复连被静默截断(≤2048B)并误报成功**;修复 = 异常释放后复监听隔离排空 | ✅ 已修 | > 完整台账与复现配方见 `docs/问题记录/CH395F_Trap_Records.md`(**改驱动前必读**)。 ## 相关文档 - 测试指南:`docs/测试说明/板级测试/CH395F_Test_Guide.md` - 上层抽象:`../NET/README.md` - 台架探针:`MDK-ARM/tcp_reconnect_probe.py`、`test/host/ftp_abort_probe.py`