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.

[参考译文] ADS131M04-Q1:DRDY 行为不符合预期、读取的寄存器值不正确

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1192927/ads131m04-q1-behavior-drdy-is-not-as-expected-and-register-values-read-are-incorrect

器件型号:ADS131M04-Q1
主题中讨论的其他器件: ADS131M08

您好!

我使用 ADS131M04-Q1、并使用 Verilog 连接 FPGA。 ADC 配置为:MODE = 16'h0100、 CLOCK = 16'h0F0A 、GAIN1 = 16'h7777、其他默认设置。 FPGA 提供的 ADC 时钟 fCLK = 8.1968MHz、SPI 时钟为 fCLK/4。

我遵循以下步骤:

1.在2048个 ADC 时钟周期内设置 SYNC/RESET = 0

2.使  SYNC/RESET 失效为 1并等待  2个 ADC 时钟周期

3.在 DRDY 的上升沿等待

4.将 CS 置为低电平

5.写入寄存器:

命令{WREG_CMD、MODE_REG_ADDR、7'd2、8 'd0}(共24位)、

模式{16'h0100、8 'd0} (共24位)、

时钟{16'h0F0A、8 'd0} (共24位)、

GAIN1{16'h7777、8 'd 0} (共24位)

虚设52{'d 0}。 发送的字总数为6个。

6.禁用 CS 并等待 DRDY 的下降沿。

7.启用 CS 并读取6个字。

8.禁用 CS 并等待 DRDY 的下降沿。

9. 启用 CS 和读取寄存器命令:

{RREG_CMD、MODE_REG_ADDR、7'd2、8 'd0} (共24位)、

虚拟{120 'd 0}。 发送的字总数为6个。

禁用 CS 并等待 DRDY 的下降沿。

11. 启用 CS 并读取寄存器:

{3个寄存器} (总共3x24位)、

虚拟{3x24位}。 总共6个字。

重复步骤8-10。 执行此操作时、不会重复获取寄存器值。 为什么?

并查看了 DRDY 的行为:

它不是周期性的。 为什么?

此致

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

     尊敬的 Prakash:

    我将 详细介绍、并尽快与您联系。 谢谢。

    此致、

    戴尔

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

    尊敬的 Dale:

    感谢您的答复。 "我不会介意的,我要和你一起。"

    此致

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

     尊敬的 Prakash:

    感谢您的耐心。

    要读取寄存器、实际上无需等待/DRDY 信号、请参阅我刚刚捕获的用于读取 CFG 寄存器(0x06地址)的时序 、该时序已写入0x0700、以便在上一步中使用默认延迟启用全局斩波模式。 如您所见、寄存器数据(0x0700)在第二帧的 DOUT 线路上成功移出、无需检查和等待/DRDY 信号。

    此致、

    戴尔

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

    尊敬的 Dale:

    感谢您的答复。

    我同意不等待/DRDY 变为低电平。 但是、我需要持续重复读取相同寄存器、而不读取转换后的数据。 捕获的波形显示了与我尝试重复读取寄存器模式、时钟和 GAIN1而不读取 ADC 数据时相同的情况(由于我正在从事 ILA 的工作、因此很难在一次性读取中捕获寄存器的值。 因此、只有我在连续读取它们)。 当我执行此操作时、/DRDY 的行为方式与我的意愿不同。

    在你的读数中,你不是在读命令的响应吗? 我无法保证发送 SCLK 进行相同的读取、因为它仅显示用于寄存器值读取。 对于读取寄存器、我不需要发送6字帧吗?

    此致

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

    尊敬的 Prakash:

    我的 图像仅显示了读取单个寄存器的时间。 但是、通过修改命令读取多个寄存器没有问题。

    要只读取一个简单或多个寄存器、无需发送6字帧。 如果发送更多字/SCLK、除了第一个字中的寄存器数据外、在其余字中将什么都不会得到。

    我在第一个帧中发送的命令(0xA300)的响应在下一个帧中为0x0700、它已经显示在这里。

    我不明白您说过什么"我无法确定 SCLK 被发送用于读取相同的内容、因为它仅显示用于读取寄存器值"、您能否说明一下? 我正在努力了解您面临的挑战。 此外、您是否能够正确读取像图像中的时序这样的单个寄存器数据?

    此致、

    戴尔

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

    尊敬的 Dale:

    这是我的错。 当 nnn nnnn 在读取命令中为0时、它确实只发送寄存器数据而不是响应。

    好的、说明了。 但正如观察到的,它发送一些数据时,我发送6字帧(你可以看到在跟踪邮件的屏幕截图),当我正在读多个字。 我没有尝试只读取寄存器读取。 让我尝试一下。

    同意。

    我的意思是、为什么没有串行时钟脉冲来读取响应(确认命令)。 我感到困惑。 由于您读取的是单个寄存器内容、因此除了寄存器本身的内容外、不会对命令做出任何响应。 忽略该查询。

    新查询:

    如果我保持 ADC 时钟和串行时钟(SCLK)不变、并在 VDDS 的输入引脚上连接电容器以避免任何纹波、/DRDY 速率是否会下降? 我观察到它减少了一半。

    我将为连接称重传感器(COD)的信道1和其他3个保持开路的信道提供屏幕截图。 当我尝试改变负载时、所有其他通道也都发生了变化、这表明通道之间存在串扰。 为什么会这样?

    寄存器的内容如后跟消息中所述。

    此致

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

    尊敬的 Prakash:

    好的、感谢您的解释。

    VDD 引脚上的电容器用于电源去耦、如果您未更改主时钟或其他配置、我看不到会影响/DRDY 信号的任何原因。 要解决该问题、请提供 数字信号的时序、包括通过示波器捕获的/DRDY 时序。

    此 ADC 的串扰规格为-120dB、远好于其他 ADC。  我假设您使用的是您自己的电路板、这是系统级问题、干扰可能由布局布线引起。 正确的 PCB 布局设计也很重要。 出于测试目的、我建议您从外部或内部施加直流信号或短输入、并且不要将未使用的通道悬空。

    此致、

    戴尔

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

    尊敬的 Dale:

    我将尝试捕获信号并共享。

    同时、如果启用/CS 并读取1个字、禁用并获取 I REPEAT、则会对数据产生什么结果?

    此致

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

    尊敬的 Prakash:

    要明确、您要检查以下步骤吗?

    1. 启用/CS
    2. 读取1个字: 读取1个字通道转换数据还是读取一个特定的寄存器?
    3. 禁用/CS
    4. 重复步骤1至3

    请注意、该数据将在下一帧中显示。

    此致、

    戴尔

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

    尊敬的 Dale:

    抱歉。 我们忙于域变换,所以无法回应你。

    我想要检查一下。

    您是否清楚下一帧将包含哪些数据?

    此外、如果禁用了 CRC、可以在读取作为输出 CRC 时跳过它?

    此致

    Prakash

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

    尊敬的 Prakash:

    我对这种反应太迟表示歉意。 在过去的一个星期里,我一直在度假。 我注意到您已经发布了一个新问题、并收到了我们团队的回复。  

    读取寄存器时、寄存器数据将在下一帧中显示。

    此致、

    戴尔

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

    尊敬的 Dale:

    假期过得还好吗?

    抱歉、由于我没有收到您的任何响应、我认为该线程已关闭、同时我也开始使用 ADS131M08、于是创建了新线程。

    是的、我收到了回复。 谢谢。

    实际上、我想跳过读取 CRC、因为在本例中没有太多需要。 那么、现在我可以跳过如果在 MODE 寄存器中禁用它、则可以跳过读取。

    我忘了告诉你关于串话。 存储器读取问题会导致串扰。 现在问题已经解决。 但 DRATE 尚待解决。

    谢谢

    Prakash

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

    尊敬的 Prakash:

    请在另一个问题中保持您的沟通、我将关闭此主题、谢谢!

    此致、

    戴尔

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

    好的戴尔

    感谢您的观看。

    此致