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.

[参考译文] ADS8684A:在每个通道和每个模式下读取65535

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/993636/ads8684a-reading-65535-on-every-channel-and-in-every-mode

器件型号:ADS8684A

大家好

我在具有 F28379D 的系统中使用 ADS8684A。

F28379D 是 SPI 主设备、我可以与 ADS 通信、因为我可以将程序寄存器读取为通道的范围...

但是、当我尝试读取通道的值时、即使我在条目上未发送任何内容、它们也始终处于最大值...

我向您发送了我的硬件配置和软配置,但有人对此有什么想法吗? 提前感谢大家!

然后、如果 ret = 1、我通过发送 NO_OP 命令来启动自动 Rst 模式

这是我的硬件配置

再次提前感谢您...

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

    您好 Guillaume、

    在读取数据时、您能否使用示波器提供/CS、SCLK、SDI 和 SDO 的时序图? 您是否使用 GPIO 仿真控制器上的 SPI 外设? 我在您的代码中看不到更多详细信息。

    此外、AIN_xGND 引脚连接到哪里? 这些引脚应连接到 GND、因为该 ADC 仅支持单端输入。

    您能否测量 REFIO 和 REFCAP 引脚上的电压以查看它们是否为4.096V?

    此致、

    戴尔

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

    您好 Dale、

    首先感谢您的快速回答...

    我的振荡器上不能同时有4个信号、因为这非常小... 我将尝试一些东西为您提供信号。

    以下是我的 GPIO 配置:

    这里是 AINx_GND 和 AINx_P 引脚的发展方向(硬件设计已经在双措施的潜在升级中进行了...

    所有 AINxx_EXT 都连接在一个连接器上,以到达另一个 PCB,然后:

    对于+:

    然后 MES_x_OUT_UC 连接到我的硬件测量治疗。

    我已检查 REFIO 和 REFCAP 是否为+4.096V。

    很抱歉,我的英语水平很近似,感谢你能抽出时间。

    我将尝试在振荡器上获取我的4个信号。

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

    您好、Dale、

    我找到了一种将我的信号置于振荡器上的方法... 以下是我发送给您的代码的第一张图片顺序的所有电车(设置范围3次、然后设置自动序列...)

    最后两个捕捉是 get_Auto_RST_mode_data_opti_for3 ()的一个 salve (最后一个捕捉只是一个缩放)

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

    您好 Guillaume、

    感谢您提供更多信息。 我看到 SDO 上显示的代码始终为高电平。 范围3为+/-0.3125Vref、即+/-1.28V 范围。 您的测试信号/电压是多少? 您能否测量 AIN_XP 上的电压? 最好将 AIN_xGND 引脚本地接地。

    为了解决该问题、我建议您简化测试:

    1. 在通道0上施加精密直流信号、测量 AIN_0P 上的电压。
    2. 使用默认输入范围(+/-2.5Vref、即+/-10.24V)。 仅通过使用手动模式捕获通道0上的数据、例如、仅向通道0的 ADC 发送0xC000 0000。
    3. 检查从 ADC 读取的数据。

    请在您收到代码后通知我。

    此致、

    戴尔

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

    您好 Dale、

    从现在起、我的测试信号上没有任何内容。 现在、我有一个1VDC NAD、我已检查它是否能够顺利到达我的 AIN_0P。

    我进行了测试、我向您发送了信号、但结果是一样的... 我注意到 SDO 上的一件奇怪的事情、也许您会对它有一个想法...

    因此,我默认设置范围,然后发送命令手动读取通道0:

    然后我只需发送 NO_OP:

    SDO 信号在设定范围和手动命令之间是怪异的(如为电容充电?????)

    这可能与我的最大值有关? (笑声) 如果您有任何想法,请告诉我!

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

    您好 Guillaume、

    您的时间不正确。 请参阅以下我的反馈:

    在第一个映像的第一个周期中、您将使用24个时钟在 SDI 上发送0x0B0000、您将使用0x00数据配置 CH0输入范围寄存器、 由于在 ADC 上电后 CH0输入范围寄存器中的默认值全为0、因此该周期不执行任何操作。

      在第一个映像的第二个周期中 、发送0x0C00并尝试选择 CH0、这是一个错误的命令、因为0xC000应发送到 ADC 以选择 CH0。

    2.在第二幅图像中,这是一种不正确的读取数据的方法,因为 NO_OP 命令(0x0000)应该在命令的同一周期内发送,而且您也在发送0x0000 (前16个时钟) 作为 ADC 的命令、这意味着 ADC 没有任何内容、您将发送另一个0x0000 (后16个时钟)。 实际上、对于 NO_OP、16个时钟就足够了。

      请参阅 ADS8684A 数据表图1中的典型时序、前16个时钟用于向 ADC 发送命令以选择通道、后16个时钟为 NO_OP (0x0000)以检索数据。 一个周期内总共32个时钟。

    3.对于在 SDO 上看到的现象,您可能需要检查布线/信号上是否有大电容。

    4.在先前的测试中,您将输入范围设置为范围3,即+/-0.3125Vref (+/-1.28V)范围。 当 ADS8684A 的输入悬空时、在 与内部偏置电压相关的+/-0.3125Vref 范围内可看到1.6V 电压。 这个1.6V 电压实际上已经超过了这个范围内的+1.28V 最大电压、这就是为什么您看到65536转换代码的原因。 当一个外部信号被施加到输入上时、将看不到偏置电压。 请参阅下 表中具有输入范围的偏置电压。 尝试其他范围或向 ADC 输入施加信号进行测试。

    我建议您在测试中应用直流信号、同时请确保您的命令正确且计时正确。

    此致、

    戴尔

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

    您好 Dale、

    我解决了我的问题、实际上我的"写入命令寄存器"函数是错误的、我在写入命令时使用了4位的偏移量(0x0C000而不是0xC000)。。。。

    很抱歉这个错误、非常感谢您抽出宝贵的时间为您提供帮助。 !!