RTL8367S五口千兆交换机原理图设计与MDI端接避坑

发布时间:2026/11/3 7:39:44
RTL8367S五口千兆交换机原理图设计与MDI端接避坑

简介:面向网络硬件工程师与嵌入式开发者的RTL8367S五口交换机参考原理图,聚焦千兆交换方案的电路实现,可用于产品预研、原理图评审或教学拆解。压缩包内共1个PDF文件,约118KB,以单页原理图形式集中呈现MDI差分对、MDI/GPIO复用引脚、复位与时钟、SPI Flash、电源树及LED指示等关键电路,便于对照芯片手册梳理信号走向与外围器件选型。已有801人学习下载,可见这份参考设计在同类方案中有一定查阅价值。读者可从中获取RTL8367S各端口MDI走线定义、上下拉与匹配电阻配置、1.1V与3.3V供电分配,以及Web管理、VLAN隔离、标准交换与Uplink等应用模式的硬件接口线索,适合作为五口千兆交换机自主设计时的起步蓝本与排错参照。

1. 五个 RJ45、一颗 RTL8367S、一块四层板,真正让人返工的从来不是主控

五个 RJ45 口、一颗 RTL8367S、一块四层板,看起来是入门级硬件题,但第一版交换机原理图被打回来重画,八成不是主控没连对,而是 MDI 那 4 对差分线、那个 2.49k 的参考电阻、那条 1.1V 的开关电源走线。这份 5 口交换机参考原理图要解决的,就是把「芯片能跑起来」和「板子能过测试」之间那段没人写进数据手册的距离补上:五路千兆 MDI、三档拨码(标准交换 / VLAN 隔离 / Web 管理)、SPI Flash 配置加载、串行 LED 指示,以及配套的电源树和端接网络。

它适合两类人:正在做网络设备方向毕设或课设、需要一份能直接对照布线的完整参考的学生;以及要在一周内出一版 5 口千兆板、又不想在变压器端接上踩第二次坑的硬件工程师。后面的内容按「需求边界 → 总体电路 → 关键实现 → 避坑 → 验收」走,每一步都落到能抄的位号和参数上。

2. 需求与选型:5 口千兆、三档拨码与 RTL8367S 的引脚预算

选型这件事,顺序错了后面全是返工。我的习惯是先定「这块板到底要卖成什么形态」,再倒推芯片要引出多少引脚,最后才看电源怎么切。RTL8367S 这类五口千兆交换芯片的价值不在于端口数,而在于它把 PHY、交换引擎、8051 管理核和一路开关稳压全塞进了一颗 QFN,外围只需要变压器、Flash、晶振和一堆去耦。省下来的板面积,正好用来做拨码和 LED。

2.1 先把功能边界钉死:三档拨码对应三种产品形态

原理图里 MODE0、MODE1、MODE2 三个引脚接拨码开关,旁边标了三档:① 标准交换、② VLAN 隔离、③ Web 管理。这不是随手加的装饰,它决定了 BOM 和固件策略。

标准交换档是纯即插即用:五个口同属一个广播域,芯片内部 8051 被 GPO44(DIS_8051)关掉,功耗和发热最低,适合做最便宜的桌面型。VLAN 隔离档是这台机器最实用的形态:每个下行口单独一个 VLAN,只有 Uplink 口能和所有人通,典型场景是出租屋、小型办公、监控汇聚——五个摄像头插上去互相看不见,但都能被上联的录像机访问。Web 管理档把 8051 打开,内部跑一个轻量 HTTP 服务,从任意口访问管理地址就能改 VLAN、端口限速、看端口状态。

三档的实现差别只在「配置从哪来」:标准档走芯片默认寄存器;隔离档靠 Flash 里的一段固定配置在自动加载阶段写进去;Web 档则由 8051 在运行时改表。所以原理图上必须留出 DIS_8051、DISAUTOLOAD、EN_SPIF 这三个控制脚,它们是三种形态的物理开关,不是可选项。

提示:拨码开关的公共端接地、另一端上拉到 3.3V,中间串 1k 限流。模式脚在上电复位瞬间采样,拨码动作必须在复位释放前完成,靠软件轮询是来不及的。

2.2 引脚预算:五组 MDI、十二个复用 GPIO 与二十个专用 GPIO

