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.

[参考译文] ADS127L21:使用 STM32F411 的同步时钟提高 ADS127L21 在 320kSPS 下的 SPI 读取效率

Guru**** 2810805 points

Other Parts Discussed in Thread: ADS127L21

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1621080/ads127l21-improving-spi-read-efficiency-for-ads127l21-at-320-ksps-using-synchronized-clock-from-stm32f411

器件型号: ADS127L21

TI ADC 团队大家好。

我将 ADS127L21 与 STM32F411CEU6 搭配使用。

Current Configuration

  • 数据速率:320kSPS

  • DRDY 连接到 MCU EXTI 中断(最高优先级)

  • 每个 DRDY 中断((~3.125µs 周期)、MCU 开始 SPI 读取

  • SPI 时钟:16MHz

  • 每个样本具有 24 位读取

这意味着 MCU 在每个 3.125µs 时处理一个中断、从而产生较高的 CPU 负载。


问题:

是否有更有效的方法来读取 SPI 数据以减少 MCU 中断开销?

具体来说:

  1. 我是否可以使用 STM32 TIM 为 ADC 生成同步时钟 (CLK)?

  2. 如果 ADC 采样时钟和 MCU 计时器是锁相的、
    可在循环模式下使用 DMA 为 SPI 连续计时吗?

  3. 是否可以完全消除 DRDY 中断、
    而是依赖于确定性的 SPI 时序?

建议的想法:

STM32 TIM→生成 ADC 主时钟
SPI 在 16MHz 上持续运行
DMA 循环模式接收数据
每个 24 位帧会与转换时序自然对齐 (2µs @16MHz)

在存在 ADS127L21 时序限制的情况下、该方法是否安全可靠?

是否有建议的最佳实践可将 MCU 开销降低至 320kSPS?

谢谢你。

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

    您好、Zhang、

    我不熟悉 STM32、因此可能有更好的方法来收集数据。  但是、如果我了解您想做什么、您需要连续 SCLK。  我尚未尝试此方法、但您应该能够通过将/CS 接地、然后计算时钟周期以将数据检索与/DRDY 对齐来在 3 线 SPI 模式下运行 ADC。

    • 是的、对于 ADS127L21 主时钟输入、您需要对 STM32 使用相同的时钟源。  SPI SCLK 和 CLK 必须同步。  
    • 在 3 线 SPI 模式下、您应该能够连续运行 SCLK、但我尚未验证这一点、也不知道是否有任何其他客户尝试了此方法。  
    • 是的、您可以使用确定性时序并省去对 DRDY 信号的监控。  我们在器件最初经过验证时使用了这种方法。

    此致、
    Keith Nicholas
    精密 ADC 应用