This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] ADC09QJ1300-Q1:TRIGOUT 输出不正常

Guru**** 1144270 points
Other Parts Discussed in Thread: ADC09QJ1300-Q1, LMK00304
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1279881/adc09qj1300-q1-trigout-output-is-unhealthy

器件型号:ADC09QJ1300-Q1
主题中讨论的其他器件: LMK00304

您好、 :工程师 J ü r

我的 ADC adc09QJ1300-Q1有一些问题。我的电气连接如下所示

我的寄存器配置的序列地址的相应值如下图所示

    

并使用 tirgout 作为 FPGA GTH.fpga 类型的恢复时钟是 ulterslcae xcku060、FPGA 中的 clk  如下图所示

但启动时钟输出不稳定、但 pllref 稳定在50MHz。、并且在配置期间读取 VCO_CAL_STATUS、 并且从寄存器中已知 VCO_CAL_STATUS[7:1]是保留位、位0是 VCO_CAL_DONE 状态位。但是、在实际读取过程中、会读取多个0x20、然后读取一个0x30。 然而、采集触发时钟仍然不稳定。 您要问的问题是什么?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dami:

    您能否使用示波器提供 LMK00304时钟输出的图片。

    谢谢。

    埃里克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Eric、

    此问题是由 cpll 配置反馈时钟低于50MHz 且未锁定引起的。 但现在已读取 CAL_STATUS 寄存器、读取的值为0x01、这意味着 cpll 已锁定、但 SerDes PLL 未锁定。 然后、测试模式下的测试数据链路也没有数据。这是串行器/解串器 PLL 配置、配置问题在哪里?

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dami:

    串行器/解串器 PLL 锁定问题意味着您的 FPGA 未获得正确的时钟频率。 能够报告寄存器 JESD_STATUS (0x208)的值、您能告诉我您需要的采样率吗。

    谢谢。

    埃里克·克莱克纳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Eric、我按如下方式报告寄存器值:

    VCO_CAL_STATIC(0x005e)= 0x03;
    JESD_STATUS(0x0208)= 0x01;
    CAL_STATUS (0x006a)= 0x0c;
    我的寄存器设置值如下所示:
    adc_reg_addr[0]  = 16'h0000;    adc_reg_da[0]  = 8'hB0;  // CONFIG_A        // RESET
    adc_reg_addr[1]  = 16'h8270;    adc_reg_da[1]  = 8'h00;  // INIT_STATUS --READ  // INIT_STATUS --READ
    adc_reg_addr[2]  = 16'h005C;    adc_reg_da[2]  = 8'h01;  // CPLL_RESET      // set CPLL_RESET == 1,before programe cpll reg
    adc_reg_addr[3]  = 16'h003F;    adc_reg_da[3]  = 8'h4A;  // CPLL_VCOTRL1    // use c-pll default value vco_bias = 0x4a
    adc_reg_addr[4]  = 16'h0058;    adc_reg_da[4]  = 8'h01;  // CPLL_OVR        // C-Pll config use SPI ; output cpll ref_clk divided by 1 on ORD
    adc_reg_addr[5]  = 16'h003D;    adc_reg_da[5]  = 8'h04;  // CPLL_FBDIV1     // P = 2;
    adc_reg_addr[6]  = 16'h003D;    adc_reg_da[6]  = 8'h05;  // CPLL_FBDIV1     // V = 4; fs = 8/v/p = 1Gbps
    adc_reg_addr[7]  = 16'h003E;    adc_reg_da[7]  = 8'h14;  // CPLL_FBDIV2     // N = 20;fref = fs/N = 50M  
    adc_reg_addr[8]  = 16'h005D;    adc_reg_da[8]  = 8'h41;  // VCO_CAL_CTRL    // VCO_CAL_CTRL,VCO_CAL_EN = 1,  
    adc_reg_addr[9]  = 16'h005C;    adc_reg_da[9]  = 8'h00;  // CPLL_RESET      // clear CPLL_RESET == 0,finish cpll config;
    adc_reg_addr[10] = 16'h0057;    adc_reg_da[10] = 8'h01;  // TRIGOUT_CTRL    // set RX_DIV = 32; TrigOut = 6.25/32 = 195.3125Mhz
    adc_reg_addr[11] = 16'h0057;    adc_reg_da[11] = 8'h81;  // TRIGOUT_CTRL    // set TRIGOUT output enable;
    adc_reg_addr[12] = 16'h002B;    adc_reg_da[12] = 8'h05;  // CLK_CTRL2       // CLK_CTRL2
    adc_reg_addr[13] = 16'h0200;    adc_reg_da[13] = 8'h00;  // JESD_EN         // set JESD_EN = 0;
    adc_reg_addr[14] = 16'h0061;    adc_reg_da[14] = 8'h00;  // CAL_EN          // set CAL_EN = 0 , hold calibration in reset to program new calibration settings
    adc_reg_addr[15] = 16'h0201;    adc_reg_da[15] = 8'h0a;  // JMODE           // JMODE 10
    adc_reg_addr[16] = 16'h0202;    adc_reg_da[16] = 8'h1F;  // KM1             // KM1 = 31; KM1 = k - 1; K = 32;
    adc_reg_addr[17] = 16'h0207;    adc_reg_da[17] = 8'h02;  // FCHAR-K28.5     // K28.5
    adc_reg_addr[18] = 16'h0205;    adc_reg_da[18] = 8'd07;  // TEST            // K28.5 Test mode enable
    adc_reg_addr[19] = 16'h0204;    adc_reg_da[19] = 8'h03;  // JCTRL           // JCTRL enable scrambler enabled;SYNC_SEL
    adc_reg_addr[20] = 16'h0213;    adc_reg_da[20] = 8'h0F;  // OVER_CFG        // enable over range;over-range output 4*2^7 sample cycles;
    adc_reg_addr[21] = 16'h805e;    adc_reg_da[21] = 8'h00;  // VCO_CAL_STATUE --read   // ------- read vco_cal_done
    adc_reg_addr[22] = 16'h8208;    adc_reg_da[22] = 8'h00;  // JESD_STATUS --read      // ------- read cpll_locked
    adc_reg_addr[23] = 16'h0061;    adc_reg_da[23] = 8'h01;  // CAL_EN          // CAL_EN
    adc_reg_addr[24] = 16'h0200;    adc_reg_da[24] = 8'h01;  // JESD_EN         // JESD_EN
    adc_reg_addr[25] = 16'h006C;    adc_reg_da[25] = 8'h00;  // CAL_SOFT_TRIG   // CAL_SOFT_TRIG
    adc_reg_addr[26] = 16'h006C;    adc_reg_da[26] = 8'h01;  // CAL_SOFT_TRIG   // CAL_SOFT_TRIG
    adc_reg_addr[27] = 16'h006A;    adc_reg_da[27] = 8'h00;  // CAL_STATUS      // ------- read cal_status[0] = 1;
    其设置 clk 为 jmode = 10;平均 FS = 1Gbps、cpll fref = 50MHz、线路速率为6.25G。 8行和8b10b 代码;
    TRIG_OUT 被设定为 ftrig = 6.25G/32 = 195.3125Mhz;sysref 为390.625khz;那么如何设置 正确的时钟频率?
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很抱歉响应延迟。

    FPGA 参考的正确时钟频率取决于您在 FPGA 上配置接收器的方式。 您能告诉我该频率是多少吗?

    感谢 Eric