RTL8367S 的引脚分三堆。第一堆是 P0~P4 五组 MDI,每组 A/B/C/D 四对差分,共 40 根线,全部经变压器进 RJ45。第二堆是 GPIO01~GPIO12,这十二个脚是三套功能复用在一起:RG2(RGMII 接 CPU)、M2M(MAC to MAC)、M2P(MAC to PHY),再叠加 UART 和 SPIF。第三堆是 GPIO39~GPIO57,基本是专用功能,包括 LED、SMI、复位和几个使能脚。

做纯 5 口交换机时,第二堆全部空着,只把 GPIO01/GPIO02 当 UART 调试口用;做「5+1 上行」时,把 GPIO01~GPIO06 切到 RGMII 接 CPU 或光模块,GPIO07~GPIO12 留着。这个取舍在画原理图阶段就要定死,因为一旦切了 RGMII,P3/P4 的 MDI 就不能再用——它们和扩展接口共用引脚,这也是为什么原理图上 P3/P4 的 MDI 标注会单独成组。

我一般会画一张引脚预算表贴在原理图第一页,避免后面改一处忘一处:

引脚主功能复用本设计用法
GPIO01/02RG2_TXD3 / TXD2M2M_TXD3、UART_RX/TXUART 调试口
GPIO03~06RG2_TXD1/TXD0/TXCTL/TXCLKM2M_TX*、SPIF_CLK悬空,预留 RGMII
GPIO07~12RG2_RXCLK/RXCTL/RXD0~RXD3M2M_RX*、SPIF_CS/D1悬空,预留 RGMII
GPIO54/55SCK/MDC、SDA/MDIO—SMI 管理总线
GPIO39LAN4LED0EEPROM_MOD配置源选择
GPO43LAN3LED0EN_SPIFFlash 使能
GPO44LAN2LED0DIS_8051关闭管理核
GPO45LAN2LED1DISAUTOLOAD禁止自动加载
GPO52/51LAN0LED0/1LED_CK / LED_DA串行 LED 控制

表格里最容易被忽略的是最后一列——LED 脚同时是配置脚。GPO39 既要点灯又要选 EEPROM,意味着上电瞬间它是输入,运行起来才变成输出,电路上必须让 LED 的限流电阻不影响上电采样电平。

2.3 电源域:3.3V 单入 + 内部开关稳压出 1.1V

整块板只进一路 +3V3,剩下的电压由芯片自己产生。原理图上 HV_SWR、LX、SVDDH、SVDDLS、EN_SWR 这几个脚配一个 2.2μH 电感(L5)和一组 10μF + 0.1μF 输出电容,构成内部 buck,输出 +1V1 供给 DVDDL、AVDDL 和 PLLVDDL。这是这块板成本能压下来的关键——省掉一颗外部 DC-DC 和它的外围。

但省掉外部电源的代价是布板要求变高。LX 是开关节点,dv/dt 极高,走线必须短、必须远离 MDI 和晶振;SVDDH 是反馈采样脚,必须从输出电容的正端开尔文取,不能从电感后面随手拉一根。EN_SWR 接 3.3V 使能,通常串一个 10k 上拉加 0.1μF 延时,保证 3.3V 建立到 2.5V 以上才启动,避免低压锁定。

模拟域的划分同样要看清:AVDDH 是 MDI 发送驱动电源,共 8 路(AVDDH1~AVDDH8),每路配 0.1μF 就近去耦加 10μF 储能;AVDDL 是模拟低压域,共 5 路;PLLVDDL 单独一路,经磁珠(如 BLM21PG221SN1B)+ 10μF/0.1μF 供电,与数字地单点连接。原理图上这一片去耦电容总数超过 40 个,看着啰嗦,但少贴一个 PLL 的 0.1μF,表现就是千兆链路偶发 down,查一周都查不出来。

3. 总体电路设计:从 MDI 差分对到 SPI Flash 的六个模块

把原理图拆成模块看,这块板其实是六件事:MDI 与变压器、时钟与复位、配置加载、LED 与面板、SMI 管理总线、电源树。电源树上一节讲完了,SMI 放在第 4 章讲实现,这里重点说前四个——它们是决定「能不能亮灯、能不能通千兆」的部分。

3.1 MDI 与变压器:四对差分、两级中心抽头端接

