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.

[参考译文] ADS1256:SPI 时钟速度

Guru**** 2543380 points
Other Parts Discussed in Thread: ADS1256

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/713061/ads1256-spi-clock-speed

器件型号:ADS1256

您好!

我正在从事一个以 ADS1256为重点的本科研究项目。 实际上、我正在设计一个简单的数据采集器件、用于仪表类。 我使用 ESP32和 Arduino 环境来开发软件。

根据 ADS1256的数据表、最佳时钟速度大约为2-2.5MHz、但是当以30KSPS 的全速采样时、我会得到时序延迟、这会极大地影响我的数据。 以30KSPS 的速率采集1000个样本时、需要大约33ms、但我的器件需要43ms。 为了尝试解决此问题、我决定在实际从 ADS1256获取数据时尝试提高 SPI 时钟速度。 我本来没想到这会起作用、但是随着我的增加、时序误差减小了。 我现在已将其设置为仅在实际收集数据时才处于15Mhz、在设置器件时仅处于2.5MHz。 在这些设置下、数据几乎与我要比较的 ADS1256EVM 评估板相同、并且没有可测量的延时时间。  

我的问题:这确实起作用了、还是我缺少了某种影响、如果这不起作用、我如何减少 SPI 时序误差?

谢谢、

Jacob Eshleman

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

    您好、Jacob、

    欢迎访问 TI E2E 论坛!

    ADS1256 SCLK 实际上需要比2MHz 慢一点。 它的最大频率是作为主时钟频率的函数给出的...如果您运行的 SCLK 速度超过2MHz、那么我不会怀疑数据是否有效

    您可能遇到的问题是、您的 MCU 未在下一个/DRDY 脉冲变为低电平之前计时所有数据。 如果在更新时尝试读取数据、则会得到一个损坏的结果、即旧数据和新数据的组合。

    解决此问题的最佳方法是使用/DRDY 信号中断 MCU 并立即获取数据、以避免在/DRDY 下降沿期间读取数据。

    此致、
    Chris

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

    Chris、  

    感谢您的回复、我将不得不根据您的建议调整一些软件。 软件已经在使用中断、因此我不确定为什么仍然存在延迟。 但是、我没有编写与数据收集相关的函数、这些函数是从开源库中获取的。 我将仔细审核并对其进行适当编辑。

    谢谢、  

    Jacob E.

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

    您的代码中可能有任何可能很慢的阻塞操作、例如通过串行接口将数据输出到控制台?

    这样的操作可能会阻止 MCU 快速读取数据。 为了进行故障排除、您可以尝试禁用其他操作并使用逻辑分析仪来查看读取操作是否更快地响应/DRDY 中断。 如果必须实施其他通信接口、则尝试批量发送数据(即将25个样本收集到存储器中、然后将所有25个样本一次性传输到串行接口)以减少此类进程的总体开销。

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


    在收集所有数据之前、我不会将数据输出到串行端口、并且除了数据收集之外、没有其他操作。 我还在修改一些库的软件、我相信时间错误会出现在那里、我还没有找到它。

    谢谢、

    Jacob E