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.

[参考译文] ADS112C04:数据计数器和 CRC 配置

Guru**** 2771175 points

Other Parts Discussed in Thread: ADS112C04EVM, ADS122C04EVM, ADS112C04

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/963462/ads112c04-data-counter-and-crc-configuration

器件型号:ADS112C04
主题中讨论的其他器件: ADS122C04EVM

我正在将对该器件的支持添加到我的器件 I/O 库 diozero 中-我的原型实现 在这里提供

我已经测试了基本的单次和连续读取、并正在尝试绕过数据完整性(DI)检查和数据计数器(DC)选项。

我有一个电位器连接到 AIN0、对于这些测试、该电位器保持在可提供~3660 (0x0E4C)模拟读数的位置。

当这两种模式都被禁用时、读数看起来是正确的。

当禁用 DI 检查并启用 DC 时、一切都是正确的、我可以看到数据计数器正在递增。

当 DI 设置为"反相数据输出"且启用直流时、读数正确、但直流值似乎固定在175 (0xAF)。 读取数据反转是正确的、但是直流反转是错误的。 实际上、直流反转看起来是正确直流值的反转。 针对5个单次读取读数的原始输出

AF 0e 4b fe f1 b4.

AF 0e 4b FD F1 b4

AF 0e 4b fc F1 b4

AF 0e 4b fb f1 b4.

AF 0e 4b fa f1 b4.

第一个字节是直流、始终为0xAF、接下来的2个字节是我所期望的读数、第四个字节是直流反转、正如您所看到的、它按预期递减、 最后2个字节是字节2和3的正确反转。

当我禁用直流电时、我会得到奇怪的读数:

EF 4b F1 b4

EF 4c F1 B3

 EF 4b F1 b4

读取值不正确、字节3不是字节1的反转、字节4是字节2的反转。

接下来将 DI 校验更改为 CRC-16、在启用直流的情况 下、我获得固定直流值(141 - 0x8D)、正确的读数、但是 CRC-16计算是不同的。 我已 根据 crccalc.com 上的数据验证了我的 CRC 实施。 原始数据示例:

8d 0e 4a 9d 76

将直流标志更改为禁用我会得到奇怪的读数、并且再次无法验证 CRC-16值:

C5 4a f2 67

如果有任何指示,将不胜感激。

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

    您好、Matthew、

    欢迎来到 E2E 论坛!  柯维德仍在眼前、我的大部分工作都是在家完成的。  遗憾的是、我只有 ADS122C04EVM、它是24位版本、但我也知道、当我之前检查过它时、我看到 ADS112C04EVM 的结果类似。  以下是使用增益为128且输入短路的 EVM 拍摄的照片。  在这里、GUI 以不同的顺序放置数据、以便您轻松比较结果。

    我强烈建议使用示波器或逻辑分析仪来评估 ADS112C04中的内容。  很多时候、在测试时代码中会出现一些简单的错误。  直接比较 ADC 的数据以及您的代码显示的内容可以很好地揭示出来。

    如果您需要进一步的帮助、请将您正在使用的完整寄存器配置和您看到此问题的通信照片发送给我。

    此致、

    Bob B

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

    您好、Matthew、

    我忽略了有关 CRC 的部分。  对于 CRC、您必须从正确的种子值开始。  我有一个可能有用的应用手册、其中包括有关如何实现这一点的代码示例。

    CRC 应用手册

    此致、

    Bob B

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

    我自己解决了这个问题-所有 I2C 命令都是正确的、但是我只是在读取配置寄存器时没有读取数据完整性检查数据-我只是在读取 RDATA 寄存器时读取它。 我稍后将检查我的代码-如果其他人想要此 ADC 器件的开源 Java 实现、这可能很有用。

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

    您好、Matthew、

    总是很高兴听到客户何时可以解决问题。  如果您需要通过启动新线程获得额外帮助、请告知我们。

    此致、
    Bob B