工具与软件:
您好!
我能够正确读取芯片 ID 寄存器、并且还正确地将 ADC 模式设置为16位、如下面提供的示波器截图所示:
芯片 ID:为我提供0x22XX

我已禁用 Ch1并仅尝试读取 Ch0。 以下是我发送 NULL 命令时得到的结果: 
正如您在响应中看到的、DRDY0位已设置、Ch0读数为0x8000、Ch1读数为0x0000。
无论我执行什么操作、CH0始终读取为0x8000。 我甚至尝试使用内部正直流测试信号、但仍然获得相同的值。 我在做什么错?
此致、
Dheeraj
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.
工具与软件:
您好!
我能够正确读取芯片 ID 寄存器、并且还正确地将 ADC 模式设置为16位、如下面提供的示波器截图所示:
芯片 ID:为我提供0x22XX

我已禁用 Ch1并仅尝试读取 Ch0。 以下是我发送 NULL 命令时得到的结果: 
正如您在响应中看到的、DRDY0位已设置、Ch0读数为0x8000、Ch1读数为0x0000。
无论我执行什么操作、CH0始终读取为0x8000。 我甚至尝试使用内部正直流测试信号、但仍然获得相同的值。 我在做什么错?
此致、
Dheeraj
尊敬的 Dheeraj:
欢迎来到我们的 e2e 论坛、非常感谢您选择 TI ADC。
从你展示的示波器照片和你的解释,你似乎没有做任何错误的初见.
您是否可以尝试以下操作:
此致、
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