KSZ8863RLLI 是一款集成 3 端口(2PHY + 1 MAC)的交换机芯片,与 STM32F407 连接时,通常利用其 Port 3 (MAC3) 配置为 RMII 模式,将 STM32 的 MAC 层与交换芯片对接。以下是硬件设计的关键接口与电源方案。
🔌 核心硬件接口(RMII)
STM32F407 内置以太网 MAC,与 KSZ8863 的 RMII 接口引脚对应关系如下(推荐使用 50MHz 有源晶振给 KSZ8863 提供时钟):
| #### ✅ STM32F407 与 KSZ8863 (Port 3) RMII 引脚对应表 |
时钟方案选择:
推荐 :使用 50MHz 有源晶振 直接供给 KSZ8863 的 X1 引脚(Pin 14),同时将 KSZ8863 配置为 RMII MAC 模式,REF_CLK 由芯片内部产生供给 STM32。
若使用 25MHz 晶振,需确保 KSZ8863 能正确输出 50MHz 的 REFCLKO_3(Pin 26)给 STM32,配置较为复杂,易导致时钟不同步。
⚡ 电源架构与去耦
KSZ8863RLLI 需要多路电源供电,设计时需特别注意 LDO 的布局:
| 电源网络 | 芯片引脚 | 电压 | 来源与处理 |
|---|---|---|---|
| VDDIO | 22, 40 | 3.3V | 直接接 STM32 的 3.3V 电源,作为 I/O 电平(与 STM32 通信) |
| VDDA_3.3 | 5 | 3.3V | 模拟电源,建议通过 **磁珠 (Ferrite Bead)** 从 3.3V 隔离后接入 |
| VDDA_1.8 | 7 | 1.8V | 内部 LDO 输出 ,仅用于内部滤波 ,严禁外接负载 |
| VDDC / VDDCO | 32, 42 | 1.8V | 数字核心电源,由内部 LDO 从 VDDCO 生成,需外接 10μF+0.1μF 去耦 |
电源设计要点:
-
1.8V LDO 处理 :KSZ8863 内部集成了 1.8V LDO(为 VDDC 供电),你只需在 VDDCO (Pin 42) 和 VDDC (Pin 32) 引脚附近放置 10μF + 0.1μF 的去耦电容即可,不要从 VDDA_1.8 (Pin 7) 引脚向外供电。
-
模拟电源隔离:VDDA_3.3 (Pin 5) 是模拟收发器电源,建议通过磁珠(如 600Ω@100MHz)从数字 3.3V 电源隔离,并在靠近引脚处放置 0.1μF 电容,以降低噪声。
⚠️ 关键配置引脚(上电 Strapping)
KSZ8863 的部分引脚在上电复位时会读取电平状态(Strapping)来确定工作模式,必须通过上下拉电阻固定这些引脚,否则可能导致 RMII 接口无法识别:
| KSZ8863 引脚 | 引脚名 | 推荐接法 | 功能说明 |
|---|---|---|---|
| 17 | SMTXD33/EN_REFCLKO_3 | **上拉 (10kΩ)** | 使能 Port3 REFCLK 输出(若 STM32 用外部时钟则下拉) |
| 18 | SMTXD32 | **下拉 (10kΩ)** | 选择 X1 输入为 50MHz 时钟源(配合有源晶振) |
| 26 | SMRXD33/REFCLKO_3 | 视情况 | 若用作 50MHz 时钟输出给 STM32,需配置为输出模式 |
硬件检查清单:
-
\] 确认使用 **50MHz** 时钟源(有源晶振)接 KSZ8863 X1 (Pin 14)。
-
\] 确认 KSZ8863 的 Pin 17/18 已按上述要求接好上下拉电阻。
🛠️ STM32 CubeMX 配置
在 STM32CubeMX 中配置 ETH 外设时,请遵循以下步骤:
-
引脚复用 :在 Pinout 视图启用 ETH ,模式选择 RMII。软件会自动分配 PA1, PA2, PA7, PC1, PC4, PC5, PG11, PG13, PG14 等引脚。
-
时钟树 :确保系统主频(通常 168MHz)正确,且 ETH 时钟显示为 50.00 MHz(由外部 KSZ8863 提供)。
-
PHY 参数 :在 ETH 参数设置中,PHY 地址填写 3(对应 KSZ8863 的 MAC3),并选择正确的 PHY 型号(或通用 100M PHY)。
避坑提示 :最常见的错误是 时钟方案不匹配 (如 KSZ8863 输入 25MHz 但未正确输出 50MHz,或 STM32 误配置为输出时钟)。坚持使用 50MHz 有源晶振 可大幅降低调试难度。