Files
STM32F4-Base/Drivers/BSP/CH395F

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 问题 状态
Trap 21 TC-NET-604 "RX 窗口冻结" 判定为非缺陷(原报告系测试程序自吞数据 + 判读工具误判) ✅ 结案
Trap 22 快速复连丢 CONNECT/DISCONNECT 中断 → 监听静默死亡;修复 = net_reconcile_tick() 周期对账自愈 ✅ 已修
Trap 23 上传中止后首笔复连被静默截断(≤2048B)并误报成功;修复 = 异常释放后复监听隔离排空 ✅ 已修

完整台账与复现配方见 docs/问题记录/CH395F_Trap_Records.md(改驱动前必读)。

相关文档

  • 测试指南:docs/测试说明/CH395F_Test_Guide.md
  • 上层抽象:../NET/README.md
  • 台架探针:MDK-ARM/tcp_reconnect_probe.py、MDK-ARM/ftp_abort_probe.py