千兆以太网走的是四对双向差分,每对都是 100Ω 差分阻抗、双向传输。原理图上 P0~P4 每组四个网络(MDI_A/B/C/D 的 P/N)进变压器,变压器出来再进 RJ45。这里有个容易搞混的点:端接分两级,位置完全不同。

第一级在 PHY 侧。RTL8367S 的 MDI 驱动器要求变压器 PHY 侧中心抽头接 AVDDH(3.3V),每对配一个 0.01μF/50V 旁路到地,作用是给发送驱动提供交流回流路径。原理图上 C69、C71、C73、C75 这四颗 0.01μF/50V 就是干这个的,必须紧贴变压器引脚。

第二级在线路侧,也就是常说的 Bob-Smith 端接。变压器线路侧的中心抽头经 75Ω 1% 电阻串 1nF/2kV 电容到机壳地,四对各自独立。原理图上 R78~R81 是四颗 75Ω/1%,C70、C72、C74、C76 是四颗 1nF/2000V,正好对应四对。这组网络的作用是把共模能量泄放到机壳,同时阻断 50Hz 工频和直流地环流。1nF 的耐压必须是 2kV 级别,用普通 50V 贴片电容替代,打静电测试时会直接击穿,连带把 PHY 打坏。

RJ45 侧另外要注意的是屏蔽壳和 LED。带集成变压器的 RJ45 座把磁性和连接器做在一起,省掉一段差分走线,但对 PCB 的要求反过来提高——连接器下方必须挖空,机壳地和信号地之间用 1nF/2kV 加 1MΩ 并联单点连接,不能直接短接。

注意:Bob-Smith 的 75Ω 电阻是 1% 精度,四颗必须同批次。用 5% 的常见值是 75Ω 但温漂大,表现是常温能通、高温跑流丢包。

3.2 时钟与复位:25MHz、MDIREF 与电压监控

时钟部分很干净:X1 是 25.00MHz 无源晶振,两端各配 22pF(C22、C23)到地,进 XTALI/XTALO。25MHz 是千兆 PHY 的标准参考,偏差超过 ±50ppm 会影响 RGMII 时序余量。晶振布局要求是:离芯片 10mm 以内、下方完整地平面、周围包地过孔、两根走线等长且不跨分割。

真正决定发送质量的是 MDIREF 那个脚上的电阻。原理图上 R48 是 2.49k/1%,从 MDIREF 接到地。这个电阻设定 MDI 驱动器的参考电流,直接决定发送差分幅度。它必须是 1% 精度、低温漂、短走线、不与其他信号并行。用 5% 的 2.49k,幅度偏差可能超过 15%,短网线一切正常,一上 80 米长线就出现 CRC 错包——这种问题在实验室永远复现不出来。

复位链路由 MAX811 类的电压监控芯片(U1)加 4.7k 上拉构成。它监控 3.3V,低于阈值时输出低电平,把 SW_NRST 拉住;3.3V 恢复后内部再延时约 200ms 才释放。手动复位按钮并在 MR 脚上,串 0.1μF 去抖。这里有个细节:复位释放必须晚于 1.1V 内部电源建立完成,否则芯片会在核心电压不足时开始读配置,读出来是乱码。原理图上复位输出到 SW_NRST 之间串的 4.7k(R19 一类)不是可有可无的,它限制了复位电容的放电电流。

3.3 配置加载链路:SPI Flash、EEPROM 与三个使能脚

这块板有两种配置源:SPI Flash 和 EEPROM。原理图上 W25Q16JVSNIQ(U10)是 2MB 的 SPI NOR,接 SPI_NSS、SPI_SCK、SPI_SD0、SPI_SD1 四根线——注意是 Dual SPI,只有两根数据线,不是标准 Quad。省下来的两根线留给别的功能。旁边还有一组 EEPROM 的接口网络(SDA/SCL 复用),由 GPIO39(EEPROM_MOD)选择走哪条路。

上电时序是这样的:芯片内部 ROM 先看 EEPROM_MOD 电平,决定配置源;然后看 DISAUTOLOAD(GPO45)是否为高,高了就完全跳过加载,直接跑寄存器默认值;最后看 EN_SPIF(GPO43)是否使能 Flash 访问。这三个脚组合出四种启动行为,调试阶段非常有用。

