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.

[参考译文] ADS1256:连续循环和多路复用循环期间的读取问题

Guru**** 2535750 points
Other Parts Discussed in Thread: ADS1256

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1131673/ads1256-issue-in-reading-during-both-continuous-cycling-and-muxed-cycling

器件型号:ADS1256

您好!

我在电路板上使用4个 ADS1256 IC。 第1 个 IC 配置为读取 一个差分通道、第4个 IC 配置为4个单端通道。

所有差分通道都经过编程、可实现连续循环。 编程的其余单端通道使用多路复用器循环。

CLKIN 为7.68MHz、SCLK 为1.92MHz、对于连续循环和多路复用循环、DRATE 均设置为3750。

连续循环的程序序列为:

1) 1)在 DRDY 的下降沿发出 SDATAC 命令。

2)在   DRDY 的下一个下降沿更新状态寄存器(hx00) 、然后延迟5微秒

3) 3)更新 ADCON 寄存器 (hx00) 、然后延迟5微秒

4)更新 DRATE 寄存器 (hxC0)、然后延迟5微秒

5) 5)在 DRDY 的下一个下降沿发出 SELFCAL 命令、然后延迟5微秒

6) 6)在   DRDY 的下一个下降沿更新多路复用器寄存器(hx01)  

7) 7)在  DRDY 的下一个下降沿发出 RDATAC 命令 、然后延迟8 微秒

8) 8)读取 DOUT (24位)  

9) 继续在  每个 DRDY 的下降沿读取 DOUT (24位)

所有3个差分通道上的观察和问题

1) 1)确认所需的 DRATE 在示波器上设置、高电平时间为2.5微秒、并在 DRDY 周期的剩余时间内保持低电平。

2) 2) SCLK 根据 程序序列生成24个脉冲、周期为0.52微秒

3) 3) DOUT 始终保持高电平、因为我们无法正确读取该值。 请帮助我们 解决此问题

具有4个单端通道的第4个 IC 的多路复用循环的程序序列为:

1) 1)在 DRDY 的下降沿发出 SDATAC 命令。

2)在    DRDY 的下一个下降沿更新状态寄存器(hx00) 、然后延迟5微秒

3) 3)更新 ADCON 寄存器 (hx00) 、然后延迟5微秒

4)更新 DRATE 寄存器 (hxC0)、然后延迟5微秒

5) 5)在 DRDY 的下一个下降沿发出 SELFCAL 命令、然后延迟5微秒

6)在   DRDY 的下一个下降沿更新多路复用器寄存器(对于第二个 SE-Ch 为 hx81) 、然后延迟5微秒

7) 7)依次发出 SYNC、WAKEUP、RDATA 命令、然后延迟8 微秒

8) 读取 hx80第一个 SE-Ch 的 DOUT (24位)

9) 9)在   DRDY 的下一个下降沿更新多路复用器寄存器(第三个 SE-Ch 为 hx82) 、然后延迟5微秒

10) 10)依次发出 SYNC、WAKEUP、RDATA 命令 、然后延迟8 微秒

11) 11)读取 hx81 第二个 SE-Ch 的 DOUT (24位)

12)在     DRDY 的下一个下降沿更新多路复用器寄存器(第三个 SE-Ch 为 hx83) 、然后延迟5微秒

13) 13) 依次发出 SYNC、WAKEUP、RDATA 命令 、然后延迟8 微秒

14) 读取 hx82第三 个 SE-Ch 的 DOUT (24位)

15)在    DRDY 的下一个下降沿更新多路复用器寄存器(第一个 SE-Ch 为 hx80) 、然后延迟5微秒

16) 16) 依次发出 SYNC、WAKEUP、RDATA 命令 、然后延迟8 微秒

17) 读取 hx83 第三 个 SE-Ch 的 DOUT (24位)

所有3个差分通道上的观察和问题

1) 1)确认所需的 DRATE 在示波器上设置、高电平时间为2.5微秒、并在 DRDY 周期的剩余时间内保持低电平。

