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.

[参考译文] ADS8688:SPI 时钟和 SDO 时序

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1533590/ads8688-spi-clock-and-sdo-timing

器件型号:ADS8688

工具/软件:

大家好、我使用配备 ADS8688 的 ADS8688EVMA。 我对运行连接到 TMDISDK5749 的 SPI 通信示例有疑问。

ADS8688 数据表解释如下。

•事件 3:在 SCLK 信号的第 16 个下降沿、器件读取 SDI 线路上输入字的 LSB。 对于剩余的数据帧、器件不会从 SDI 线路读取任何内容。 在同一边沿、转换数据的 MSB 在 SDO 线路上输出、并可由主机处理器在 SCLK 信号的随后下降沿读取。 对于 16 位输出数据、可以在第 32 个 SCLK 下降沿读取 LSB。 SDO 在后续 SCLK 下降沿输出 0、直到下一次转换启动。

我使用的 SPI 模式为 1、CPOL 设置为 0、CPHA 设置为 1。 这与数据表中列出的内容相符。

SPI 示例是使用 TMDSIDK5749 RTOS 的 pdk_am57xx_1_0_17 安装的、并执行了调优、例如将缓冲器修改为 32 位以匹配执行 ADC 的芯片的规范。

将数据从主器件发送到从器件没有问题。 SDI 值在时钟的上升沿发生变化、相应的 SDI 值在下降沿保持。

问题出在从器件向主器件 (SDO) 发送数据的过程中。 在 SPI 通信中、如果 CPOL 为 0 且 CPHA 为 1、则 SDO 值必须在上升沿更改、并在下降沿保持不变。 然而、根据 ADS8688 数据表、ADC 结果的 MSB 会在第 16 个下降沿输出到 SDO。 然后、主器件在第 17 个下降沿读取数据。

使用示波器进行验证后、确认 SDO 值实际上在第 16 个下降沿发生变化。

问题是:当第 17 个 (SCLK) 时钟出现下降沿且 SCLK 信号变为低电平时、从器件再次改变 SDO 的值、主器件如何读取在第 17 个时钟下降沿在第 16 个时钟下降沿发送的信号? 似乎没有足够的时间。

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

    您好、korshare、

    ADS8688 中的 SDO 在 SCLK 下降沿的 10ns 内仍有效。  我无法从上图确定您的 SCLK 频率、但如果您将时钟速度加快到全 17MHz 最大速度、您应该会看到 SDO 在下降时钟沿仍然有效。  需要保持 CPOL=0 和 CPHA = 1。

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

    谢谢你。 下面的代码是否反映了您所说的内容?

    spiParams.bitrate = 17000000;

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

    您好、

    也许,不完全肯定,因为我不熟悉你正在使用的过程。