我一般会在板子上留一个三脚排针,把这几个使能脚引出来。理由很实际:一旦配置写错导致设备失联,拔掉跳线帽拉高 DISAUTOLOAD,芯片就以默认配置启动,还能通过 SMI 把 Flash 内容重写回去。没有这个「后悔药」,唯一的办法是拆 Flash 上编程器。EN_SPIF 还有个副作用——它同时是 LAN3 的 LED 脚,所以拉低使能 Flash 时那颗灯会常亮,别当成故障。

提示:DISAUTOLOAD 拉高后芯片不会读 Flash,但 SMI 仍然可用。救援流程就是「拉高 → 上电 → 通过 MDC/MDIO 重写配置 → 断电 → 拉低 → 再上电」。

3.4 LED 与面板:串行 LED 控制与拨码模式引脚

LED 部分用了串行控制方案:LED_CK(GPO52)和 LED_DA(GPO51)两根线驱动一串移位寄存器,把 LAN0~LAN4 每口两个灯的状态串出去。好处是省引脚——十个灯只用两根线;代价是不能随便改灯效,必须按芯片的串行协议来。

每口两个灯,通常一个绿一个黄:绿灯常亮表示 link up,闪烁表示有流量;黄灯表示 100M/1000M 速率区分。原理图上 LED 是低电平点亮(LED-A 接 3.3V 经限流电阻,LED-K 接芯片开漏输出),限流电阻按 4.7k 取值,对应约 0.5mA 的灌电流。这个值不能随便改小,因为 GPIO39~GPO52 这一组脚在上电阶段还兼作配置采样,阻值太小会把采样电平拉偏。

拨码开关占三个引脚(MODE0/1/2),每个脚上拉 4.7k、串 1k 到拨码。因为这三个脚上电时被采样,拨码开关的走线要远离 LX 开关节点和 MDI 差分对,长度控制在 30mm 内。面板布局上,拨码建议放在背面或者用沉板式,避免用户误碰——尤其 Web 管理档切回标准档时,配置会立即失效,现场很容易被当成设备坏了。

4. 关键实现:SMI 访问、VLAN 表项与固件烧录的落地写法

设计画完只是纸面,真正上手是四件事:怎么通过两线 SMI 摸到芯片内部、VLAN 表项怎么算、Flash 怎么烧、PCB 怎么约束。这四件事每一件都能单独让人卡两天,这里给能直接跑的最小实现。

4.1 SMI 通道:从 MDC/MDIO 到 PHY 寄存器的读写封装

MDC/MDIO 是标准的站管理接口,两根线:MDC 是时钟(最高约 25MHz),MDIO 是双向数据。原理图上 GPIO54 是 MDC、GPIO55 是 MDIO,SMI_SEL 选择这组脚的功能。如果板子接了 CPU,Linux 下通常能通过mdio-tool或者 ethtool 的--mii-*参数直接访问;如果是裸板调试,就得用外部 MCU 或专用编程器模拟时序。

下面这段是 Linux 下最常见的封装,把命令行工具包一层,方便批量读写:

# smi.py —— 通过 mdio-tool 访问 MDC/MDIO 总线上的 PHY 寄存器 import subprocess BUS = "eth0" # 承载 MDIO 总线的网口名,裸板用编程器时改成对应设备 def smi_write(phy, reg, val): """写 PHY 寄存器:phy 为 0~4(对应 P0~P4),reg/val 均为 16 位""" subprocess.run( ["mdio-tool", "w", BUS, hex(phy), hex(reg), hex(val)], check=True) def smi_read(phy, reg): """读 PHY 寄存器,返回整数""" out = subprocess.run( ["mdio-tool", "r", BUS, hex(phy), hex(reg)], check=True, capture_output=True, text=True) return int(out.stdout.strip(), 16) if __name__ == "__main__": for p in range(5): # 逐个探 P0~P4 id1 = smi_read(p, 0x02) # PHY ID1 id2 = smi_read(p, 0x03) # PHY ID2 bmsr = smi_read(p, 0x01) # 基本状态寄存器 link = bool(bmsr & 0x0004) # bit2 = Link Status print(f"P{p}: id={id1:04x}{id2:04x} link={link}")

这段代码的价值在于「一次探完五个口」。PHY 地址 0~4 对应芯片的五个端口,读寄存器 2、3 拿到 PHY ID,和手册里的值对照就能确认芯片是否正常上电、内部 ROM 是否跑起来——这是上电后第一件该做的事,比量电压还快。寄存器 1 的 bit2 是实时链路状态,插网线看它翻转,就能确认变压器和 MDI 走线没问题。

