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.

[参考译文] ADS131M02:无论输入模拟信号是什么、ADC 始终读取0x8000

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1405110/ads131m02-adc-always-reads-0x8000-no-matter-what-the-input-analog-signal-is

器件型号:ADS131M02

工具与软件:

您好!

我能够正确读取芯片 ID 寄存器、并且还正确地将 ADC 模式设置为16位、如下面提供的示波器截图所示:

芯片 ID:为我提供0x22XX

我已禁用 Ch1并仅尝试读取 Ch0。 以下是我发送 NULL 命令时得到的结果:

正如您在响应中看到的、DRDY0位已设置、Ch0读数为0x8000、Ch1读数为0x0000。  

无论我执行什么操作、CH0始终读取为0x8000。 我甚至尝试使用内部正直流测试信号、但仍然获得相同的值。 我在做什么错?

此致、

Dheeraj

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

    尊敬的 Dheeraj:

    欢迎来到我们的 e2e 论坛、非常感谢您选择 TI ADC。

    从你展示的示波器照片和你的解释,你似乎没有做任何错误的初见.
    您是否可以尝试以下操作:

    • 设置 MUX0[1:0]= 01b。
      在这种情况下、您肯定会看到转换数据变化。
    • 在更改任何寄存器位之前、首先发送待机命令。
      更改寄存器位设置。
      发送 WAKEUP 命令以使用新的寄存器设置开始转换。
    • 您是否通过使用 RREG 命令读回寄存器设置来验证 WREG 命令是否正常工作?
      由于您似乎能够更改字长、我想 WREG 命令是可以的。

    此致、
    Joachim Wuerker

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

    感谢您的帮助。

    下面我将尝试将 MUX[1:0]设置为01b。

    已验证我的写入以确保它是0x01。 请参见右侧的响应帧。

    这是我在 ADC 上读取的数据。 同样具有相同的结果0x8000。  

    下面、我将在写入 Ch0 CONFIG 寄存器之前发送待机和唤醒命令。 但我也对每次寄存器写入执行此操作:

    已验证通道 CONFIG 寄存器是否正确设置:

    即使这样、ADC 的结果也是0x8000。 示波器范围与之前相同。

    是的、我已经在每次写入后验证了寄存器设置。  

    提前感谢。

    此致、
    Dheeraj

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

    尊敬的 Dheeraj:

    非常感谢您的额外测量。
    您是否可以发送 RESET 命令而不是 STANDBY 命令? 我是不是误读了这篇文章?

    无论如何,也许我们应该从一开始就看到什么地方可能出错。
    您可以复位器件或对器件进行下电上电、然后只发送一个3x24x4位= 288位帧(DIN 保持低电平)吗? 然后、我们应该可以在 Ch0和 Ch1上看到数据、该数据不同于0x800000或0x000000。 在 DIN 保持低电平的情况下发送多个帧、以查看数据是否持续变化。

    成功运行后、可发送 STANDBY 命令、然后将器件配置为16位字长等、再发送 WAKEUP 命令。

    另外、您能否分享设计原理图以确保没有问题?

    此致、
    Joachim Wuerker

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

    不错的地方 我实际上正在发送 STANDBY 命令、但看起来对于此特定事务、它的采样不正确。 时钟有一个0.3-0.5%的误差、但是此误差应该为标称值。

    下面我将尝试复位并读取芯片 ID 寄存器以验证 ADC 是否正常工作:

    之后、我将读取 ADC 数据。 您是指3x8x4 = 96位帧吗? 请确认。  

    我再次在这里看到两个通道的数据都是0x800000。  

    此致、
    Dheeraj

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

    原理图如下:

    这些是进入 ADC 输入的差分信号:

    希望这对您有所帮助!

    此致、
    Dheeraj

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

    这里是我注意到的一个有趣的东西。 如果我将96位帧发送20次、我会看到 CH1向我发送几次(20%)数据。 CH0似乎卡在0x800000。  

    此致、
    Dheeraj

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

    尊敬的 Dheeraj:

    是、当然是3x8x4位= 96位。 我在想什么:-)。

    感谢您分享原理图。 我不认为这是导致此问题的根本原因、但 AVDD 和 DVDD 电源都需要一个1uF 的电容连接到 GND。

    复位后无需更改任何其他内容、您是否可以再次更改 MUX0[1:0]= 01b 和 MUX1[1:0]= 01b、然后只读取数据?
    可以在不进入待机模式的情况下更改多路复用器设置。

    您是否已尝试过其他主板或设备以查看所有主板是否都存在问题?
    在您的案例中、您应用了哪些输入信号?

    此致、
    Joachim Wuerker

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

    你好

    则是在另一个板上运行。 在这个板中、我看到通道0和通道1的值为0x8000、但偶尔我会看到仅通道1的数据发生变化。 值0x8000是 ADC 或其他东西返回的默认值吗?  

    目前我没有使用 DRDY 中断。 我想让它在没有它的情况下工作。 由于响应字设置了数据就绪位、因此我希望正确读取 ADC 值。 这不是真的吗? 是否应该只在 DRDY 中断的下降沿进行数据读取?

    请告诉我。

    此致、
    Dheeraj

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

    尊敬的 Dheeraj:

    非常感谢附加测试。 老实说,我现在有点迷路了。

    是否尝试过为一些1uF 值更改电源去耦电容? 如上所述、我不希望这是根本原因、但最好将其消除为潜在原因。

    如果器件无法开始转换、则转换结果将显示为0x000000。

    您可以在不监控 DRDYn 引脚或 DRDY 位的情况下"盲目"地从器件读取、但有一些事情需要注意。 我建议阅读 AMC131M02数据表中的"8.5.4 ADC 输出缓冲器和 FIFO 缓冲器"部分。 (我们仍需要将这些重要信息添加到 ADS131M02数据表中)。

    如果您要利用 DRDYn 引脚或 DRDY 位、则应始终读出两个通道的转换结果。 否则、器件会认为您尚未读取所有数据、并且没有相应地更新 DRDYn 引脚和 DRDY 位。

    您是否也在此另一块板上尝试了 MUXx[1:0]= 01b 设置?

    我注意到的一点是、您的 DRDYn 引脚信号看起来有点不一致。 如果为电路板加电并且根本不写入器件、那么 DRDYn 信号在这种情况下会是什么样的?
    尤其是在通信时、看起来 DRDYn 信号不再按预期切换。

    此致、
    Joachim Wuerker

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

    尊敬的 Dheeraj:

    我再次查看了您的第一批示波器图中的一些图。 似乎 DRDYn 引脚每1us 转换一次低电平。 这在该器件上是不可能的、因为它会表明器件以1MSPS 数据速率运行。 您能否测量 CLKIN 引脚上的时钟频率以确保其小于8.4MHz?

    然后、请在上电后立即检查 DRDYn 信号、而不写入器件并进行反馈报告。

    此致、
    Joachim Wuerker

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

    你好 

    我们将 SPI 线焊接到 ADC。 这样做可能损坏了一些 ADC。 我选取了一个不使用 SPI 线的全新电路板、然后终于能够读取 ADC 数据。

    当两个通道的 MUX[1:0]都设置为1时、我看到非常小的值表示噪声越小、这是不错的。 我还测试了正极和负极测试直流信号、并且我能够读取152mV (来自160mV 的一些误差)、但还不错。

    是的、你是对的。 时钟频率超出了该范围一位。 我调整了分压器、然后值看起来更一致。 感谢您的帮助!

    此致、
    Dheeraj

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

    感谢 Dheeraj 的更新。

    我很高兴我们终于找到了这个问题。 很抱歉花了这么长时间。
    我现在结束该主题。 如果您遇到任何其他问题、请再次与我们联系。

    此致、
    Joachim Wuerker