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.

[参考译文] ADS1262:读取不正确或损坏的数据

Guru**** 2392655 points
Other Parts Discussed in Thread: ADS1262

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/741852/ads1262-reading-incorrect-or-corrupted-data

器件型号:ADS1262

您好、先生、

 我有与 MCU 连接的接口 ads1262。我 面临着问题。当平均函数速度中的数据变得缓慢时

我想检查我 与 ads1262的 SPI 通信、那么如何检查我的 SPI 功能是否正常工作?? 请给我一些建议。

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

    您说您正在尝试调试 SPI 函数;能否详细说明问题、例如、您的 SPI 函数的预期行为是什么、您观察到什么?

    如果您有一些其他信息、例如原理图、代码示例或逻辑分析仪捕获、您可以分享这些信息、这将会很有帮助!


    如果猜测您的问题似乎与 ADC 的数据速率有关、您可能无法足够快地读取 ADC 的数据。 我建议使用/DRDY 中断和/或使用"RDATA"命令尝试更快地捕获数据、而不会损坏数据。 如果不使用/DRDY 信号作为中断、则必须使用 RDATA 命令以避免读取部分旧转换结果和部分新转换结果的组合数据(请参阅数据表中的第9.4.7.2节)。

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

    DRDY 引脚产生问题。如何解决?

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

    您好、Kinnari、

    尽量避免在/DRDY 下降沿期间读取数据。
    在这段时间内、输出移位寄存器被载入新的转换结果、因此、在计时时、移位寄存器更新的旧数据、并且您可以从新转换结果开始计时值。

    尝试使用"RDATA"命令读取数据。
    发送 ADS1262时、"RDATA"命令会将转换结果加载到单独的缓冲区中、然后时钟输出来自该缓冲区的数据。 以这种方式读取数据时、新的转换完成后、旧的转换结果不会损坏。

    我希望这对您有所帮助、
    Chris

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

    先生、我如何向您发送我的代码?

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

    您可以在此处发布代码片段、也可以通过电子邮件将其发送至 pa_deltasigma_apps@ti.com。

    此致、
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    向您发送邮件、请检查
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Kinnari、

    我认为问题在于您用于读取数据的 for 循环。 在其中、您会反复向器件发送 RDATA1命令字节(0x12)。 这将重新启动读取数据操作、您可能会在输出中看到重复的状态或 Data1字节。

    相反、请尝试发送0x12字节一次、然后重复计时进入0x00以读取数据、如 ADS1262数据表中的图109所示:

    此致、
    Chris

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

    您好、先生、

    正如您所说的、它是写入的??? 我获得了速度、但无法获得稳定的输出

    CS_=0;
    X3 =读取(0x12);//  
    CS_=1;
    对于(i1 = 0;i1 < 10;i1++)

    CS_=0;
    X1 =读取(0x00);//在屏幕上显示
    CS_=1;
    ADC+=x1;


    X1=ADC/10;

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

    如上图所示、在整个命令中使/CS 信号保持低电平。 如果您在 for 循环中切换/CS、它将终止当前读取数据命令、输出数据将毫无意义。

    此外、您可能对这篇博客文章感兴趣、该文章展示了如何位移和连接数据的示例: e2e.ti.com/.../it-s-in-the-math-how-to-convert-adc-code-to-a-voltage-part-1
    注意:对于 ADS1262 32位数据、无需执行符号扩展。

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

    你好,先生

    在迪瓦里度假后,我会与您联系。

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

    您好、先生、

    但我仍未获得 result.please 帮助

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

    您是否对我在上一帖子中建议的代码进行了更改? 如果对每个字节发出 RDATA 命令、则 ADS1262将永远不会发出整个32位输出代码的时钟、而是始终仅发出 MSB。

    如果您仍有问题、请详细说明您观察到的具体问题。 您可以发送的任何示例都非常有用。