需要说明的是,RTL8367S 的扩展寄存器(LED 配置、VLAN 表、端口镜像)不在标准 0~31 号寄存器里,要通过页寄存器间接访问。具体页号和偏移以原厂手册为准,脚本里的读写函数不用改,只是 reg 参数换成「先写页、再读目标寄存器」的两步操作。

4.2 VLAN 表项:成员位图与 PVID 的计算

做 VLAN 隔离档时,最常见的错误是把「成员位图」和「untag 位图」搞反。芯片内部一张 VLAN 表,每条表项包含 VID、成员端口位图、非标签端口位图和 PVID 标记。位图的每一位对应一个物理口,P0 是 bit0、P4 是 bit4。手工算 5 个口的位图很容易错,我一般写个小工具算:

# vlan_member.py —— 生成 VLAN 表项的端口位图 def bitmap(ports): """ports: 端口号列表,返回整数位图""" m = 0 for p in ports: m |= 1 << p return m # 场景:Uplink 接 P4,5 个下行口各自隔离,只有 P4 能通所有人 uplink = 4 for vid in range(100, 105): # 每口一个 VLAN:100~104 down = vid - 100 # 下行口依次为 P0~P4 中的前四个 member = bitmap([down, uplink]) # 成员:本口 + 上行口 untag = bitmap([down, uplink]) # 两边都去标签,接的都是普通终端 print(f"VID={vid} member=0x{member:02x} untag=0x{untag:02x} pvid={vid}") # 上行口 P4 需要作为 tagged 出口承载全部 VLAN print(f"VID=all member=0x{bitmap([4]):02x} untag=0x00 tagged")

跑出来的结果能直接对着配置界面填。要点有三条:第一,下行口必须设 PVID 且 untag,因为接的是电脑、摄像头这类不认标签的设备;第二,上行口如果接的是另一台交换机,要 tagged 放行全部 VLAN,如果接的是路由器单口,就得改成 untag 的 access 模式;第三,VLAN 100~104 之外一定要留一个管理 VLAN,否则 Web 管理档切换后设备失去管理地址,只能靠 DISAUTOLOAD 救。

隔离档还需要一条隐含规则:同一 VLAN 内端口之间不能互转,这叫端口隔离或私有 VLAN。实现上是在端口矩阵里把下行口之间的转发位清零,只保留「下行 → 上行」和「上行 → 下行」。这条规则如果不配,五个口虽然分属不同 VLAN,但广播包依然会通过上行口绕一圈回到别的口,隔离就不彻底。

4.3 配置烧录与自动加载验证

Flash 里存的是芯片的配置镜像,不是通用固件。烧录有两种方式:板上 SPI 头直接烧,或者通过 SMI 在线写。前者适合量产和首次调试,后者适合改一两个参数。

# 用外部 SPI 编程器烧录 2MB 配置镜像(W25Q16JV = 16Mbit = 2MB) flashrom -p ch341a_spi -c W25Q16JV -w rtl8367s_cfg.bin # 烧完必须校验,配置区一个字节错都可能导致加载失败 flashrom -p ch341a_spi -c W25Q16JV -v rtl8367s_cfg.bin # 读回前 256 字节确认配置头,头部一般带 magic 和长度字段 flashrom -p ch341a_spi -c W25Q16JV -r readback.bin xxd -l 256 readback.bin

参数说明:-p ch341a_spi指定编程器型号,换成板上 SPI 就用对应的内部编程器;-c必须显式指定芯片型号,自动探测在 2MB 的 NOR 上经常误判成 4MB 型号,写进去前半段对后半段全 0xFF;-v是校验,别省这一步。

烧完后的验证顺序是固定的:先拉高 DISAUTOLOAD 上电,确认芯片能起来、五个 PHY 都能被 SMI 读到,这一步排除硬件问题;再拉低 DISAUTOLOAD 上电,看配置是否生效(灯效、VLAN 隔离是否符合预期)。两步分开做,出了问题能立刻判断是「Flash 内容错」还是「板子本身错」。这一步的排查效率差距很大,很多板子被误判成硬件故障,其实就是配置头写坏了。

4.4 PCB 落地约束:差分、载流与散热的量化指标

