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.

[参考译文] ADS1255:RDATAC后的第一个样本读取错误(有时)

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/572123/ads1255-first-sample-read-after-rdatac-is-wrong-sometimes

部件号:ADS1255

我正在RDATAC模式下收集数据。

在采集结束时,我发送了SDATAC命令。

我正在使用逻辑分析仪监控CS,CLK SDIN和SDOUT线路, 我可以清楚地看到,当我发送RDATAC时,有时在我写命令的第一个时钟,而不是在命令发送后的第八个时钟,我有数据出来。 几乎看起来ADC仍处于RDATAC模式。

我想知道我是否没有正确使用SDATAC命令,但它在大多数时候都能正常工作...所以我很困惑我可能会做什么错...

以下是SDATAC命令:

和RDATAC,进行第一次采集。

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

    一般而言,您应该能够在DIN上的命令中计时时忽略DOUT数据。 有时,此字节是重复数据,有时则只是垃圾字节。 但是,在这种情况下,您可能会遇到SDATAC命令未生效的问题...

    我的建议是在发送第一个SPI命令之前包括一个小的延迟(在/CS LOW和第一个SCLK上升边缘之间)。 最有可能的是,第一个命令没有生效,因为在命令中开始计时时,设备上的SPI接口尚未处于活动状态。 通常,包括此延迟在内的时间可以解决问题。

    注:ADS1255数据表(T3)中有一个计时规范,说明此处无需延迟。 但是,我认为最好的做法是在这里包括一个延迟,因为如果/CS信号有任何额外的延迟(从ADC的角度来看)导致SCLK到达/CS之前的器件,您可能无意中违反了(T3)规范。

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

    您能否定义"小延迟":1ns,10ns,1 SCLK周期...?

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

    您好,Traian:

    我建议50 ns。

    请告诉我这是否解决了问题。

    此致,
    Chris

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

    是的。

    我在我的状态机中增加了另一个完整的SPI时钟周期,并进行了大约十几次收购,看起来很有效。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    太棒了,如果我能帮我解决其他问题的话,就告诉我吧!

    此致,
    Chris