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.

[参考译文] ADC12QJ1600EVM:EVM 的 SPI 配置可切换同步信号

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1077380/adc12qj1600evm-spi-config-for-evm-yields-toggling-sync-signal

部件号:ADC12QJ1600EVM

使用 ADCxxQJ1600EVM 软件 GUI,我提取了 Python SPI 配置,该配置显示了设备的命令和订购情况。 根据软件配置,我建立了 JESD204b 链接;但是,同步引脚似乎正在切换。

详细信息:

模式:JMODE0

采样频率:1GHz

FPGA:Xilinx KU060

Xilinx IP:JESD204 PHY,JESD204 RX (https://www.xilinx.com/support/documentation/ip_documentation/jesd204/v7_2/pg066-jesd204.pdf)

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

    您好,海迪,

    JESD 同步信号切换的原因有很多。  

    1. ADC 和 FPGA 之间的信号完整性问题。  

    2. K 参数编程错误。

    3. FPGA GBT 时钟不稳定。  

    请您提供一些有关该问题的更多信息。 可以尝试 ADC GUI 对 ADC 进行编程,看看是否看到不同的结果?

    此致,

    Neeraj   

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

    实际上,我也使用 GUI 本身对 EVM 进行了编程,结果也是如此。 Xilinx IP 没有太多参数可供设置:F,K 和一些与 SYSREF 相关的框。 我已经检查过这些框几次了,但我可以再次查看它们。

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

    您好,海迪,

    请通过发送 GUI 屏幕截图来共享 GUI 设置,其中显示了用于对 ADC 进行编程的设置。  

    此致,

    Neeraj  

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

    我附加了 ADCQJxx1600 EVM 软件的图像(我在模拟模式下运行该程序。)。 我还附加了软件发布的 SPI 命令的 python 日志。

    GUI_Module=__import__('ADC12QJ1600 EVM GUI')
    
    GUI=GUI_Module.Device_GUI("ADC12QJ1600 EVM GUI.exe",6640.000000)
    GUI.write_register("OSC_ENA","ENA OR DISABLE OSC",0x0)
    GUI.write_register("GBT_SEL","SEL_GTB_CLK_SOURCE",0x1)
    GUI.write_register("LMK04828","x000",0x80)
    GUI.write_register("LMK04828","x000",0x0)
    GUI.write_register("LMK04828","x002",0x0)
    GUI.write_register("LMK04828","x100",0x1)
    GUI.write_register("LMK04828","x101",0x55)
    GUI.write_register("LMK04828","x103",0x2)
    GUI.write_register("LMK04828","x104",0x20)
    GUI.write_register("LMK04828","x105",0x0)
    GUI.write_register("LMK04828","x106",0xF0)
    GUI.write_register("LMK04828","x107",0x6)
    GUI.write_register("LMK04828","x108",0x1)
    GUI.write_register("LMK04828","x109",0x55)
    GUI.write_register("LMK04828","x10B",0x0)
    GUI.write_register("LMK04828","x10C",0x22)
    GUI.write_register("LMK04828","x10D",0x0)
    GUI.write_register("LMK04828","x10E",0xF9)
    GUI.write_register("LMK04828","0x10F",0x0)
    GUI.write_register("LMK04828","x110",0x5)
    GUI.write_register("LMK04828","x111",0x55)
    GUI.write_register("LMK04828","x113",0x0)
    GUI.write_register("LMK04828","x114",0x2)
    GUI.write_register("LMK04828","x115",0x0)
    GUI.write_register("LMK04828","x116",0xF1)
    GUI.write_register("LMK04828","x117",0x1)
    GUI.write_register("LMK04828","x118",0x1)
    GUI.write_register("LMK04828","x119",0x55)
    GUI.write_register("LMK04828","x11B",0x2)
    GUI.write_register("LMK04828","x11C",0x2)
    GUI.write_register("LMK04828","x11D",0x0)
    GUI.write_register("LMK04828","x11E",0xF9)
    GUI.write_register("LMK04828","x11F",0x1)
    GUI.write_register("LMK04828","x120",0x5)
    GUI.write_register("LMK04828","x121",0x55)
    GUI.write_register("LMK04828","x123",0x0)
    GUI.write_register("LMK04828","x124",0x22)
    GUI.write_register("LMK04828","x125",0x0)
    GUI.write_register("LMK04828","x126",0xF1)
    GUI.write_register("LMK04828","x127",0x1)
    GUI.write_register("LMK04828","x128",0x1)
    GUI.write_register("LMK04828","x129",0x55)
    GUI.write_register("LMK04828","x12B",0x2)
    GUI.write_register("LMK04828","x12C",0x22)
    GUI.write_register("LMK04828","x12D",0x0)
    GUI.write_register("LMK04828","x12E",0xF0)
    GUI.write_register("LMK04828","x12F",0x10)
    GUI.write_register("LMK04828","x130",0x1)
    GUI.write_register("LMK04828","x131",0x55)
    GUI.write_register("LMK04828","x133",0x2)
    GUI.write_register("LMK04828","x134",0x22)
    GUI.write_register("LMK04828","x135",0x0)
    GUI.write_register("LMK04828","x136",0xF8)
    GUI.write_register("LMK04828","x137",0x1)
    GUI.write_register("LMK04828","x138",0x45)
    GUI.write_register("LMK04828","x139",0x3)
    GUI.write_register("LMK04828","x13A",0x0)
    GUI.write_register("LMK04828","x13B",0xA0)
    GUI.write_register("LMK04828","x13C",0x0)
    GUI.write_register("LMK04828","x13D",0x8)
    GUI.write_register("LMK04828","x13E",0x3)
    GUI.write_register("LMK04828","x13F",0x0)
    GUI.write_register("LMK04828","x140",0x1)
    GUI.write_register("LMK04828","x141",0x0)
    GUI.write_register("LMK04828","x142",0x8)
    GUI.write_register("LMK04828","x143",0x32)
    GUI.write_register("LMK04828","x144",0x87)
    GUI.write_register("LMK04828","x145",0x0)
    GUI.write_register("LMK04828","x146",0x18)
    GUI.write_register("LMK04828","x147",0x2)
    GUI.write_register("LMK04828","x148",0x2)
    GUI.write_register("LMK04828","x149",0x2)
    GUI.write_register("LMK04828","x14A",0x2)
    GUI.write_register("LMK04828","x14B",0x2)
    GUI.write_register("LMK04828","x14C",0x0)
    GUI.write_register("LMK04828","x14D",0x0)
    GUI.write_register("LMK04828","x14E",0x0)
    GUI.write_register("LMK04828","x14F",0x7F)
    GUI.write_register("LMK04828","x150",0x1)
    GUI.write_register("LMK04828","x151",0x2)
    GUI.write_register("LMK04828","x152",0x0)
    GUI.write_register("LMK04828","x153",0x0)
    GUI.write_register("LMK04828","x154",0xC)
    GUI.write_register("LMK04828","x155",0x0)
    GUI.write_register("LMK04828","x156",0xC)
    GUI.write_register("LMK04828","x157",0x0)
    GUI.write_register("LMK04828","x158",0x78)
    GUI.write_register("LMK04828","x159",0x0)
    GUI.write_register("LMK04828","x15A",0x78)
    GUI.write_register("LMK04828","x15B",0xD4)
    GUI.write_register("LMK04828","x15C",0x20)
    GUI.write_register("LMK04828","x15D",0x0)
    GUI.write_register("LMK04828","x15E",0x0)
    GUI.write_register("LMK04828","x15F",0xB)
    GUI.write_register("LMK04828","x160",0x0)
    GUI.write_register("LMK04828","x161",0x2)
    GUI.write_register("LMK04828","x162",0x44)
    GUI.write_register("LMK04828","x163",0x0)
    GUI.write_register("LMK04828","x164",0x0)
    GUI.write_register("LMK04828","x165",0xC)
    GUI.write_register("LMK04828","x17C",0x15)
    GUI.write_register("LMK04828","x17D",0x33)
    GUI.write_register("LMK04828","x166",0x0)
    GUI.write_register("LMK04828","x167",0x0)
    GUI.write_register("LMK04828","x168",0x1)
    GUI.write_register("LMK04828","x169",0x59)
    GUI.write_register("LMK04828","x16A",0x20)
    GUI.write_register("LMK04828","x16B",0x0)
    GUI.write_register("LMK04828","x16C",0x0)
    GUI.write_register("LMK04828","x16D",0x0)
    GUI.write_register("LMK04828","x16E",0x4)
    GUI.write_register("LMK04828","x139",0x0)
    GUI.write_register("LMK04828","x143",0x11)
    GUI.write_register("LMK04828","x140",0x0)
    GUI.write_register("LMK04828","x144",0x74)
    GUI.write_register("LMK04828","x143",0x11)
    GUI.write_register("LMK04828","x143",0x31)
    GUI.write_register("LMK04828","x143",0x11)
    GUI.write_register("LMK04828","x144",0xFF)
    GUI.write_register("LMK04828","x139",0x3)
    GUI.write_register("LMK04828","x14A",0x6)
    -- 0x00
    GUI.write_register("ADC12QJxx00","CONFIG_A",0xB0)
    -- 0x2B
    GUI.write_register("ADC12QJxx00","CLK_CTRL2",0x15)
    -- 0x200
    GUI.write_register("ADC12QJxx00","JESD_EN",0x0)
    -- 0x61
    GUI.write_register("ADC12QJxx00","CAL_EN",0x0)
    -- 0x201
    GUI.write_register("ADC12QJxx00","JMODE",0x0)
    -- 0x202
    GUI.write_register("ADC12QJxx00","KM1",0x3)
    -- 0x204
    GUI.write_register("ADC12QJxx00","JCTRL",0x1)
    -- 0x213
    GUI.write_register("ADC12QJxx00","OVR_CFG",0xF)
    -- 0x61
    GUI.write_register("ADC12QJxx00","CAL_EN",0x1)
    -- 0x200
    GUI.write_register("ADC12QJxx00","JESD_EN",0x1)
    -- 0x6C
    GUI.write_register("ADC12QJxx00","CAL_SOFT_TRIG",0x0)
    -- 0x6C
    GUI.write_register("ADC12QJxx00","CAL_SOFT_TRIG",0x1)
    GUI.__del__()
    

    最后,我验证了 Xilinx JESD204b IP 中的 F (8)和 K (4)参数。

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

    您好,海迪,

    请确保何时将时钟应用于 ADC,且 ADC 已使用 GUI 进行编程。

    单击以下按钮以确保 SERDES PLL 锁定指示器已打开。 这将告诉我们时钟正在获得 ADC。  

    此致,

    Neeraj