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.

[参考译文] ADS131A04:多器件同步从模式-启用 ADC#39时不显示数据

Guru**** 2393725 points
Other Parts Discussed in Thread: ADS131A04, ADS131A04EVM

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/877552/ads131a04-multiple-devices-synchronous-slave-mode---data-not-shown-when-adc-s-enabled

器件型号:ADS131A04

您好!

我们在同步从模式下使用两个 ADS131A04作为链、禁用 CRC、24位、关闭汉明码以及自由运行的 SCLK (7.8125MHz)。

我们使用内部基准 AVSS -2.5 AVDD 2.5 IOVDD 3.3

经测试的输入信号为1kHz 正弦波、具有2~3V pk-pk (0至2~3)

我们有与 ADS131A04EVM 中相同的原理图。

启用 ADC 后、我们不会获取任何数据、我们执行了数据表中的大多数配置、因此我们不确定是否错过了一个步骤。

完成了以下寄存器配置:

A_SYS_CFG (0Bh)- 68h

D_SYS_CFG (0Ch)-默认值

CLK1 (0Dh)- 82H

CLK2 (0Eh)-默认值

ADC_ENA (0Fh)- 0Fh

其余用户配置的寄存器保留为默认值。

这是我们为启用 ADC 所执行的以下命令、这些命令一个接一个地完成、并且在一次性完成所有命令之前、已使用数据表检查了它们的响应。

解锁

WREG 0D 82

WREG 0B 68

WREG 0F 0F

唤醒

锁定

以下图片显示了我们从示波器中得到的结果、我们遇到了一些/DRDY 故障、但没有频繁发生、这就是我们不确定这是否是唯一的问题的原因

这就是我们得到的结果:

我们检查了所有寄存器、以确保正确配置它们、并且所有寄存器都返回了所需的结果。  DONE 和 CS//DRDY 频率均匹配。

