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:ADS131M02 任意跳过 CRC 帧

Guru**** 2891410 points

Other Parts Discussed in Thread: ADS131M02

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1643132/ads131m02-ads131m02-skips-crc-frame-arbitrarily

器件型号: ADS131M02

当通过 SPI 发出寄存器读取命令时、芯片有时会按预期回复、但有时会跳过 CRC 帧。 这意味着响应没有到达预期帧。 这种行为是否已知且符合预期?

以下是寄存器读取命令的预期响应示例:

以下是观察到的错误行为:

 

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

    尊敬的 Alejandro:

    欢迎来到 TI E2E 论坛。

    当您从 ADS131M02 读取寄存器时、 ADC 会在您向 ADC 发送 RREG 命令后的下一帧中移出寄存器数据、因此您应该在发送 RREG 命令后将芯片选择 (/CS) 切换回高电平、然后在下一帧再次将其拉至低电平。

    下面是从 ADS131M0x 读取增益寄存器(该寄存器中具有 0x1000 数据)的时序示例、请注意、这是一个短帧时序、如果您想查看来自 ADC 的输出 CRC 字、可以向 ADS131M02 再发送三个 NULL 命令(DIN 上的 0s 数据为 3x24 位)。

    BR、

    Dale

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

    尊敬的 Dale:

    感谢您的答复。

    在捕捉上面分享的屏幕截图后不久,我开始在帧之间切换 CS,如你所建议的。 但是、这并没有解决问题...

    另一方面、在移除我连接到 DRDY 引脚的未连接示波器探头后、问题几乎完全停止。 也许、这会导致芯片受到干扰...? 不过、我偶尔继续观察这一问题。

    如您所建议的那样、使用短帧似乎是解决此问题的部分解决方法。 这样、在发出命令时、我不会在打算移出 CRC 字时意外移出下一帧的起始。 然而、每当我想移出 CRC 字以进行验证时(例如,在处理寄存器读取响应或正常的样本数据帧时)、我会面临再次出现该问题的风险、导致 CRC 验证失败(不是由于帧内容损坏,而是因为 CRC 字已被芯片完全跳过!)。

    在初始芯片配置中使用 CRC 验证和短帧、使我的应用更加稳定、能够从偶尔出现的故障(如我分享的故障)中恢复... 但是、我仍然对它感兴趣。 即使我的设置肯定不是最好的(相当多的 Dupont 导线)、我也希望信号完整性和噪声问题表现为帧内容损坏、而不是像这样干净地跳过整个字。

    您对此有何看法? 您认为这只是由于连接不良导致的数据完整性问题吗?

    此致、

    Alejandro

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

    尊敬的 Alejandro:

    您能否同时捕获和展示 CS、SCLK、DIN 和 DOUT、/DRDY 的示波器屏幕截图?

    BR、

    Dale

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

    嗨、Dale。 很抱歉耽误你的时间。 在这里、

    谢谢、

    Alejandro

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

    尊敬的 Alejandro:

    您分享的计时显示

    • 您在 MOSI 上发送给 ADS131M02 的内容: 您发送的是 4 个全为 0 的字(每个字都有 24 位)。 这是使用 CRC 字从 ADS131M02 读取转换数据的典型时序。
    • ADS131M02 响应并在 MISO 上移出的内容: 0x050100 是指示 CH0 上有新数据的状态字、0x001E3C 是 CH0 的转换数据、第三个字 (0x000000) 是 CH1 的数据、最后一个字 (0x804400) 表示输出 CRC 0x8044 是正确的 CRC。 我在您的时间安排上没有看到任何问题。

    如果您在短帧或完整帧内仍无法从 ADS131M02 读取寄存器、请分享您读取寄存器的时间。

    编辑: 似乎您使用 Dupont 导线连接 ADC 和微控制器、因此使用和不使用示波器探头会有所不同、或者 您的示波器探头可能具有高电容。

    BR、

    Dale