2) 2)正确生成 SCLK (根据读取和写入操作期间的程序序列) 24个 脉冲、周期 为0.52微秒

3) 3)发现 DIN 为编程序列。

4)但是、DOUT 信号在 T6延迟后不会立即出现、而是仅在 DRDY 处于低电平时(即 DIN 处于活动状态)才会出现 RDATA 命令。 尽管第一个命令问题是 SDATAC、但看起来连续模式仍然处于活动状态。  请帮助我们解决该问题。

我们从很长时间以来一直在努力解决这些问题。 我们将感谢您立即提供帮助。

此致、

Somayya

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

    您好、Somayya Ammanagi、

    您能否使用逻辑分析仪查看您的通信序列并将图像发送给我们? 如果不能看到实际通信、就很难知道发生了什么。

    请包括 SCLK、DIN、DOUT、CS、DRDY。 还请确保将 PWDN 和复位引脚拉至适当的电平

    布莱恩

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

    尊敬的 Bryan:

    感谢您的快速回复。 ADS1256程序使用处理器 Artix-7上的 FPGA Verilog 代码来实现。 我在示波器上观察到的情况、我一次只能看到两个信号。 根据您的建议、我将确认 PWDN 和复位电平、并提供 ILA 上 SCLK、DIN、DOUT、DRDY 的观察结果。 在我们的情况下、CS 始终保持低电平、PWDN 和 RESET 始终设置为高电平。

    此致、

    Somayya

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

    Continuous Cycling

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

    Muxed Cycling

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

    您好、Somayya Ammanagi、

    明天让我来看看这个问题、我会回来的。 感谢您的耐心!

    布莱恩

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

    如何确保 SDATAC 被有效执行并且多路复用循环被激活?

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

    Now it seems to be alright with DIN, DRDY and SCLK. But DOUT does not seem to be consistent.

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

    您好、Somayya Ammanagi、

    您是否已将板上的所有4个 ADC 的 CS 连接到低电平? 如果是、它们不共享 SPI 信号、例如 DIN、DOUT、SCLK 等、对吗? 换句话说、您有4个单独的 SPI 外设与每个器件进行通信?

    您能告诉我您想在逻辑分析仪图中显示什么吗? 我假设您发送的第一幅图像来自 ADC、您将在其中连续转换单个通道。 第二幅和第三幅图像来自 ADC、您在其中通过通道进行多路复用-这是正确的吗? 如果是、第二幅和第三幅图像之间的区别是什么? 由于我无法放大波形、因此很难判断您要发送哪些命令。 可能有助于为一个通道(多路复用器更改、同步、唤醒、读取)发送通信的特写图像、然后发送一个已缩小的多通道读取版本

    很难辨别、但当您通过通道进行多路复用时、DOUT 似乎有一些活动。 此数据是否有效?

    要检查您接收的数据以及 正在采样的通道、我只需对所有通道施加不同的电压。 因此、如果您使用4个通道、我会向通道1施加1V 电压、向通道2施加2V 电压等。这将帮助您了解多路复用器是正常循环还是仅停留在一个通道上。

    检查 SDATAC 命令是否正常工作的唯一方法是输入命令(使用正确的时序等)、然后查看在后续 DRDY 脉冲之后是否从器件获取有效数据、而无需发送 RDATA 命令。 我首先确认您可以正确读取数据、例如、通道上的1V 输入会为您提供~1V 的 ADC 输出代码。 这可确保您在确认 SDATAC 的操作之前知道您的数据输出是什么。

    布莱恩

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

    尊敬的 Bryan:

    感谢您的回答。

    是的、CS 在所有4xADC IC 上都连接低电平、并且它们不共享 SPI 信号 DRDY、SCLK、DIN、DOUT、即每个器件都有单独的 SPI 通信。

    前3个 IC 在每个 IC 上配置为一个差分通道(连续循环以获得更高的吞吐量)、以实现同步采样。

    第四个 IC 配置为4个单端通道(多路复用循环以实现低吞吐量)。

    第二幅图对应于配置了多路复用循环的第4个 IC 的信号。 现在、我们能够使其按照数据表正常工作、图3中也显示了这种情况以供您参考。  

    第一个图形对应于配置为连续循环的前3个 IC 之一。 这是我们现在遇到的问题。 在这里、所有信号 DRDY 和 SCLK  (DIN 未显示、因为它是连续循环)似乎都正常、但 DOUT 始终处于高阻抗状态。  在其他两个 IC 中、DOUT 始终为低电平(此处未显示图)。 即使在 DRDY 和 SCLK 正常的情况下、DOUT 在连续循环中始终保持恒定的原因有哪些?

    此致、

    Somayya

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

    您好、Somayya Ammanagi、

    很高兴多路复用器件能够正常工作。

    对于其他三个器件:您使用的是 RDATAC 还是 SDATAC 模式? 我 在逻辑分析器图中看不到该命令的发送、但可能是在获取该图像之前发送的。 如果您还没有使用 SDATAC 模式、则可以尝试使用 SDATAC 模式、只需查看您是否可以使该模式工作。 这将要求您在 DRDY 降至低电平后发送 RDATA 命令。 您还需要在数据表(第6页)中尊重时序、特别是时间 T6。

    您提到 所需的数据速率为3750 SPS、但在发送的图像中、DRDY 脉冲相隔~2000个单位(该微秒吗? 逻辑分析仪上的时间刻度是多少? 在3750SPS 和连续转换模式下、您应获得间隔~267us 的脉冲。 您能确认情况是这样吗?

    您是否尝试读回寄存器设置以确保您发送的命令已生效?

    布莱恩

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

    尊敬的 Bryan:

    对于其他三个器件、我们将使用 RDATAC。  

    命令序列如下所示。

    1) 1)在 DRDY 的下降沿发出 SDATAC 命令。

    2)在    DRDY 的下一个下降沿更新状态寄存器(hx00) 、然后延迟5微秒

    3) 3)更新 ADCON 寄存器 (hx00) 、然后延迟5微秒

    4)更新 DRATE 寄存器 (hxC0)、然后延迟5微秒

    5) 5)在 DRDY 的下一个下降沿发出 SELFCAL 命令、然后延迟5微秒

    6) 6)在   DRDY 的下一个下降沿更新多路复用器寄存器(hx01)  

    7) 7)在  DRDY 的下一个下降沿发出 RDATAC 命令 、然后延迟8 微秒

    8) 8)读取 DOUT (24位)  

    9) 继续在  每个 DRDY 的下降沿读取 DOUT (24位)。

    在分析器图像中、您在 x 轴上看到的是样本(2000 * 0.13 ≅260微秒)。 DRDY 显示 DRATE 设置正确。

    如数据表中所述、我假设器件上电时以 RDATAC 模式(和30K SPS DRATE)启动、在此模式下、器件将不会读取除 SDATAC 和 RESET 之外的任何命令。 因此、我首先发出 SDATAC 命令、然后发出上面序列中的其他命令。 根据、3750 SPS DRATE 已有效设置。 这证实了早期命令的有效性。 在分析仪中、我还可以使用 SCLK 对应的 DOUT、但 DOUT 本身似乎已死。

    此致、

    Somayya

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

    您好、Somayya Ammanagi、

    感谢您确认系统的一些参数。

    您是否曾尝试过不按照刚才描述的顺序发出 RDATAC 命令、而是等待 DRDY 下降至低电平、发出 RDATA 命令、然后发出24个 SCLK? 在此 过程中、请记住要考虑时间 T6。 这是我在上一个帖子中提出的建议。 也许您可能会遇到 RDATAC 模式问题、这将决定是否出现这种情况。

    您还可以尝试 将 多路复用 ADC 的行为应用于连续转换 ADC。 由于您知道多路复用 ADC 工作正常、因此您应该能够在另一个 ADS1256上运行相同的固件并获得相同的结果。 这至少会告诉您 DOUT 是否可以切换。

    另一个需要检查的问题是、FPGA 是否有可能驱动 ADC 上的 DOUT 引脚、从而使它们无法切换? 或者、这些引脚是否有可能在电路板上的某个位置短接至 DVDD? 我也会检查这些可能的问题。  

    布莱恩

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

    尊敬的 Bryan:

    是的、我们尝试在 SDATAC 模式下发出 RDATA 命令、并在某些情况下发现 DOUT 切换。  

    正如您所建议的、我们将尝试使用多路复用模式进行连续转换。

    FPGA 如何驱动 ADC 上的 DOUT? 我无法理解。 我将检查 DOUT 引脚是否误接至 DVDD。

    下面列出了一些具体问题:

    1) 1)为什么在相同的序列和时序中有效执行的 DIN/命令不一致?

    2) 2)在发出任何其他命令之前是否需要发出 SDATAC 命令?

    此致、

    Somayya

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

    您好、Somayya Ammanagi、

    您能更详细地解释一下您尝试以下操作时发生的情况:

    [引用 userid="497318" URL"~/support/data-converters-group/data-converters/f/data-converters-forum/1131673/ads1256-issue-in-reading-during-both-continuous-cycling-and-muxed-cycling/4204927 #4204927"]是的,我们尝试在 SDATAC 模式下发出 RDATA 命令,并在某些情况下发现 DOUT 切换。

    DOUT 是否随机切换? 您是否实际获得了良好的数据? 至少您知道 DOUT 正在处理 ADC

    我使用 FPGA 进行设计已经有一段时间了、但我记得任何引脚都可以配置为输入或输出。 我的问题是考虑 FPGA 上的 DOUT 输入引脚实际上配置 为输出的可能性、并且 DOUT 线路上可能存在争用。 这可能不是您具体实施的可能性。

    关于您的问题:

    [引用 userid="497318" URL"~/support/data-converters-group/data-converters/f/data-converters-forum/1131673/ads1256-issue-in-reading-during-both-continuous-cycling-and-muxed-cycling/4204927 #4204927"]为什么在相同的序列和时序中有效执行的 DIN/命令可能不一致?

    我不确定我是否理解您在这里具体提到的内容。 在什么情况下、您会发现不一致? 我当时认为、3个连续转换的 ADC 均未按预期工作。 你说的是一些工作还是一些不知道?

    [引用 userid="497318" URL"~/support/data-converters-group/data-converters/f/data-converters-forum/1131673/ads1256-issue-in-reading-during-both-continuous-cycling-and-muxed-cycling/4204927 #4204927"]是否需要在发出任何其他命令之前发出 SDATAC 命令?[/quot]

    如果器件处于 RDATAC 模式、则需要在发出其他命令之前先发出 SDATAC 或 RESET 命令。 当我过去为 ADS1256编写固件时、我通常会在加电后立即发出复位命令、以确保我不处于 RDATAC 模式。 然后、我初始化 ADC 并开始获取数据。

    您是否 确认 了命令之间的时序符合 ADS1256数据表第6页上的时序表中设置的要求? 具体时间是 T6和 T11? 我无法从您发送的逻辑分析仪图中得知、因此我将在这个图上向您发送。

    布莱恩

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

    尊敬的 Bryan:

    主要问题与已针对24位读取和写入进行编程的 SPI 驱动器有关。 在发出8位命令时、剩余的16位读取/写入变量保持为零。  由于 WAKEUP 等命令全部为8位零、因此发出的虚拟零被误解为 WAKEUP 等命令。

    现在、在修改 SPI 驱动器以读取/写入选定的8/16/24位变量后、所有信号都是一致的、现在我能够在所有4个器件上获取数据(前3个器件上连续循环、每个器件具有一个通道、第四个器件上的多路复用循环用于四个通道)。

    但是、 如图1所示、从持续循环中采集的数据存在一些问题、这些问题显示了一些尖峰。 在对此进行研究时、发现 虽然大部分时间 DRDY 信号是纯净的(如图2所示)、但有时它看起来是损坏的(如图3所示)。 Figure 1

    请建议如何纠正?

    此致、

    Somayya

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

    您好、Somayya Ammanagi、

    您是否在示波器上查看过该信号以查看发生了什么情况? 它是干净的还是有很多噪声?

    DRDY 是 ADC 的输出、因此没有理由像这样切换。 在第三幅图像中、我看到两个 DRDY 脉冲看起来是什么样子的、这两个脉冲大约是40个部件。 假设时间刻度与以前相同、即40*0.13 = 5.2us 或约200kSPS。 ADS1256不会对此进行快速采样、因此我不能想到任何 DRDY 会像这样快速切换的情况。

    我会使用示波器检查所有通信信号、并确保它们是干净的。

    布莱恩

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

    尊敬的 Bryan:

    示波器和 Vivado ILA 上的信号看起来非常干净。 无明显噪声。

    由于 DRDY 由 ADC 输出、并且在连续循环期间输出、因此不会发出其他命令、因此 DRDY 信号应无任何毛刺脉冲。 DRATE 被设定为3750SPS、并且在示波器和 ILA 上验证同样正常(DRATE 周期267微秒:低电平持续大约13微秒、高电平持续大约254微秒)。 但是、在大约2个样本中(即2*0.13 = 0.26微秒)、在这两个样本之间看到的意外 DRDY 尖峰(假设为低电平)为高宽。 SCLK 周期(0.52微秒)设置为 CLKIN 的4个样本(0.13微秒)。

    为了供您参考、当 SCLK 周期(1.04微秒)更改为8个 CLKIN 样本时、意外的 DRDY 尖峰的发生会减少 、但观察到(具有相同的特性)、即使 DRDY 假设为高电平也是如此。

    我将向您发送具有相同接收示波器的信号、供您参考。

    此致、

    Somayya

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

    您好 、Somayya Ammanagi、

    谢谢、请随时向我发送示波器照片。

    这是在所有三个连续转换的器件上发生的、还是仅在一个器件上发生的?

    如果这种情况发生在所有三个器件上、它们是否都显示出与 SCLK 周期的某种相关性、SCLK 周期会减少尖峰的数量?

    布莱恩

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

    您好、Bryan、

    对延迟的回复表示歉意。

    下面是 DRDY 信号的示波器屏幕截图、用于显示其上的噪声级别。

    DRDY 中的尖峰问题仅出现在第1个和第3个器件中、而不是出现在第2个器件中。

    当 DRDY 中出现此问题时、相应    地、SCLK 信号中的干扰将以位转换的形式出现、仅占用两个 CLKIN 周期、而不是如之前图片中所示的 CLKIN 时钟周期。 但我没有观察到任何缺少的 SCLK 脉冲、例如23个而不是24个脉冲;可能是我们观察到的时候、它可能没有显示出来。

    此致、

    Somayya

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

    您好 、Somayya Ammanagi、

    是的、我最初认为相对高频 SCLK 信号和 DRDY 布线之间存在一些交叉耦合。 这是合理的、因为在任何情况下 ADC 都不会输出~1 SCLK 周期的 DRDY 脉冲。 此外、还存在一些对 SCLK 频率的依赖、因为当您降低 SCLK 频率时、不需要的 DRDY 尖峰数量会减少。

    我的最佳建议是查看您的电路板布局并查看这些信号是否可以通过任何方式进行耦合。 如果您必须对电路板进行返工、我还会检查是否存在助焊剂残留物和不正确的焊点。

    我还会尝试捕获示波器上的奇怪 DRDY 转换以及 SCLK 信号、以查看是否存在相关性。

    布莱恩