您是否知道问题可能是什么? 我们以前遇到了一个问题、因为没有从第二个器件获得响应、但在第二个器件的 DONE 变为低电平后、通过发送命令来解决该问题。

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

    Shada、


    您是否为第二个器件的输出数据获取0? 第二个器件是否未向外发送/DRDYS? 您似乎有通道可以使用混合信号数字示波器对此进行检查。 我会查看/DRDY 以验证器件是否正在实际转换。 我还想指出的是、数据输出存在一些延迟、下面我将对此进行解释。

    该器件具有 sinc3滤波器、这意味着它报告三次转换的移动平均值。 在数字滤波器已满之前、我不确定输出是否被抑制(这意味着在前三次转换中、输出保持为0)、但这可能适用于该器件。 此外、该器件还具有一个输出数据缓冲器、用于从 DOUT 读取数据。 这意味着、即使第三次 ADC 转换收集稳定的输出数据、在 ADC 输出数据之前、转换时间也会有一个延迟。 这意味着输出数据将通过第四个/DRDY 脉冲就绪。

    您至少应该能够看到/DRDY 脉冲在数据速率下从高电平转换为低电平。 这将告诉您第二个器件正在转换。 之后、检查输出数据是否通过第4个/DRDY 脉冲从 ADC 输出。


    吴约瑟

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

    Shada、

    我忘记了、对于该设置、您使用的是同步从模式。 在这种情况下、/DRDY 是用于同步转换的输入。 通常、我认为 ADS131A04处于异步中断模式、在该模式下、您配置器件、器件开始转换、/DRDY 转换为低电平、以便让主器件知道每次转换完成的时间。 /DRDY 用作主机读取器件的中断。  

    大多数在同步从模式下使用 A 器件的实例是使用第一个 ADS13104作为主器件、然后使用菊花链中的一个或多个同步从器件。 这样、第一个器件的/DRDY 被用作其它同步从器件的同步脉冲。 这就是数据表中图96和98所示的方法。 虽然您可以将所有器件用作同步从器件、如图100所示、但我发现这一点更难实现。

    我需要花费更多时间来读取您的设置序列。 现在、我将首先启用器件、等待大约5ms、在/DRDY 上发送同步脉冲、然后检查 DOUT 读取是否在一段较长的时间内全部为零(超过4个数据周期、如果可能更多)。

    吴约瑟

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

    Shada、

    另一件事是、您如何连接来自器件的主时钟? 您是否使用主器件的时钟馈送 CLKIN?

    吴约瑟

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

    您好、Joseph、

    感谢您的回答、我将在明天早上首先尝试您的建议。

    现在、我可以回答有关时钟的问题、两个器件都处于同步从模式、FPGA 是主器件。

    我仅通过 SCLK 从 FPGA 发送时钟、并根据数据表说明将 CLKIN 连接到 GND、并使 XTAL2保持浮动。 这对于两个设备都是如此。 相同的 SCLK 和 CLKIN 接地

    我将在明天稍后向您提供更新。

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

    Shada、

    好的、感谢您让我知道时钟。 我担心您在这些器件中使用晶体。 如果时钟频率存在任何微小差异、则器件将难以同步。 如果主器件和器件具有相同的时钟、则可以。

    我很快会回来的。

    吴约瑟

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

    您好、Joseph、

    我们进行了一些更改、目前我们面临的问题是同步。

    首先、我们使 SCLK 保持连续、而不是在器件空闲(CS 高电平)时变为低电平。

    第二、我们切换到固定帧、并在末尾为每个器件添加了两个额外的 CRC 零。

    第三、我们尝试同步数据速率和 CS//DRDY、但我们不确定它是否正常工作。 在深入探讨此问题之前、我将再次向您介绍我们的命令序列。

    配置:

    A_SYS_CFG (0Bh)- 68h

    D_SYS_CFG (0Ch)- 3E

    CLK1 (0Dh)- 82H

    CLK2 (0Eh)-默认值

    ADC_ENA (0Fh)- 0Fh

    命令:

    解锁

    WREG 0D 82

    WREG 0B 68

    WREG 0C 3E

    WREG 0F 0F

    唤醒

    锁定

    由于我们在菊花链中使用两个器件、因此命令以24位字的形式发送、如下所示(命令、24'h000000、24'h000000、24'h000000、24'h000000、24'h000000、24'h000000、24'h000000、24'h000000、24'h00000024、24'h00000024

    从响应来看、似乎两个器件都正常且响应、但仅存在时间问题。

    启用和锁定 ADC 后,我们将获得以下状态:2204h

    我们来自 FPGA 的 SCLK 为7.63MHz、根据表29和表30、我们计算出 Fdata 速率为(7.63MHz/(8*400)= 2.384kHz  

    从数据表中可以看出、数据速率和 DRDY 需要是相同的频率或其倍数、这是否必须准确、因为我们在每次 CS 切换时都会使 F_RESync 保持高电平。

    缩小图像:

    放大:

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

    Shada、


    很抱歉耽误你的时间。 我已经仔细检查了您的序列、看起来它应该正常工作。 我可以看到的设置没有什么异常。 我要注意的是、来自 WREG 0F 0F 0F 的锁定之后的 ADC 响应应为0555h。 这将在下一帧中作为响应出现。 如果您在下一帧中发送了空命令、之后的帧将是状态响应、即带有 F_RESync 错误的2204h 响应。

    如果您将 CLK1设置为82H、则来自 FPGA 的 SCLK 将用作 ADC 时钟源。 我要注意的是、数据速率和/DRDY 同步的时序必须准确、否则器件将提供 F_RESync 标志。

    对于您的设置、您的数学计算似乎是正确的。 SCLK 的7.63MHz 用于时钟源。 ICLK_DIV 为8、过采样为400。 我认为您需要对数据周期中的 SCLK 数量进行计数、而不是计算数据速率。 在给定的 SCLK 速率和配置下、这将是1600个时钟周期。 我认为、通过 SCLK 到/DRDY 同步也会有一些严格的时序、如图5所示。

    您可能会尝试从无/DRDY 脉冲开始、仅检查 ADC 读取。 我要注意的是、如果时序不正确、最终将失去同步、这可能导致您最终跳过读取或读取数据两次、具体取决于读取数据的时序。 在同步从模式下、我仍然认为您希望/DRDY 验证主计时。


    吴约瑟

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

    您好、Joseph、

    感谢您的回复!

    在使用多个器件时、我根据设置建议将 DRDY 和 CS 短接在一起、如图所示。 100。

    因此、我不确定您刚才提到的尝试是否起作用、因为 CS 必须为零才能检查 ADC 读数。

    我的原理图设置是否正确、或者每个器件必须有两个单独的 DRDY 输入?

    我的同步时序 t_su (SYNC)和 t_h (SYNC)都等于156ns、因此我认为这是可以的、因为它们超过了时序表中注明的10ns 最小值。

    谢谢、

    Shada

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

    Shada、


    图100中的原理图是正确的、您可以使用/CS 选择器件进行 SPI 通信、也可以使用相同的/CS 触发/DRDY 以同步器件以实现同步从模式。 但是、如图5所示、同步脉冲是可选的。

    如果您在启动器件时没有可选的/DRDY 脉冲(/DRDY 上没有脉冲)、则无需器件持续重新同步即可检索数据。 我建议不要脉冲/DRDY、以便我们可以检查以确保数据从器件中输出。 如果同步脉冲的时序不正确、调试将变得困难。

    如果您无法将/CS 与/DRDY 分开、我认为您可能需要使用/CS 时序。 同样、我认为对于您的设置、第一次读取后将有1600个 SCLK 周期、计算从/CS 下降到/CS 下一次下降的时钟周期数。 如果我们错过了某个事件、请将该时序从1590更改为1610 SCLK、并为每种情况读取10个数据点。 对于每个读取的数据、我将检查每个读取的 NULL 命令响应结果。 请注意、NULL 响应每次都会给出 STAT_1读取值、您可以检查是否每次都设置 F_RESync 标志。

    您还可以在更大的范围内更改此时序、看看我们是否错过了数据速率计算。 您应该为用于读取数据的每个 NULL 命令读取 F_RESync 标志。


    吴约瑟

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

    Shada、

    我已经听过你一段时间了、所以我想检查一下你的问题。 我知道、在没有同步主器件(如菊花链中)的情况下、在同步从器件模式下设置同步脉冲是很困难的、因为您无法查看从器件的时序。

    我现在将关闭此主题、但如果您仍然遇到问题、请发帖、我们将继续处理此问题。

    吴约瑟