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.

[参考译文] ADS54J54:获取代码组同步和初始通道分配时遇到困难。

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/604304/ads54j54-difficulty-getting-code-group-synchronization-and-initial-lane-assignment

部件号:ADS54J54
在“线程: LMK0.4828万”中讨论的其它部件

我正在将ADS54J54 与LMK0428时钟抖动消除器结合使用,并观察ADC的奇怪行为。  LMK0428为ADC提供500 MHz时钟以及SYSREF输入。  我正在使用SYSREF的脉冲/单次激发方法,这是数据表推荐的方法。

下面是我的步骤和结果:

我使用数据表中的以下步骤对ADS54J54进行编程:

7.3 ................................................................12 JESD204B接口初始化顺序
通电后,内部JESD204B数字块必须按以下步骤顺序进行初始化:

1.将JESD RESET AB/CD和JESD INIT AB/CD设置为0 (地址0x0D,值0x0000)
2.将JESD init AB/CD设置为1 (0x0D,0x0202)
3.将JESD重置AB/CD设置为1 (0x0D,0x0303)
4.配置所有其它JESD寄存器和时钟设置。 如果这些设置稍后更改,则会进行初始化
必须重复顺序。
5.将JESD重置AB/CD设置为0 (0x0D,0x0202)
6.将JESD重置AB/CD设置为1 (0x0D,0x0303)
7.等待两个SYSREF脉冲
8.将JESD init AB/CD设置为0 (0x0D,0x0101)

执行步骤8后,设备将立即开始发送K字符。  这是不可预料的。  根据数据表,在确认SYSREF并进行同步之前,我不应接收K字符。   请参见下图。  如果我断言SYSREF,那么k字符将短暂停止,其他字符将被传输,但它们与ILA过程不一致。  接收到几十个随机字符后,接收到的数据将无限期地恢复为k字符。   

奇怪的是,SYNC似乎对ADC行为没有任何影响。  

