
简介面向硬件工程师与千兆以太网交换设备设计者的88E6320/21 DB参考设计原理图文档聚焦QFN108封装单板在电源、芯片接口与端口配置上的设计参考。内容以PDF原理图页和顶层框图组织覆盖稳压器与POR芯片选型、5V/12V输入适配、88E6320芯片接口、EEPROM与时钟配置、P0-P3及P5/P6的RGMII接口、SerDes转光纤、复位与GPHY LED、集成磁性RJ45千兆铜口以及SMI USB/CPLD连接等模块便于对照核查关键网络与上电时序设计。包内共1个PDF文件约275KB轻量但信息集中。已有9469人学习适合用于交换板原理图评审、接口调试和参考设计比对时快速定位电源、复位、RGMII/SerDes及LED相关电路。1. 从两个名字挤在一个引脚上说起88E6320_DB 这份 18 页的 QFN108 参考原理图最别扭的地方不在电路本身而在引脚名P5_OUTD[0]/P5_MODE[0]、R0_LED/P0_LED0/LED_SEL[0]、EE_CLK/C0_LED/FLOW。一根线挂着三个身份看起来像画图的人偷懒实际上这是整份图纸最值得读的部分——一颗 108 脚的交换芯片要同时伺候 7 个端口、3 颗外置 PHY、2 个光口、1 颗 EEPROM 和一堆指示灯引脚根本不够分于是设计者把配置字藏进了上电瞬间的引脚电平里把指示灯做成了分时复用。搞懂这套“一根线打三份工”的机制比抄一遍电路有用得多它解释了为什么复位芯片不能省、为什么串阻会被换成 0Ω、为什么千兆能通百兆反而出问题。2.1 复位不是拉低再拉高POR 芯片补的是哪段时间很多板子第一次上电就出现难以解释的问题电压明明都到位芯片就是不肯工作反复断电再上电有时又能起来。翻这份图纸的版本历史REV 2.1 的第 2 条改动写着“POR Chip Added on Board”一颗 SOT-23 封装的复位监控器件被单独加了进来这件事本身就是一条血泪经验。原因在于 88E6320 这类带内部稳压器和 PLL 的芯片对上电顺序有隐性要求。板上的 3.3V、2.5V、1.8V 由不同 regulator 产生各自的软启动斜率、负载轻重都不一样谁先到、谁后到并不受控。如果用一颗电阻加电容做 RC 复位RESETn 的释放时间只跟 RC 常数有关跟电源轨有没有真正稳下来毫无关系——3.3V 爬到 2.6V 时 RC 可能已经放行芯片就在一个不完整的电源环境里开始采样配置采到什么算什么这就是“玄学”的来源。复位监控器件干的事很朴素监视一路输入电压低于门限就死死拉住 RESETn等电压越过门限后再延时一段常见几十到两百毫秒确认所有电源轨都进入稳态才松手。它把“电源好”和“复位释放”这两件事绑定成了因果关系而不是巧合。图纸里 RESETn 还接了 SW_RESETn 和按键最终汇到芯片的 RESETn 脚同时分发给三颗外置 PHY 的RESETn——这条扇出关系很关键后文排查章节会用到。提示复位监控器件的延时不是随便选的。延时太短EEPROM 还没准备好就被读延时太长上位机的 CPU 可能已经开始访问 SMI读到的是一颗还没就绪的芯片。2.2 引脚的双重身份P5_MODE 与 PHY 地址是怎么被“读”走的图纸第 3 页的芯片引脚表里P5_OUTD[0]/P5_MODE[0]、P5_OUTD[1]/P5_MODE[1]、P5_OUTD[2]/P5_MODE[2]、P5_OUTD[3]/P5_VDDOS[1]这几行是理解整个上电流程的钥匙。P5 端口的 RGMII 发送数据线在 RESETn 有效期间并不驱动数据而是被芯片当成输入去读取外部上下拉决定的电平——这几个电平拼起来决定了 P5 这个端口到底工作在 RGMII、GMII、MII 还是某种 PHY 模式以及 I/O 电压档位。同样的机制散布在整张图上P6 端口有P6_OUTD[0]/P6_MODE[0]到P6_OUTD[3]/P6_VDDOS[1]P0/P1 有P0_SMODE、P1_SMODE决定 SerDes 侧的 1000BASE-X 还是 SGMIIADDR[0]n到ADDR[4]n既参与 EEPROM 器件地址也参与 SMI 上 PHY 地址的分配LED_SEL[0]、LED_SEL[1]、NO_CPU则决定指示灯怎么显示。常见的实现思路是芯片内部有一组影子寄存器在复位释放的边沿把引脚电平整体锁存之后这些引脚立刻切回输出功能。这段窗口很短所以外部不能只靠引脚内部弱上下拉图纸上到处可见 4.7k 的电阻就是给这些采样脚一个确定的高低电平。以下这段伪代码只是把上述机制写成可读的形式真实的锁存发生在芯片内部外部软件看不到/* 示意上电采样窗口内把引脚电平锁进影子寄存器EEPROM 有效则覆盖 */ #define STRAP_P5_MODE (0x7u 0) /* P5_MODE[2:0]端口工作模式 */ #define STRAP_P6_MODE (0x7u 3) /* P6_MODE[2:0]同上 */ #define STRAP_PHY_ADDR (0x1Fu 6) /* ADDR[4:0]n 决定的 SMI 地址 */ static void latch_straps(void) { uint32_t raw read_pin_levels(); /* 仅在 RESETn 释放窗口内有效 */ cfg.p5_mode (raw 0) 0x7; cfg.p6_mode (raw 3) 0x7; cfg.phy_addr (raw 6) 0x1F; /* 多颗 PHY 靠这几位区分 */ cfg.src eeprom_valid() ? CFG_SRC_EEPROM : CFG_SRC_STRAP; }参数上要盯住两点。一是优先级板上挂了 4Kbit 的 2-wire EEPROM芯片复位后会先尝试从 EEPROM 加载一份完整配置加载成功就覆盖引脚采样得到的值加载失败才退回 strap 默认值——所以“EEPROM 焊歪了但板子还能起来”是正常现象只是配置变成了默认的那一套。二是采样脚的负载这些脚在别的时刻是 RGMII 数据线或 LED 驱动外接电路如果在这段时间强行灌电流采样结果就会翻车。2.3 EE_CLK/EE_DOUT 与 LED 的抢线加载完才轮到指示灯图纸第 5 页专门画了一节 “GPHY LED Indirect LED Access”把这件事说得很清楚。芯片上真正能驱动指示灯的引脚只有R0_LED/P0_LED0/LED_SEL[0]、R1_LED/P1_LED0/LED_SEL[1]、R2_LED/P3_LED0/NO_CPU、EE_CLK/C0_LED/FLOW、EE_DOUT/C1_LED/P4_LED0这几根而板上要指示的端口有 7 个每个端口还有 link、activity、speed 三种状态引脚数量差了一个数量级。解决办法是“间接访问”LED_SEL[0]、LED_SEL[1]两根选择线决定当前这一组 LED 引脚映射到哪个端口、哪几种状态芯片内部分时切换人眼看到的就是每个端口都在独立闪烁。这套机制在 EEPROM 加载阶段会让位——复位后EE_CLK、EE_DOUT先作为 2-wire 总线的时钟和数据线去读配置加载完成后才切换成 LED 驱动。如果 EEPROM 的走线上挂了过大的对地电容或者 LED 侧是低阻灌电流结构加载阶段就会出现时钟边沿变缓、数据采样错误表现出来就是“LED 亮着但配置没生效”。NO_CPU那根线则是给无 CPU 场景准备的板上没有主控时把这根脚拉到固定电平芯片就不等外部 CPU 通过 SMI 来配置直接用 EEPROM 里的内容和默认值自洽运行。这也解释了第 4 页为什么把MDC_CPU、MDIO_CPU和MDC_PHY、MDIO_PHY分开引出——一颗内部 GPHY 加三颗外置 PHY 挂在同一条 MDC/MDIO 上靠 PHY 地址区分CPU 侧那条总线可以接 CPLD 或者干脆不接。3. 电源树内部稳压器把外部电路砍掉了一半3.1 VOUT11/VOUT15 与 SEN为什么外部只需要电感和电容翻芯片引脚表VOUT11、VOUT11_SEN、VOUT15、VOUT15_SEN、VDD_CORE、VDD33_PLL、VDD33_IN这几组名字连在一起看就能读出电源架构芯片内部集成了开关稳压器VDD33_IN是输入VOUT11、VOUT15是两路输出的功率级引脚_SEN是反馈检测脚VDD_CORE是内核供电VDD33_PLL是 PLL 的模拟供电。外部只需要在 VOUT 脚旁边放功率电感和输出去耦把 SEN 就近接到负载点即可。这套设计动机很直接一颗 7 端口交换芯片的内核电流不小如果在板上用外部 DCDC 从 3.3V 降到 1.1V需要额外一颗控制器、一组功率管、一套补偿网络BOM 和面积都上去了。把稳压器搬进芯片代价是散热和布板要求变高——VOUT 脚到电感的回路必须短而宽SEN 必须从负载电容的末端采样而不是从输出脚采样否则反馈点看到的电压偏高实际加到内核的电压偏低轻则跑不满频重则间歇性复位。VDD33_PLL是另一条要单独说的线。PLL 对电源噪声极其敏感图纸里给它单独走了 3.3V 并从主 3.3V 上用磁珠或小电感隔离旁边配套 0.1uF 加 10uF。如果为了省事把 PLL 电源和数字 3.3V 直接短接数字开关噪声会串进 VCO表现出来是链路偶发误码、光口在温度变化时丢 link——这类故障最难查因为示波器上看电压纹波完全正常。3.2 P5/P6 I/O SEL 两比特一块板上同时跑 2.5V 和 3.3V图纸第 2 页的芯片接口部分明确标了P5 I/O SEL为0X时 1.8V10时 3.3V11时 2.5VP6 I/O SEL同理。这是分组供电的典型做法——同一颗芯片的不同端口组可以跑不同的 I/O 电压互不影响。这个设计解决的是现实里的混搭问题板上 P5 端口接外置 PHY那颗 PHY 的 RGMII 侧是 1.8V 或 2.5VP6 端口可能接到另一颗电平标准不同的器件。如果所有 I/O 只有一个电压域就必须加电平转换器多一颗芯片、多一段走线延时、多一处时序余量损失。分组之后只要在 strap 脚上给出对应电平芯片内部就把这一组的驱动级拉到相应电压。代价是约束变复杂了。P5_VDDOS[1]这类脚既是 I/O 电压选择又是数据线复用供电轨VDD_2.5V、VDD_3.3V必须和 strap 设置严格对应——设成 2.5V 却把 3.3V 灌上去或者反过来都会让 I/O 缓冲长期工作在超压或欠压状态。欠压不会立刻坏但驱动能力下降、边沿变缓RGMII 时序余量被吃掉最后表现为“实验室常温能跑一到高温就丢包”。电源域供给对象关键约束VDD_CORE由 VOUT11 产生交换内核SEN 从负载端采样回路短宽VDD_15内部 1.5V 域与 VOUT15 配套去耦就近VDD33_PLLPLL 模拟单独隔离磁珠加 0.1uF/10uFVDD_3.3V / VDD_2.5V各组 I/O 与外置 PHY必须与 I/O SEL strap 一致PHY_1.8V外置 PHY 的数字与模拟域与 PHY 的 DVDD/AVDD 分域对应3.3 5V/12V 双输入与稳压器替换REV 2.1 那行小字的分量版本历史第一条写着“Regulators replaced to support 5V and 12V Input”。这句话背后是一个很实际的工程判断参考板要拿给不同的人用有人手上只有 12V 适配器有人习惯 5V 供电如果板子只支持一种输入第一次上电就得先找电源。支持宽输入的常见做法是把前级换成宽压输入的降压器件或者在前级加一级预稳压把输入范围压到一个固定中间母线再分发给后面的 LDO 和 DCDC。这样做的收益是通用性代价是效率——12V 降到 5V 再降到 3.3V两级变换的损耗叠加板子上发热点增加。所以看这类参考设计时不能只看“支持 5V 和 12V”这个结论要看中间母线电压取在哪母线取高了后级 LDO 压差大、发热母线取低了前级在 5V 输入时可能进入压差不足的临界区输出跌落导致复位。对做二次开发的人来说结论是这颗芯片自身的电源架构内部稳压器加分组 I/O是可以直接沿用的前级输入部分必须按自己的供电环境重算尤其是输入电压范围、保持时间和上电斜率这三项直接决定复位监控器件的门限和延时怎么选。4. RGMII 与 SerDes两种物理出口的时序约束4.1 RGMII 的 2ns 偏斜PHY 内部延时和走线延时只能选一个图纸里 P2、P5、P6 三个端口都是 RGMII 接外置 88E1116RP0/P1 则是 SerDes 直出 SFP。RGMII 在千兆模式下是 125MHz 双沿采样、4 位数据一个时钟周期 8ns 里要传两位数据相对时钟的偏斜必须落在 1.5~2.0ns 附近留出来的建立保持余量通常只有几百皮秒。这个偏斜有两个来源二选一一是 PHY 内部加延时RGMII internal delay芯片在发送和接收路径上自己把时钟挪 2ns二是 PCB 上把时钟走线故意绕长用走线延时补。两种方式不能同时用——内部延时开了、走线又绕了 2ns总偏斜变成 4ns数据直接采错。外置 PHY 的CONFIG_0到CONFIG_3这几个脚就是干这个的它们在上电时被采样决定 PHY 的 RGMII 延时模式、是否使能内部延时、PHY 地址等。图纸第 6 页和第 9 页都画了这几个脚的上下拉网络。这里最容易翻车的地方是交换芯片侧也有自己的 RGMII 延时配置两边都以为自己该加延时结果时钟被挪了两次。常见的做法是只让一侧开内部延时另一侧设为直通具体让谁开取决于走线长度——短走线让 PHY 开长走线让 MAC 侧开。4.2 22Ω 换 0Ω串联端接在点对点链路上的收益与代价版本历史第四条“Series termination Resistor replaced with 0 Ohm on External PHY”。原设计在 RGMII 的时钟和数据线上串了 22Ω 左右的电阻后来换成了 0Ω。这个改动在外行看来是省成本实际是时序和信号完整性的权衡。串联端接的作用是阻尼抑制驱动端到负载端之间的反射和过冲。RGMII 的边沿很陡走线一旦超过一定长度、又没做阻抗控制源端匹配能明显改善波形。但 22Ω 串上去之后驱动器的输出阻抗加上这个电阻和传输线阻抗未必匹配边沿被拉缓上升时间变长等效地把数据有效窗口往里挤——本来只有几百皮秒的余量被一颗电阻吃掉一半千兆跑起来就开始随机丢包。换成 0Ω 的前提是走线短、参考平面完整、阻抗接近 50Ω靠 PHY 自身的驱动强度和 PCB 阻抗控制来保证波形。这个前提在参考板上成立端口到 PHY 的距离被刻意压得很短但如果有人把这块板当模板把 PHY 挪到板子另一头、走线拉长 10 厘米还照抄 0Ω翻车是必然的。稳妥的判断方式是先在 0Ω 位置留焊盘打样后用示波器在接收端看眼图边沿过冲严重就补回 22Ω窗口不够就去掉。4.3 SerDes 到 SFPAC 耦合、LC 滤波与 MOD-DEFP0/P1 两个端口走的是 1000BASE-X通过P0_S_TXP/TXN/RXP/RXN直接连到两个 SFP 笼子的金手指上。这里有几个不能省的外围发送和接收差分对上的 0.1uF 交流耦合电容、SFP 电源脚上的 1uH 电感加 10uF/0.1uF 组成的 LC 滤波、以及TX_DISABLE、TX_FAULT、LOS、MOD-DEF[0:2]这几根控制线的上拉。交流耦合电容的位置有讲究靠近发送端放让直流偏置由发送侧决定接收侧自己建立共模。放反了或者省掉两边 SerDes 的共模电平打架轻则链路不稳定重则长时间运行后接收端受损。SFP 电源脚的 LC 滤波常被当作“加着好看”而省略。实际上光模块内部有 CDR 和激光驱动器对电源纹波非常敏感交换芯片的开关噪声一旦通过 3.3V 串进去表现出来是光口在特定流量模式下丢包而 RJ45 侧完全正常——这种“只有光口出问题”的现象八成要先去看那几个电感和电容有没有虚焊。MOD-DEF[0:2]是 SFP 的 I2C 接口用来读模块的厂商信息、温度、光功率。图纸上这几根线都挂了 4.7k 到 10k 的上拉因为 SFP 笼子内部是开漏结构。少了上拉模块插上去链路可能能通但读不到任何诊断信息排查时会少掉一大半线索。5. 排查清单五个真实会遇到的现场5.1 上电与配置类三块表都对就是不启动现象3.3V、2.5V、1.8V 全部正常RESETn 也能测到高电平但 SMI 读不到任何 PHYLED 全灭或全亮。原因复位释放时刻早于 EEPROM 准备好或者复位监控器件的延时不够芯片在电源还没完全稳的时候就完成了配置采样采到一组非法组合。另一种情况是 EEPROM 加载失败后回退到 strap 默认值而默认值里的端口模式跟板上实际接线不匹配。解决用示波器同时抓 RESETn 和 3.3V 上升沿确认 RESETn 的释放点至少在电源进入稳态后几十毫秒。再抓EE_CLK、EE_DOUT看复位后有没有出现读时序——没有波形说明根本没去读检查 EEPROM 的地址脚和上拉有波形但数据不对检查总线上挂的负载是不是把边沿拉缓了。现象板子常温工作正常老化半小时后开始丢包重启又恢复。原因某个 I/O 组的SELstrap 与实际供电电压不匹配导致 I/O 缓冲长期工作在欠压状态驱动能力随温度下降RGMII 时序余量被吃光。解决逐组量VDD_2.5V、VDD_3.3V与对应SEL脚的电平是否一致再对照芯片手册的档位表确认编码。这一步不能靠猜0X、10、11三档的对应关系必须一个一个卡。5.2 链路与时序类百兆能通千兆不通现象接上百兆交换机一切正常接千兆就协商不上或者协商上了大量丢包。原因十有八九是 RGMII 的延时配置双开或双关。百兆模式下时钟只有 25MHz周期 40ns几百皮秒的偏斜完全无感千兆下周期缩到 8ns同样的偏斜直接让采样点落到数据跳变区。解决先确认 PHY 侧CONFIG脚设定的延时模式再看交换芯片侧对应端口的模式寄存器两边只允许一侧加内部延时。确认配置无误后再看走线用示波器在 PHY 接收端量时钟与数据的相对位置偏斜不在 1.5~2.0ns 区间就想办法用走线补。现象插上光模块RJ45 侧一切正常光口死活不 link。原因TX_DISABLE没有上拉或者极性接反模块一直处于关闭发送的状态也可能是交流耦合电容位置放错共模电平建立不起来。解决先量TX_DISABLE在上电后的电平确认模块处于使能状态再量发送差分对上的耦合电容是不是靠近发送端。用MOD-DEF的 I2C 读一次模块信息能读到说明供电和 I2C 没问题问题就在高速通道上。5.3 管理通道类MDIO 上挂四颗 PHY读出来地址全一样现象MDC/MDIO 总线上有四颗 PHY一颗内部 GPHY 加三颗外置扫描地址时发现几颗 PHY 的 ID 完全相同或者读某个地址时两颗同时响应、数据错乱。原因外置 PHY 的地址由CONFIG脚在上电时采样决定几颗 PHY 的地址脚接成了同一个组合。另一种情况是 MDIO 缺上拉总线在空闲时电平不定读回来的数据高位随机。解决对照图纸把每颗 PHY 的地址脚电平逐一核对确保地址互不相同MDIO 线上补 4.7k 上拉到对应 I/O 电压。地址冲突不会让链路完全不 work但会让管理软件读到错误的链路状态排查时误导性极强——这也是为什么这类问题最容易被当成“软件 bug”查上一整天。6. 参考设计真正值钱的地方是它把约束写在了明面上把这份图纸当模板改最容易犯的错是只抄连接关系不抄隐含约束。它真正有价值的部分不是“哪个脚接哪个脚”而是把几类平时藏在芯片手册角落里、出问题才会想起来的要求摆到了图面上复位必须等电源稳、I/O 电压必须和 strap 严格对应、RGMII 的延时只能由一侧提供、复用引脚在采样窗口内不能被外部电路干扰。改动类型具体项判断依据可以直接沿用内部稳压器外围、分组 I/O 供电结构、EEPROM 加载电路与芯片内部架构绑定改动收益低需要重算前级输入、复位监控门限与延时、去耦数量取决于自己的电源环境和上电斜率必须重新验证RGMII 串阻、走线长度、PHY 延时配置每一项都直接吃时序余量验证方法上我更信“抓波形”而不是“看能不能通”。上电阶段同时抓 RESETn、3.3V、EE_CLK确认时序关系链路阶段用 MDIO 遍历 0 到 31 号地址把每颗 PHY 的 ID 和状态寄存器打印出来确认地址不冲突、协商结果符合预期光口阶段读一次模块的诊断信息确认供电和 I2C 通路完好。这三步走完剩下的问题基本都能定位到具体网络。有一次我照着类似的参考设计改板把外置 PHY 挪到了板子另一侧走线从 3 厘米变成 12 厘米串阻位置照抄了 0Ω结果千兆跑十分钟必丢一次包百兆一切正常。查了整整两天最后是拿示波器在接收端对比时钟和数据的位置才看明白走线一长0Ω 省下来的那点边沿优势全被传输延时吃掉偏斜直接出了窗口。从那以后我每次改 RGMII 走线都会先把串阻焊盘留出来、把延时配置的四种组合都想一遍再打样不再相信“参考设计能跑我就能跑”。希望帮到你。本文还有配套的精品资源点击获取