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.

[参考译文] ADS125H02:ADS125H02 RegisterWrite 问题

Guru**** 2541120 points
Other Parts Discussed in Thread: ADS125H02, ADS131E08, ADS131M04, ADS1220

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/965976/ads125h02-ads125h02-registerwrite-problem

器件型号:ADS125H02
主题中讨论的其他器件: ADS131E08ADS131M04ADS1220

您好!

我尝试将 ads125h02用于一个项目、但遇到了一些困难。 我能够读取所有内部寄存器、但无法写入它们。

例如- mode1寄存器:我想使用脉冲转换模式和119µs μ s 的延迟

输入:

DATA[0]= 0x43 (对于 mode1寄存器、基地址为0x40 + 0x03)
数据[1]= 0x15
DATA[2]= 0xD8 (计算出的 CRC)
DATA[3]= 0x00

输出:

DATA[0]= 0xFF
数据[1]= 0x43
DATA[2]= 0x15
DATA[3]= 0xD9 (I、0xD8除外...)

如果我读取 mode1寄存器、它只显示默认值、而不显示我设置的值。

我已经检查了寄存器是否被锁定、当我读取 status0寄存器时、我得到0x01、这对我来说似乎是正确的。 我应该在哪里查找错误?

我使用 Atmel SAMG55作为主设备和带有 DMA 的 SPI

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

    您好 Kamal、

    您能否提供传入和传出通信(DIN 和 DOUT)的逻辑分析仪快照? 您是否已使用示波器检查这些信号以确保它们没有噪声? 您的系统原理图也会有所帮助。

    布莱恩

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

    您好 Bryan、

    感谢您的快速回复。

    我没有来自 DIN 和 DOUT 的任何逻辑分析仪快照。 我现在在家工作、明年只能去办公室。 我检查了所有电压、它们都非常好。 我使用通过 SPI (3.3V)的闪存芯片和具有 I2C 的 RTC、工作正常。 我有一个用于5V 和3.3V (LMZMZ23601)、+/- 15V (Traco TMR6)和模拟5V (ADR435)的24V 移动电源。 Nettie 只是铜、我想将其用作符号、以便更好地进行概述

    这里是 ADC 的原理图、其中 w 是1-10V 模拟信号、而 K_RC 是放大应变仪信号

    这对您有什么帮助吗?

    我在家里有调试器、复位为高电平、START 为低电平。 所有 IC 位于同一 PCB (20x10cm)上、我只使用1MHz SPI 速度、因此 SPI 频率不应成为问题、这就是我没有在 SPI 线路上使用任何终端电阻的原因。

    最长的布线为 SPI_CLOCK (20mm 长度、0.2mm 宽度、2个过孔)、其他 SPI 信号的长度为10-20mm、最多2个过孔)

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

    您好 Kamal、

    您能否正确读取/写入任何寄存器? 您说过您读回状态、但是否可以尝试更改任何其他寄存器设置并查看这些值是否可以读回?

    由于 CRC 为您提供 D9而不是预期的 D8、这表明存在通信错误。 CRC 值 D9的相应命令为00 02、这实际上是表16中的 NOP 命令。

    由于 ADS125H02具有2个 CS 引脚、是否确定要选择正确的 CS 引脚与不同的寄存器通信? SPI 线路上是否还有其他流量、CS 引脚上是否有争用、可能会干扰数字通信?

    我还会在您的系统中看到分离的接地平面(或至少 DGND 和 AGND 网)、这可能是一个问题。 通常、我们建议使用实心接地层来避免接地噪声。

    布莱恩

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

    您好 Brian、感谢您的回复。 我可以正确读取所有寄存器(始终读取复位值)、但不能写入任何寄存器。是的、我确定选择正确的 CS、因为我只使用 CS2时正确读取 Mode4寄存器。 我有对噪声非常敏感的模拟传感器、这就是为什么我将 单独的接地层作为一个层、这些层在 ADC 上以星形拓扑进行连接的原因。 我将此原则用于其他几个项目(ads131e08、ads131m04、ads1220等)、并且 ist 一直都很好。

    我将尝试得到一个振荡器来检查 SPI 信号是否发生了变化。

    编辑:出于测试目的、我将所有寄存器值更改为非默认值

    mode0-in:   mode0-out:(正确的 CRC、写入后读取显示正确的值0x4c)
    0x42              0xff
    0x4c              0x42
    0x45              0x4c
    0x00              0x45

    Mode1-in:   Mode1-out:(错误的 CRC、写入后读取显示正确的值0x15)
    0x43             0xff
    0x15             0x43
    0xD8             0x15
    0x00              0xd9

    Mode2-in:   Mode2-out:(正确的 CRC、写入后读取显示正确的值0x40)
    0x44             0xff
    0x40             0x44
    0x1f              0x40
    0x00              0x1f

    mode3-in:   mode3-out:(错误的 CRC、写入后读取显示正确的值0x01)
    0x45             0xff
    0x01             0x45
    0xCA             0x01
    0x00              0xcb

    参考输入:          参考输出:(正确的 CRC、写入后读取显示复位值0x05、而不是0x11)
    0x46             0xff
    0x11             0x46
    0x85             0x11
    0x00              0x85

    模式4输入:   模式4输出:(正确的 CRC、写入后读取显示正确的值0x44)
    0x50             0xff
    0x44             0x50
    0x00             0x44
    0x00              0x00

    因此、我有几个错误的 CRC、但大多数情况下、与正确值的差值为1、并且除 ref 寄存器之外的每次读取都是正确的。 我将在启用内部基准的情况下尝试不同的基准寄存器值、看看它是否会产生影响、是的、我确定我使用的是 ADS125H02而不是01、因为我读出了正确的器件 ID (0x62)并检查了顺序 nr 多次。

    Edit2:如果我使用0x00作为 ref 作为寄存器值、我会读出正确的值。 内部基准是否可能存在问题?

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

    您好 Kamal、

    那么、在我完成编辑后、您可以执行以下操作:读取和写入所有寄存器(至少是您迄今为止尝试过的寄存器)、尽管有时会出现 CRC 错误? 这是准确的吗?

    您是否尝试读取数据? 或者至少开始转换过程并监控 DRDY 中是否存在~1/数据速率下的脉冲、以检查此功能? 您还可以尝试读取温度传感器或电源回读等已知值、以获取器件运行的基准。

    到目前为止、您描述的所有内容都听起来像是数字通信问题、因此我将在您拥有示波器和逻辑分析仪后立即开始介绍。 您还可以尝试在通信线路上添加这些终端电阻器、以防时钟信号出现问题等

    布莱恩

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

    您好 Bryan、

    我可以向每个寄存器写入一些数据(不要尝试所有可能的组合)、但具有特殊值的寄存器除外。 我不会得到"CRC 错误"、DOUT 仅显示不同的 CRC 值(我计算的值的+1)、但在我尝试的每种情况下、寄存器数据仍会写入寄存器、基准寄存器除外。

    我可以读取数据、我尝试使用温度传感器和 hvdd/36作为输入、这似乎是真实的、可重现的、但我想使用内部参考、而不是 AVDD 来获得更好的 SNR。

    我将尝试尽快使用逻辑分析仪。 如果您有更多关于我可以查找错误的想法、请告诉我。

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

    您好 Kamal、

    因此、您从 MCU 读回的存储数据在某些情况下会在 CRC 数据中显示一个位翻转(与您计算的值相比)、但寄存器设置正在生效? 如果是这种情况、则会导致数字通信线路上出现回读问题。 否则、如果 CRC 值不匹配、ADC 将不会识别寄存器设置、它们将保留为默认值。 因此、ADC 似乎正在接收正确的数据、更改配置设置、并在 DOUT 上正确输出数据、但在从 ADC 到 MCU 的传输中的某个位置存在问题。

    这肯定需要一个逻辑分析仪和一个范围来进行故障排除。 请告诉我您在购买这些仪器后发现了什么。

    布莱恩