使用TI ds80pci402延长pcie信号,上位机台式机不能侦测到device,先给建议:
线缆是定制的。
ds80pci402测试现象
1 连接关系
1) PC:PCIE1.1主设备,重启时自动枚举PCIE设备
2) PCIE Adapter:一段连接PCIE延长线,另一端通过金手指与主机连接,具有负载均衡功能,负载均衡功能由ds80pci402实现,可通过拨码开关对预加重值和均衡值进行调节
3) PCIE Cable:Manufacture is one stop systems,and one stop systems use molex products.
4) device:PCIE1.1从设备,使用xilinx公司的XC7A100T-2FGG484C实现PCIE协议,使用TI公司的ds80pci402实现PCIE信号负载均衡
2 核心器件表
序号 |
器件名称 |
器件用途 |
位置 |
参考文档 |
1 |
XC7A100T-2FGG484C |
实现PCIE协议 |
device |
《ug475_7Series_Pkg_Pinout》 |
2 |
ds80pci402 |
实现负载均衡 |
PCIE Adapter/device |
《ds80pci402》 |
3 |
smt主连接器(75586-0011) |
Connect component on device and PCIE Adapter |
PCIE Adapter/device |
《PS-75586-001》 |
4 |
emi导向框(74540-0401) |
Connect component on device and PCIE Adapter |
PCIE Adapter/device |
《0745400401_IO_CONNECTORS》 |
5 |
CABLE-PCIe-x4-3M |
PCIE延长线 |
PCIE Cable |
|
3 现象
1) 信号眼图不理想
- 在device能够检测到pc发送的CLOCK信号,连接关系如下图蓝色箭头所示,眼图参见PCIE_CLOCK(100MHz).jpg。时钟信号没有经过ds80pci402。
- device向PC不停发送PCIE信号,在四个测试点抓取差分信号,如下如黄色箭头所示,眼图参见eye_diagrams_1.jpg、eye_diagrams_2.jpg、eye_diagrams_3.jpg、eye_diagrams_4.jpg
2) device的ds80pci402寄存器值与预期不符
- 如下图蓝色箭头所示,给ds80pci402的寄存器赋初始值;然后重启PC,PC枚举PCIE设备;PC枚举结束后,读取device中的ds80pci402寄存器值,测试情况如下表所示
Address |
Register Name |
Initial Value |
Read Value |
Expect Value |
0x0E |
CH0-CHB0 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x11 |
CH0-CHB0-DEM |
0x02 |
0x02 |
0x82 |
0x15 |
CH1-CHB1 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x18 |
CH1-CHB1-DEM |
0x02 |
0x02 |
0x82 |
0x1C |
CH2-CHB2 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x1F |
CH2-CHB2-DEM |
0x02 |
0x02 |
0x82 |
0x23 |
CH3-CHB3 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x26 |
CH3-CHB3-DEM |
0x02 |
0x02 |
0x82 |
0x2B |
CH4-CHA0 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x2E |
CH4-CHA0-DEM |
0x02 |
0x82 |
0x02 |
0x32 |
CH5-CHA1 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x35 |
CH5-CHA1-DEM |
0x02 |
0x82 |
0x02 |
0x39 |
CH6-CHA2 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x3C |
CH6-CHA2-DEM |
0x02 |
0x82 |
0x02 |
0x40 |
CH7-CHA3 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x43 |
CH7-CHA3-DEM |
0x02 |
0x82 |
0x02 |
- 如下图黄色箭头所示,给ds80pci402的寄存器赋初始值;然后device的XC7A100T-2FGG484C向PC发送信号;信号发送一段时间,大概5至7秒,读取device中的ds80pci402寄存器值,测试情况如下表所示
Address |
Register Name |
Initial Value |
Read Value |
Expect Value |
0x0E |
CH0-CHB0 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x11 |
CH0-CHB0-DEM |
0x02 |
0x82 |
0x02 |
0x15 |
CH1-CHB1 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x18 |
CH1-CHB1-DEM |
0x02 |
0x82 |
0x02 |
0x1C |
CH2-CHB2 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x1F |
CH2-CHB2-DEM |
0x02 |
0x82 |
0x02 |
0x23 |
CH3-CHB3 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x26 |
CH3-CHB3-DEM |
0x02 |
0x82 |
0x02 |
0x2B |
CH4-CHA0 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x2E |
CH4-CHA0-DEM |
0x02 |
0x02 |
0x82 |
0x32 |
CH5-CHA1 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x35 |
CH5-CHA1-DEM |
0x02 |
0x02 |
0x82 |
0x39 |
CH6-CHA2 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x3C |
CH6-CHA2-DEM |
0x02 |
0x02 |
0x82 |
0x40 |
CH7-CHA3 IDLE, RXDET |
0x08 |
0x08 |
0x08 |
0x43 |
CH7-CHA3-DEM |
0x02 |
0x02 |
0x82 |
4 reference
1) schematic.pdf
2) device pcb layout.png
3) pg054-7series-pcie (1).pdf
4) ds80pci402
5) 0745400401_IO_CONNECTORS.pdf
6) PS-75586-001.pdf
7) eye_diagrams_1.jpg
8) eye_diagrams_2.jpg
9) eye_diagrams_3.jpg
10) eye_diagrams_4.jpg
11) PCIE_CLOCK(100MHz).jpg
Liang Liu4:
Hi Viking,
请问这个问题的最新状态是什么样的?
1. 我查了原理图, 没有看到问题
2. 寄存器配置,你这边有没有把寄存器6的bit3写成 ‘1’? 这样寄存器0x06的值是0x18。 这样设置以后寄存器配置才会生效。
3. 关于你写的值和读出来不一样,比如寄存器0x11, 它的最高为是RXDET的状态位,是只读的。因为你设置了原理图上rxdet=1,这个bit会变成'1'
如果你这边还有问题,请告知我最新的情况。
Regards,
Liang
Regards
Liang