大家好、
下面是我们的一位客户遇到的问题、您能 提供一些故障排除建议吗?
我正在调试 ADC09QJ1300、发现 链路不稳定、AD 配置的采样率为600M、4通道模式、7.425G 通道速率、将 prbs31发送到 FPGA、FPGA 的 ibert 检测信号错误率和眼图。
1.硬件连接
AD9517时钟芯片产生两个150MHz 时钟、LVPECL 电平、一个时钟用于 ADC clk+/-、 另一个 时钟 用于 MGTHREFCLK+/-、用于 FPGA -zu4ev。 AD 的 D0+/-~D3+/-总共有4个差分对连接到 FPGA 的第 g 端口 Rx。
2. AD 配置
AD 输入时钟150MHz、为生成600MHz 采样时钟而传递的 cpll。 JESD 配置为 JMODE8模式、66/64b 编码、4通道输出、线路速率600MHz X12位 X 66/64=7.425Gbps、发送 prbs31、配置寄存器如下所示
send_buf[0]=0x00;
send_buf[1]=0x00;
send_buf[2]=0xb0;//μ 复位
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
while (recv_buf[2]!=0x01)
{
send_buf[0]=0x82;
send_buf[1]=0x70;
send_buf[2]=0x00;//μ 等待初始化完成
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
}
send_buf[0]=0x00;
send_buf[1]=0x58;
send_buf[2]=0x81;//μ spi控制,PLL使能
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x02;
send_buf[1]=0x00;
send_buf[2]=0x00;//μ 先关闭JESD
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x61;
send_buf[2]= 0x00;//CAL_n ü EN关闭
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x02;
send_buf[1]=0x01;
send_buf[2]= 0x08;//配置JMODE 8
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x29;
send_buf[2]=0xb6;//μ 开启sys ref
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x29;
send_buf[2]= 0xF6;//开启sys _ref 配置sysfre _window
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x2a;
send_buf[2]=0x00;//μ 配置LVPECL
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x30;
send_buf[2]=0x00;//μ 配置模拟信号Vpp采样最大值
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x31;
send_buf[2]=0xA0;//μ 配置模拟信号Vpp采样最大值
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x5c;
SEND_buf[2]= 0x01;//CPLL_RESET
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x3f;
send_buf[2]= 0x4a;// CPLL_VCOCTRL1
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x3D;
SEND_buf[2]= 0x0a;//0x06;//CPLL_FBIV1
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x3e;
SEND_buf[2]= 0x04;//0x08;//CPLL_FBIV2
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x5d;
SEND_buf[2]= 0x41;//VCO_CAL_CTRL
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x5c;
SEND_buf[2]= 0x00;//CPLL_RESET 释放
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x48;
send_buf[2]=0x08;//μ 预加重
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x02;
send_buf[1]=0x02;
SEND_buf[2]= 0xff;//KM1寄存器
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x02;
send_buf[1]=0x05;
send_buf[2]=0x0E;//μ 测试模式选择 发送prbs31
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x61;
send_buf[2]=0x01;//CAL_EN
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x02;
send_buf[1]=0x00;
send_buf[2]=0x01;//μ 打开JESD
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x6c;
send_buf[2]= 0x00;//打开CAL SOFT_TRIG
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
send_buf[0]=0x00;
send_buf[1]=0x6c;
send_buf[2]= 0x01;//打开CAL SOFT_TRIG
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
U8结果;
u32 addr=0x10000;
u32 power_data;
u32 rd_data;
while (1)
{
send_buf[0]=0x82;
send_buf[1]=0x08;
send_buf[2]= 0x00;//
x4551 Ps_Polled (SpiInstancePtr,send_buf,recv_buf,3);
usleep(5000);
result=recv_buf[2];
if (((result & 0x44)!= 0x44)//μ 判断link up是否成功
{
I=0;
while (I=0);
}
}
FPGA 配置
IBERT 具有150MHz 输入时钟、4通道 Rx、设置7.425G 的线路速率以查看 AD 和 FPGA 之间的通信质量。
4. 这一现象如下:
不稳定的 链路构建。 通过读取 AD 的0x208寄存器、LINK_UP 和 SPLL_LOCK 位不稳定 、有时为1、有时为0。 上述现象的原因可能是什么? 感谢您提出任何故障排除意见。
此致、
艾米