提前感谢您的帮助。

 

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

    您好,

    这是在您自己的硬件上,而不是在EVM上?  我还没有在我们拥有的TSW14J56 FPGA卡中看到EVM的这种行为,但我不必查看ADC的哪些功能,因为它会将JESD204b链路与FPGA同步。     我不得不问,您是否控制了进入您正在查看的频道的同步输入?  设备有两个同步输入,一个用于通道A和B,另一个用于通道C和D。  TSW14J56的FPGA固件驱动两个同步信号到FMC连接器,以路由至ADC。

    EVM和TSW14J56的配置文件中的大部分内容都涉及设置LMK,而对ADC的大多数写入是您所调用的7.3 12部分中的步骤。 然后是ADC的一些微调调整。  看起来我不是太担心在顺序中的那个点精确完成步骤4,或者让步骤7等待任何事情。  运行GUI的PC的SPI写入速度太慢,以至于步骤7不会太快。  我有不同的LMFS操作模式的不同配置文件,因此我不需要执行重新初始化步骤就可以在不同的模式之间切换。   但在我完成ADC配置之前,我已经设置了全部LMK。  我使用的配置文件已附加,仅供参考。

    我可能需要获得一个列表,列出您正在写入的寄存器内容,然后检查它,与我们的操作进行比较,或者在我们的设置中尝试您的配置。

    此致,

    Richard P.

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

    我看不到配置文件的附件。 您是否忘记了附加它,还是我错过了一些东西? 我很想知道您正在执行哪些步骤来编程该零件。

    我使用的是我自己的硬件,即FPGA。 FPGA驱动ADC上的同步输入。 实际上,我正在使用FPGA内部的内部逻辑分析仪查看接收到的数据。 (这是我看到K字符的地方)。

    我在配置ADC之前设置LMK。

    我列出的步骤4含糊不清。 不清楚哪些寄存器特定于"JESD寄存器和时钟设置"。 所以我在这个步骤中对所有的寄存器进行编程。

    我不清楚的一个项目是如何配置sysref。 数据表在第7.3 4节中说,对于单触发策略
    "单个SYSREF复位脉冲用于同步ADS54J54。 ADS54J54器件至少需要3个SYSREF脉冲才能完成同步相位。" 那么我需要单个脉冲还是多个脉冲? 脉冲应有多宽? 此信息对于LMK编程以生成良好的sysref至关重要。

    我很高兴向您发送我的编程文件,向您展示我的步骤。

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

    您好,

    是的,我忘记了附加附件。  我很抱歉。  在这里。  在我最近的EVM中,我一直在对LMK进行编程以设置时钟和SYSREF,然后对ADC进行编程,最后返回到对SYSREF进行编程,以便为ADC关闭SYSREF,但仍为FPGA运行。   我们在时钟和SYSREF之间获得一些耦合,如果SYSREF持续运行,则会在产生的FFT中产生一些突起。  因此,我们建议关闭SYSREF。    但是,也许出于开发目的,我们应该让SYSREF持续运行,直到一切正常运行并保持稳定。   然后,我们可以返回并插入到配置中,以便在不再需要时关闭SYSREF。    在开发过程中,持续SYSREF的唯一危害是交流电性能的轻微下降(频谱中的某些低电平突起)。

    但是,正如您在此配置文件中看到的那样,我只需先配置LMK,然后再配置ADC。  在主部分对LMK进行编程之后,LMK编程的另一部分必须专门与SYSREF和ADC配置有关。  我没有编写LMK配置的第二部分,该部分涉及设置和触发SYSREF。  如果需要,我可以在下个星期回到办公室时咨询写下该部分内容的人员。  

    我认为在关闭SYSREF脉冲之前,需要有一些SYSREF脉冲。  我不知道最低人数。   不需要SYSREF的占空比,因为只检测和使用SYSREF的上升沿。  但是SYSREF的频率至关重要。  使用特定的LMFS设置设置操作模式后,选择K值,即表示选择了多帧数据的大小。   SYSREF边缘必须精确位于这些多帧的边界上。  因此,LMK中有一个分隔值,用于设置SYSREF频率。  如果我记得正确的话,这个ADC可能有两种不同的LMFS模式-一种具有8个通道,另一种具有4个通道。  我认为我们使用特定的SYSREF分隔符值设置LMK的配置, 然后,在8通道模式ADC的配置中,我们有一个K值与SYSREF除法器值一起使用,而在4通道模式中,我们有一个不同的K值,它也与同一SYSREF除法器值一起使用。   

    此致,

    Richard P.

    e2e.ti.com/.../ADS54J54_5F00_500M_5F00_841.cfg

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

    Richard

    我今天只专注于LMK部件的工作,以便在我的硬件上运行SYSREF。  我确实让它发挥作用,但我有一些意见/问题。  您的配置文件中以sysref为中心的代码行是111-123行,我已复制到下面:

    111  0x139 0x00 //将SYSREF_Mux设置为"正常"
    112  0x143 0x11 //将SYNC_MUX设置为"PIN"
    113  0x140 0x00 //打开所有块,这些块是否可以保持打开?
    114  0x144 0x74 //启用所有时钟输出的同步
    115  0x143 0x11 //使用"Ping"模式的触发器同步事件
    116  0x143 0x31
    117  0x143 0x11
    118  0x144 0xFF //禁用所有时钟输出的同步
    119  0x139 0x3 //将SYSREF_MUX设置为"连续"
    120  0x13E 0x3 //将SYSREF脉冲设置为“8”
    使用  "引脚(脉冲)"模式的121 0x143 0x12 //触发器同步事件
    122 0x143 0x32
    123 0x143 0x12

    我发现,第111-117行生成一个长的,单个SYSREF,该SYSREF是手动触发的。  第118行至第123行生成一个连续的SYSREF。  这是意图吗?  令人困惑的是,此处的几行代码是不必要的,并且误导 行119-123对LMK没有任何影响,因为它已在行119中被置于连续模式。  

    我将很快尝试对ADC进行编程。  

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

    我能够对ADC进行编程并取得了一些成功。 我一直在运行一些测试模式,可以使用一些其他帮助。

    我正在使用LMFS = 8411,并使用来自ADC的测试模式观察两个通道上接收到的数据。 两条通道的交替数据测试模式看起来都很好。 但是,这种斜坡模式令人困惑。 传输最低有效字节的通道是正确的。 它可以平稳地上下斜坡。 最重要的字节通道具有某种形式的假象,但它不是一个斜坡。 ADC的编程是否会遗漏一些内容?

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

    您好,

    我与使用LMK0.4828万和我们的JESD204b数据通信器为EVM生成一些首批配置文件的人员进行了交谈, 第111行至第123行中LMK配置的这一部分是他在对LMK配置的讨论中得到的,可能是在计时论坛中。  无论以何种速率,该部分所做的操作首先是允许同步事件重置SYSREF计数器和实际用于ADC和FPGA的时钟分频器的计数器,然后导致触发事件重置计数器以同步它们。   然后,将屏蔽同步事件,并为SYSREF本身发出触发事件。 首先使用地址x144来启用某些计数器的同步。  (注释说启用所有输出以进行同步,但当我查看值x74时,只有部分输出已启用-我们设计中使用的输出)  然后,同一个地址得到x144,以禁止任何进一步的计数器同步。   我们从LMK人员那里获得了这块代码,所以我建议时钟论坛可能更好,以便更仔细地检查那里发生的情况。

    我在检验EVM时没有看到过斜坡问题, 是否可以看到您在最重要字节上看到的不正确的屏幕截图?  我想不出任何东西会把模式中的一个字节弄乱,除非它是offsetbinary的选择与二进制的补码的选择,而这只会导致模式中最重要的位被颠倒。

    此致,

    Richard P.

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

    Richard

    今天,我研究了斜坡测试模式,观察到与昨天类似的结果,尽管结果要好一点。  我尝试了设备上的两个不同的通道,看看它们是否有任何差异。  其他车道的表现完全相同。  最小有效字节是完美的,并显示一个很好的递增模式。 对于数百个样本而言,最重要的字节看起来是好的,但随后会很古怪。  我附上了一个Excel文件,其中显示了通过FPGA中的内部逻辑分析器捕获的结果。  

    A列给出样本编号作为参考。  它从146开始,因为之前的样本由于初始化而没有意义。

    B列是为通道1观察到的数据,在整个采样时间内看起来很好。

    C列是为通道0观察到的数据,它看起来很好,直到样本编号为320。  该模式不是随机的,但肯定不再类似于计数模式。

    我尝试使用RTF编辑器插入文件。 希望您可以下载它。  如果此操作不正确,请为我提供有关如何上传文件的指导。  否则,我可以将文件粘贴在这里--它不会太长。

     e2e.ti.com/.../iladata_5F00_2.xlsx

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

    您好,

    我刚刚将EVM加电到我们的TSW14J56中,并在通道A,B和通道C,D的正常和斜坡之间来回翻转  我确实认为每个通道上的斜坡模式都是正常的。  请参阅其中一个频道的屏幕截图。  为了使捕获卡软件满意,我不得不将样本中最重要的位反转,因为它在EVM输出相反值时,期望二进制补码的偏移。  但它仍然是一个可识别的斜坡,MSB是反转的。   我的第一个怀疑是 FPGA IP的位不是您期望看到的顺序,数据按一定顺序排列, 但这 只是一个猜测。  如果LMFS和K参数中有设置,那么我预计FPGA在同步后会遇到与ILA的问题。

    此致,

    Richard P

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的更新。 令人不解的是为什么ADC如此。 我的LMFS值是正确的....我已经仔细检查了它们....并且我始终得到ILAS同步。 我不知道为什么一条车道能正常工作,而另一条车道不能正常工作。 我已经检查了设备的另一个转换器,结果是相同的。

    由于这是一个14位ADC,您的设置中D14和D15逻辑是否为零? 我注意到,当我收到原始数据时,两个LSB为零,这与数据表一致。 这包括用于交替模式的两个LSB。

    可能是我对设备的编程顺序错误。 现在我从脚本执行初始化序列。 然后打开斜坡模式,然后发出SYNC_N 也许我需要在初始化过程中对斜坡模式进行编程?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    看看数据从TSW14J56 FPGA IP出来后如何解析,它同意数据表中的14位是MSB对齐的,末尾附加了两个零。 数据表中的表3列出了位13:6,然后是5:0和两个零 这就是我所看到的。   TSW14J56只需从FPGA JESD204b IP获取8个通道的数据块,并将其加载到内存中,就像来自JESD块一样。  然后,必须将该数据解析为样本,并将其列在HSDCPro文件夹中设备的ini文件中。  对于LMFS 8411,请参阅:

    位封装通道模式=C1S1[13:6],C1S2[13:6],C1S3[13:6],C1S1[5:0],T[2],C1S2[5:0],T[2],C1S3[2:0],C1S3[5:0],C313:0],[C313:0,[C313:0][5:0],[C313:0],[C313:0,[C313:0][2:0],[C313:0,[C313:0],[C313:0,[C313:0]

    这是一个很长的问题,但是我们必须创造这些东西,才能把这些东西放在正确的地方。   该数据字符串表示,在推入RAM的32位的第一个块中,它包含channel1,sample1,channel1,sample2,channel1,sample3和channel1,sample4的前8位。   然后,下一个32位卡盘包含这些相同样品的下6位加两个零尾位。   然后,channel2也是如此。 channel3也是如此。 最后,channel4也是如此。    这是8车道模式,因此被推入内存的是第一车道的32位,第二车道的32位,第三车道的32位,第四车道的32位,所有8车道的32位,依此类推。      然后使用上述字符串来区分哪些位在哪里。  实际上,它与表3中的数据帧完全对齐。   我认为您的代码中的某些内容必须做类似的事情,但并不是所有的比特都能正确地实现。  这一切都是在IP处理国际法协会之后。   JESD IP直接处理ILA,然后将数据从IP块交给FPGA架构进行处理。  由于您的FPGA似乎处理了ILA,但在处理之后对数据进行了编码,这就是我认为在JESD IP模块之后数据被错误处理的原因。   此外,LMFS参数都应该正确,因为IP块与ILA没有问题。  

    正是在这样的时刻,我希望ADC有一个测试模式选项来设置自定义模式。  我们的许多其他ADC都有。  这让我将测试模式设置为000000 0000 0001并发送该数据模式。 然后我查看捕获的数据以查看单个'1'到达的位置。  然后我将'1'从一个位置走到0万000010并0.001万并重复。    这样我就可以绘制出链末尾的位的模式。  很遗憾,我不认为这是一个选项。

    此外,我只需加载8通道模式的默认配置文件,然后单击GUI控制位以查看测试模式。  我不必将测试模式设置与配置文件一起导入。   我刚刚配置了LMK和ADC,然后返回 设置测试模式位。

    此致,

    Richard P.