原理图对了,PCB 走错一样通不了。下面这张表是我在千兆交换机板上固定会写在约束文件里的几条,直接抄进规则检查即可:

项目约束说明
MDI 差分阻抗100Ω ±10%四对同层走线,参考完整地平面
对内等长≤ 5mil差分对 P/N 长度差
对间间距≥ 30mil防止 A/B/C/D 之间串扰
差分到其他信号≥ 3WW 为线宽,且不跨分割
变压器下方全层挖空隔离一次侧与二次侧
晶振到芯片≤ 10mm包地过孔,下方不走线
1.1V 载流线≥ 30mil 或铺铜峰值电流按 1.2A 估
散热焊盘≥ 16 个 0.3mm 过孔连到内部地平面

几条经验值:MDI 走线不要走过孔,非过不可时一对线过孔数必须相同且相邻;RJ45 到变压器这一段走线尽量短于 25mm,长了就当差分对重新算阻抗;芯片底部的散热焊盘不要用十字花焊盘连接,直接满铺加过孔阵列,否则满载跑流十分钟外壳就烫手。

5. 避坑与排查:五个让板子起不来的高频问题

这一章全部是血泪经验,每一条都对应过我或者 A 同学真实返工的板子。写法统一按「现象 → 原因 → 解决」,遇到同类问题可以按顺序对号入座。

5.1 百兆能通,千兆死活协商不上

现象:插上网线,两端都显示 100M 全双工,强制千兆后直接 link down,或者链路上来了但大包全丢。

原因基本锁定在 MDI 的 C、D 两对上。百兆只用了 A、B 两对(1-2、3-6 线序),千兆四对全用。所以「百兆通千兆不通」几乎等价于「C 对或 D 对有开路、短路、接反、或者变压器那一路虚焊」。另一个常见原因是 MDIREF 的 2.49k 用了 5% 精度,四对幅度不一致,自协商阶段握手失败。

解决:先目视检查变压器的 C/D 两路焊点,再用万用表量 PHY 侧到变压器、变压器到 RJ45 的通断;确认 MDIREF 电阻是 1% 且阻值 2.49k;最后用 SMI 读每口的链路状态寄存器,看四对是不是都 up。如果只有一对不 up,问题就在那一对,不用怀疑芯片。

5.2 打静电或雷击测试后,PHY 直接损坏

现象:ESD 测试打完,对应端口的 PHY 读不到,或者读得到但发送异常,其他口正常。

原因是线侧中心抽头的 Bob-Smith 电容被换成了普通 0.1μF/50V。这个位置承受的是共模浪涌,正常工作电压接近 0,但瞬态电压能到上千伏。1nF/2kV 的电容在浪涌来临时阻抗低、能泄放能量;换成 50V 的普通贴片,第一次打就击穿短路,共模能量直接灌进 PHY 的发送驱动器。

解决:C70、C72、C74、C76 这一组必须是 1nF/2kV 的安规或高压瓷片,封装优先 1206 以上,位置紧贴变压器线路侧中心抽头,地线短而粗,直接连到机壳地而不是信号地。同一组里的 75Ω 电阻用 1% 厚膜,四颗同批次。

5.3 改完 VLAN 配置,设备彻底失联

现象:通过 Web 或 SMI 下发了一条 VLAN 配置,保存重启后再也连不上,插哪个口都没反应,灯还是亮的。

原因是配置里把管理口的 VLAN 一起删了,或者把 PVID 设成了一个没人认的 VID。芯片正常启动、正常加载配置,但管理通道被自己的配置切断,形成闭环死锁。改配置时如果不小心把「上行口 tagged 放行」也去掉,就更彻底——所有 VLAN 都出不去。

解决:硬件上留 DISAUTOLOAD 跳线,拉高后以默认配置启动,恢复出厂;软件上在配置区留一个「安全模式」标志位,连续三次上电检测到管理口无流量就自动回滚到上一版配置。事后补一条规则:任何 VLAN 变更都必须附带一个保留的管理 VLAN 且不可删除。

5.4 1.1V 纹波大,满载跑流偶发 down

现象:空载一切正常,五个口同时打流十分钟后某个口掉链,复位后恢复;示波器量 1.1V 能看到明显的开关纹波。

