4. KSZ9031 引脚功能与硬件连接设计归纳总结
说实话,拿到 KSZ9031 的数据手册,一百多个引脚,头一篇就能把人看懵。我当年第一次接触这颗 PHY 的时候,也差点被密密麻麻的引脚名劝退。但你只要理清功能分组,这东西就没那么吓人了。
这一节,咱们就把它掰开揉碎了讲。核心就两件事:这个引脚是干什么的,以及它应该怎么连。跟我走一遍,你再画原理图就不会慌了。
4.1 电源与地:PHY 的“命脉”
KSZ9031 内部有数字核心和多个模拟域,所以供电不止一路。先看表:
| 电源轨 | 典型电压 | 主要用途 |
|---|---|---|
| VDDIO / VDDIO_LDO | 1.8V ~ 3.3V | RGMII 接口 I/O 电源,必须与 MAC 侧电平一致 |
| VDDA_1P2 | 1.2V | 内部模拟 PLL、SerDes、时钟缓冲 |
| VDDC_1P2 | 1.2V | 数字核心电源 |
| VDD_PHY | 3.3V | 普通 I/O、LED 驱动、MDIO/MDC 接口 |
建议所有电源引脚就近放 0.1μF 陶瓷电容 + 4.7μF 或 10μF 钽电容。别图省事全挤在一起,退耦效果会差很多。我一般会在每个电源引脚旁边都留一个 0402 的 0.1μF,距离不超过 2mm。
4.2 RGMII 接口:数据通路的主干
RGMII 一共就 12 根线,但每一根都必须认真对待。我列个关键引脚表:
| 信号名称 | 方向 | 说明 |
|---|---|---|
| TX_CLK / RX_CLK | MAC→PHY (TX) / PHY→MAC (RX) | 时钟频率 125MHz,DDR 双边沿采样 |
| TXD[3:0] / RXD[3:0] | MAC→PHY (TX) / PHY→MAC (RX) | 数据线,高字节(bit3)是控制信号 |
| TX_CTL / RX_CTL | MAC→PHY (TX) / PHY→MAC (RX) | 控制使能,上升沿=数据有效,下降沿=帧结束 |
| RXD[3] (特殊) | PHY→MAC | 同时表示 TX_CLK delay 的配置结果 |
这里有两个关键点:时钟相位关系 和 内部延迟(internal delay)。KSZ9031 支持内建 2.0ns 延时,你可以通过寄存器或 strapping 引脚来选择。我个人习惯直接开启内部 TX/RX 延时,省掉 PCB 上走蛇形线。但注意:不是每个 MAC 都兼容这个模式,做之前一定看 MAC 手册。
4.3 配置引脚:上电就定死
KSZ9031 有 8 个 strapping(上拉/下拉)引脚,上电时 PHY 会采样它们,然后锁定工作模式。常见配置:
- PHY_AD[2:0]:从设备地址,通常悬空或根据 MDIO 地址设置。我一般用 001b 对应地址 0x01,方便调试。
- CONFIG[3:0]:RGMII 时钟延迟、速率、双工模式。最常用的组合是 CONFIG[3:0] = 0100b,即 RGMII 1Gbps 全双工 + 内部 TX 延时开启。
- RX_DV / RXD[0]:用于配置回环模式或自动协商。一般默认拉低就好。
4.4 MDIO 总线:配寄存器的手
MDIO 只有两根线:MDC(时钟,MAC 提供)和 MDIO(数据,双向)。
- MDC 最大频率 2.5MHz(旧标准)或 12.5MHz(新标准)。KSZ9031 支持到 12.5MHz,但很多 MAC 只能跑 2.5MHz,所以按低的来。
- MDIO 需要上拉电阻(2.2kΩ ~ 4.7kΩ),因为它是开漏输出。
- 总线上可以挂多个 PHY,通过 PHY 地址区分。注意:地址不能冲突,否则 MDIO 读写会乱。
我记得有一次调试,MDIO 一直读到 0xFFFF,换颗 PHY 就能读到正确值。最后发现是 MDIO 引脚对地短路了——焊接时的锡渣残留。搞定后我养成了习惯:上电前先打一遍引脚对地阻抗。
4.5 LED 指示:调试的小帮手
KSZ9031 有 6 个 LED 引脚,但通常是 Link/Activity 和 Speed 三个指示灯。我建议你这样连:
LED0 —> 绿色:Link/Activity
LED1 —> 黄色:Speed (亮=1000M,灭=100M/10M)
LED2 —> 红色:Collision 或 Half/Full Duplex(可选)
LED 驱动是推挽输出,每路可灌 8mA,串个 330Ω 电阻接到 LED 正极,负极连 GND 就行。
4.6 时钟与复位:让 PHY 动起来
KSZ9031 需要外部提供 25MHz 参考时钟。有源晶振或主控芯片直接输出都能用。注意:
- 时钟精度要求 ±50ppm,推荐 ±25ppm 的贴片晶振。
- 复位引脚 RESET_N 是低有效。我习惯接一个 10kΩ 上拉到 3.3V,再加一个 0.1μF 电容到地,形成上电延时复位。
- 复位持续时间至少 10ms,有些 MCU 默认复位脉宽不够,需要用 GPIO 控制。
4.7 整体连接框架
下面这张图把 KSZ9031 和 MAC 之间的关键连线、时钟、配置、MDIO 都串起来了。你照着这个结构画,至少不会犯方向性错误。
4.8 布局布线要点(经验之谈)
硬件连接不止是原理图,PCB 布局更关键。我把自己踩过的坑总结成 5 条:
- RGMII 信号等长:TXD[3:0]、TX_CLK、TX_CTL 这 6 根走线长度差控制在 ±50mil 以内。RX 侧同理。别问为什么,问就是时序。
- 时钟离 PHY 越近越好:25MHz 晶振或输出尽量靠近 KSZ9031 的 XI 引脚,不要绕远路。我一般把晶振放在 PHY 背面,打过孔连接,效果还行。
- MDIO/MDC 单独走线:不要跟高速信号靠太近,容易耦合噪声。如果必须交叉,走垂直层。
- 回流地完整:所有 RGMII 信号下方都要有连续的地平面,不要被电源分割。
- 电源去耦就近放:每个电源引脚放一个 0.1μF,大电容可以集中放。别舍不得电容,一个板子也就多几毛钱成本。
📌 核心结论: KSZ9031 的硬件连接,说白了你只要搞定 4 个方面——电源、RGMII、MDIO、配置——剩下的都是套路。把本节内容吃透,再去看数据手册,你会发现每个引脚突然就都有意义了。