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**** 1828640 points
Other Parts Discussed in Thread: ADS1262, ADS1263
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1203480/ads1262-issue-with-bits-shifted-out-incorrectly

器件型号:ADS1262
主题中讨论的其他器件: ADS1263

我使用 ADS1262进行以下设置

每10次读取 ain0和 ain1上的差分输入

400sps

增益16.

CRC 和状态字节被启用

大约每 12000次读取中有1次(大约每2分钟一次)、我会获得一个读数、其中位全部向左移动1。 这是非常奇怪的、仍然可以通过 CRC 测试、同时会使我的系统混乱、因为错误读取是上一个错误读取结果的两倍。

上图是错误读取前的读取。 (顶部到底部 MOSI、MISO、CLK、CS)

 

该图像读数在其上面读数后大约10ms。 您可以看到、所有位都向左移动。 我现在可以使用状态位来显示这是不良读取、因为我没有 ads1263。第八位应该始终为0。此外、我使用外部时钟、因此第六位应该为1。 我已经找到了如何希望它不会对我的系统产生影响。 我很好奇这是一个常见问题(发生在我拥有的6块原型板上) 我该怎么做才能解决这个问题? 它在所有时钟频率下都发生、在1MHz 的较低速度下则更加普遍。 目前、我以10 MHz 的频率运行。  我的信号看起来非常干净、所以我在寻找一些建议。  

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

    尊敬的 William Dunkley:

    在顶部的图像中、您显示有7个字节正在随时钟移出。 不过、我预期只能有6个:状态、4个数据字节、CRC。 第7个字节与第1个字节相同。 然后、您是否在额外的时钟下重复数据?

    您如何知道新数据何时可以随时钟移出-我在您的逻辑分析仪捕获中没有看到 DRDY 引脚。 您是否在 STATUS 字节中使用 ADC1位?

    系统时钟(CLKIN)和串行时钟(SCLK)最大为8MHz。 您刚才提到它使用10 MHz、但我不确定那是用于哪个时钟的。 在上面的图像中、我在1us 内计数了10个时钟周期、这意味着您以10MHz 的频率运行 SCLK、这是不允许的。 更多信息请参阅表7.3和7.6

    -Bryan

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

    很抱歉、在图像中添加额外的字节造成了混淆。 我目前正在读取所有字节3次并将它们进行比较、这是为了尝试捕捉到错误的读数。

    我们不使用 DRDY 引脚、也不查看 ADC1位。 我可以轻松地查看 ADC1位。

    至于速度、我没有尝试8 MHz。 不过、在1MHz 和5MHz 频率下、 在1MHz 频率下产生的误差比在10MHz 频率下多10倍以上、这就是我选择该速度的原因。 我在5MHz 时也有更多的误差、但它小于1MHz。 您是否知道为什么速度较慢会导致读数较差?  

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

    尊敬的 William Dunkley:

    只是为了澄清一下、哪些时钟设置为10MHz (或1MHz、5MHz 等) ? SCLK 和 CLKIN 都可以吗? 还是仅有一个呢?

    -Bryan

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

    CLKIN 是7.68 MHz 晶体、我参考的时钟是 SCLK。  

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

    尊敬的 William Dunkley:

    我在你的原始文章中看到、你说你正在 AIN0和 AIN1之间连续转换。 您还说过"每10秒"、但不清楚这是微秒还是其他某个间隔。 您能确认吗?

    如果您没有使用状态字节中的 DRDY 或 ADC1位、如何决定何时输出数据? 您只是使用计时器吗?

    如果您要发送一个.Sal 文件、显示在多个采样周期内捕获的逻辑分析仪、请发送。 与屏幕截图相比、这可能更易于查看。

    -Bryan

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

    将来、我们将通过不同的信道进行多路复用。 但目前、我们仅读取第一个差分端口、尽管看起来我们每次都设置该端口。  
    我们根据 timer.e2e.ti.com/.../ADS1262-Capture.zip 每10ms 读取一次 

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

    尊敬的 William Dunkley:

    如果您以400SPS (2.5ms)的速率进行采样、为什么要每10ms 输出一次数据-您不会错过一些数据样本?

    我猜测此处发生的情况是您的计时器和 ADC 会随着时间的推移而出现不同步情况、并且您将开始在"静默周期"期间读取数据(请参阅数据表中的表9-17)。 为什么在 SCLK 较慢时看到更多错误是合理的、因为在 SCLK 较慢时、时钟输出数据(6字节)的时间更长。 这会增加您在静默期间开始时钟移出数据的可能性。

    我建议您改用某种中断方式来识别应读取数据的时间。 如前所述、您可以使用专用 DRDY 引脚、轮询 STATUS 字节中的 ADC1位、也可以使用组合的 DOUT/DRDY 引脚实现该功能(有关该引脚行为的更多信息、请参阅9.4.4.4节)。 当 DRDY 引脚从高电平转换为低电平(或 ADC1位从0转换为1)时、您可以开始为数据计时。

    请尝试使用以下方法之一、然后查看问题是否消失。 我还建议您使用表7.6中指定的 SCLK 速度

    -Bryan

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

    谢谢 Bryan、我要给 DRDY 引脚一枪、就像我将其连接到电路板上的某个东西一样。 我将根据结果更新该主题帖。  

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

    这很有效、使用 DRDY 引脚可以摆脱我看到的所有 CRC 故障和位移问题。  检查新数据是否就绪的软件版本似乎确实存在一些问题、因为我总是会看到新 ADC1数据为1、但有时会收到错误数据。 非常感谢您的帮助 Bryan。  

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

    尊敬的 William Dunkley:

    我很高兴这个问题得到了解决,没有太多的努力。 如果您有其他问题、请启动新主题帖、我们将在其中为您提供支持。

    -Bryan