PCIE switch与device不link问题

时间:2024-04-03 12:42:47

PCIE链路在没有link之前TX会发送detect信号,当link之后就不再发送。

所以,首先使用示波器测量PCIE SWITCH和device的PCIE TX端,查看是否有detect信号发出,经多次测量没有抓到device的detect波形,能够抓到PCIE SWITCH的detect波形。

下图为PCIE SWITCH PCIE_TX发出的detect信号。

PCIE switch与device不link问题

由此可以判断device没有工作起来。后面开始测量device的上电时序,发现时序也都是符合要求的。

再测量他的晶振,晶振也能正常起振。

后面把焦点放到了PCIE_REFCLK上,使用单端探头测量PCIE_REFCLK信号发现其高电平在2V左右,而正常的PCIE_REFCLK信号单端信号高电平峰值应为1.15V。

PCIE switch与device不link问题

需要注意的是,本设计的PCIE_REFCLK是通过一个clock buffer芯片转出来的,分别给了device和PCIE SWITCH,为了验证是由于该clock buffer的输出clock信号导致的问题,我们把PCIE_REFCLK信号与clock buffer断开,从主板上直接把REFCLK信号飞线引到该板卡上。果然,奇迹出现了,PCIE LINK状态指示灯亮起来了,连接到PCIE SWITCH dango,使用PLX Device Editer查看确实已经link了。

由此断定是由于clock buffer输出的PCIE_REFCLK不满足要求,后来查阅clock buffer手册发现他的输出为HCSL电平,而PCIE_REFCLK是LVDS电平。那么为什么PCIE switch可以工作呢?那是因为PCIE switch的PEX_REFCLK是HCSL电平的。

为了解决电平不匹配的问题,按照clock buffer手册的说明,需要在EP2684与clock buffer之间增加分压网络,串阻33欧,到地100欧,经过测量可以正常link。

PCIE switch与device不link问题