原因是内部 buck 的外围没按开关电源对待。LX 走线拉得太长、电感离芯片超过 10mm、SVDDH 反馈从电感后端随便取、输出电容只用了一颗 0.1μF 而没配 10μF。这些都会让环路不稳,负载一跳纹波就压不住,PHY 的模拟电路最先受影响。

解决:2.2μH 电感用屏蔽型,紧贴 LX 脚,走线短于 5mm 且加宽;SVDDH 从输出电容正端单独拉一根细线回来,不与负载电流共用;输出配 10μF + 0.1μF,10μF 靠电感、0.1μF 靠负载;LX 下方地平面挖空,防止开关噪声耦合进地。

5.5 上电偶发不启动,按一下复位就好

现象:插电源十次有两三次不亮灯,手动按复位按钮后一切正常,换电源、换网线都复现不了规律。

原因是复位时序。要么复位上拉电阻漏贴,SW_NRST 悬空;要么复位释放太早,1.1V 还没建立芯片就开始读配置;要么复位按钮没加去抖电容,手一碰就产生多次抖动。还有一种隐蔽情况:复位信号走线经过了 LX 或 MDI 附近,被耦合进毛刺。

解决:确认复位输出到 SW_NRST 之间有 4.7k 上拉和 0.1μF 到地,复位释放延时用示波器实测要晚于 1.1V 建立 100ms 以上;复位走线远离开关节点,长度控制在 20mm 内;如果用电压监控芯片,注意它的阈值要覆盖 3.3V 的 ±5% 波动范围,别选 3.0V 阈值的型号。

6. 验收与答辩:一张能照着走的测试表和三条讲清楚的线

板子亮了不算完,能拿出去讲、能被验收,靠的是一套有顺序的测试记录。我的习惯是从上电电流开始,逐级往上,每一级都有明确的判据,任何一级不过就停下来查,不往下走。

先做静态检查:3.3V 输入空载电流、1.1V 输出电压、各路 AVDDH 电压。判据是 1.1V 在 ±5% 内、纹波峰峰值小于 50mV、芯片表面温度在室温空载下不超过体温。然后做 SMI 扫描,五个 PHY 全部能读到 ID,这一步过了说明数字部分活着。

动态测试按这张表走,每一项都记数值,不是打勾:

测试项方法判据
自协商五口逐一接千兆对端全部协商到 1000M 全双工
吞吐iperf3 多流打流 60s单向 ≥ 940Mbps,无重传
长时间跑流五口同时打流 30min无 link down、无 CRC 错包
VLAN 隔离两下行口互 ping不通;各自 ping 上行口通
标准交换五口同网段互 ping全通,延迟 < 1ms
配置加载断电重启 20 次配置不丢,起动一致
温升满载 30min 红外测温芯片表面 < 70℃

打流用最简单的方式就行:

# 接收端 iperf3 -s -p 5201 # 发送端:4 条流跑 60 秒,看是否稳定在千兆线速 iperf3 -c 192.168.1.10 -p 5201 -t 60 -P 4 # 同时用大包 ping 观察延迟抖动 ping -s 1472 -c 200 192.168.1.10

答辩时老师或者评审最想听的是三条线,不是功能列表。第一条是选型线:为什么用这颗芯片而不是外挂 PHY 加交换芯片,答案在引脚预算和电源域——省掉外部 DC-DC 和一路 PHY,成本和板面积都下来了。第二条是信号线:从 MDI 差分阻抗讲到变压器两级端接,再讲到 MDIREF 那个 2.49k 为什么必须是 1%,这条线能讲清楚说明你真的懂千兆物理层。第三条是故障线:挑一个你实际踩过的坑,按现象、定位过程、根因、改法讲,比讲十个功能有用。

最容易翻车的是答辩时被问「你怎么证明它真的隔离了」。标准答法不是讲配置,是现场演示:两个下行口接两台电脑,互 ping 不通,但都能 ping 通上行口接的路由器,再抓一次广播包确认没有串。所以测试阶段一定要留这种可复现的现场演示方案。

从那以后我每次画完交换机的原理图,都会强制走一遍「先算引脚预算表、再量 MDIREF 电阻、最后留 DISAUTOLOAD 跳线」这三步,不管项目多赶都不跳。这套参考原理图里的位号和参数能省掉你从零推导的时间,但真正决定板子一次成功的,还是这几步没人愿意做的基础动作。希望帮到你。

本文还有配套的精品资源,点击获取