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.

[参考译文] ADS8168:SDO 通信/时序问题?

Guru**** 2516190 points
Other Parts Discussed in Thread: ADS8168

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/796794/ads8168-sdo-communication-timing-issues

器件型号:ADS8168

你(们)好。

我有一个 ADS8168EVM、我已经使用 PHI 控制器对其功能进行了测试。  为了确保它能够与我的定制主机(即 Adafruit FT232H USB 转 SPI)配合使用、我已经引出了所有数字信号并将它们连接到 FT232H。

似乎我能够正确地从该主机发送命令、但我无法正确地从器件接收数据。 我只是执行基本寄存器读取/写入、但似乎器件在时钟上升沿切换数据、即使我的模式设置为00。 数据在主机的上升沿正确发送。  

例如、我每次写入3个字节。

第一次、我使用 WRITE 命令写入寄存器00h、值0xAA ([0x8、0x0、0xAA])

然后、我使用下面的读取命令([0x10、0x0、0x0])从该寄存器读取

此时、我应该在 SDO 线上得到0xAA、但我往往会得到垃圾位。

请参阅随附的图像。 (IN 是 MOSI、OUT 是 MISO)

([0x8、0x0、0xAA])

([0x10、0x0、0x0])

读取(数据在时钟的上升沿发生变化)

谢谢!

镍氢电池

 

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

    我不确定是否有时钟边沿差异的解释。 但是、您是否注意到在发送24b 读取帧后、您会在下一帧中检索8b 寄存器数据?

    数据表的图57中显示了这种情况。

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

    您好、Keith、

    感谢您的回答。

    每次在24b 读取帧中发送时、我都会在 SDO 线上接收到随机数据。 (您可以从最后一张图片中看到)

    参照图57、我的主机不会一个接一个地发送24个时钟。 它首先发送8个、然后发送16个(同时用于写入和读取)。 这是个问题吗? 根据我的前两张图片、我是否也正确地写入数据?

    最棒的

    镍氢电池  

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

    根据您的第一张图片、似乎您正在写入正确的数据。 没有最小的 SLCK 频率或帧周期;写入8位、延迟、然后写入剩余的16位时不会出现问题。 唯一可能的时序问题是从最后一个 SlCK 下降沿到/CS 上升沿所需的 t-HT_CKCS=7.5nS 延迟。 (图3)您可能满足此要求、但它看起来/CS 在最后一个下降 SLCK 边沿的同时变为高电平。

    如果器件未正确处理 WRITE 命令以启用寄存器回读、则您将获得转换数据、而不是寄存器内容。 如果输入是浮动的、或者您在使/CS 为低电平之前没有等待转换完成、则这将显示为随机。

    如果可能、请尝试使用示波器而不是逻辑分析仪捕获上述数据。 我仍然不确定 ADC 为什么在时钟上升沿的 SDO 引脚上启动数据。

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

    您好、Keith、

    我似乎能够以较大的裕度满足7.5ns 的 t-HKT_CKS 要求:

    这里是相同的照片、但具有示波器( 我还将输入接地)

    CH1:CLK

    CH2:MOSI

    CH3:MISO

    Ch4:CSB

    写入0x8、0x0、0xAA

    写入0x10、0x0、0x0

    正在尝试读取0xAA

    读取0xAA 已缩放:

    最棒的

    镍氢电池

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

    您好、Nik、

    您能否在一次示波器捕获(总共32个 SLCKs)中显示从寄存器读取所需的两个连续帧?  

    前 24b 应该是读取帧、然后是下 一个数据帧(/CS 第二次变为低电平)、至少8个 SCLK 与数据表中的图57类似。  

    我想确保这两个帧之间没有其他可以解释随机数据的活动。

    此致、

    Keith

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

    您好、Keith、

    请参阅随附的。 在 CS 再次变为低电平之前、SDO 似乎会"输出"一些数据。

    这是否必须解决信号完整性甚至接地共享问题? 我使用的是 ADS8168EVM、其中取出了 PHI 控制器并将5根导线焊接到了 MOST (SDO、SDI、RST、CLK、CSB)。 EVM 电源也在外部使用电源的螺钉安装(DVDD 为3.3、AVDD 为5.3V)。

    最棒的

    镍氢电池

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

    SCLK 的上述时序看起来正确。 我认为这是一个信号完整性问题、您可能是正确的。 您应该能够使其正常工作、但您可能需要降低 SCLK 的速度。 将 EVM 上的串联电阻替换为10-50欧姆也有助于提高边沿速率。

    由于您要通过螺钉端子为 EVM 供电、因此确保 EVM 板与主机板之间也连接了接地线。 如果主机由同一 DVDD 电源供电、则直接在主机和 EVM 之间运行 DVDD 和接地线、以缩短接地电流最常流经的路径长度。

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

    附件未通过。 您能否再次上传映像、*。png 或*。jpg 将起作用。

    我建议进行一些基本的故障排除。 检查 ADC 引脚32上的 AVDD 电压、并验证它是否为5.3V。 检查 REFIO 引脚3、其测量值应为4.096V。 使用外部电源连接时、我还建议移除 R18、以将板载 LDO 与外部电源隔离。

    此外、由于您要连接外部主机、该主机是否通过与 DVDD 相同的电源供电? 如果没有、并且它在 ADC 上的 DVDD 之前加电、则可能导致器件无法正确复位。 我建议确保在电源上电之前 ADC 输入引脚上不存在电压。

    由于您有外部电源、您可能需要在电源电压上升到最终值后强制进行复位、以确保 ADC 在已知的复位状态下运行。

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

    我使用 PHI 控制器返回到 EVM 设置、现在似乎、即使使用 GUI、我也无法像以前那样再正确地向 ADC 写入值。 例如、通过 GUI 将0xAA 写入寄存器0xAA、写入方法将继续。 但是、回读仍然显示为0x00。 它与许多其他寄存器类似。

    这是否会成为有故障的 EVM?

    最棒的

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

    您好、Keith、

    我已使这部分工作。 请参见下图。

    返回的寄存器内容为0x54、而不是0xAA。 SDO 线路发送数据的时间似乎太早(现在在新器件上)。

    最棒的

    镍氢电池  

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

    使用新器件、您是否还检查了 PHI 板的正常运行? 遗憾的是、我看不到您的数据屏幕截图。 当您说 SDO 相对于哪个信号提前发送数据时? /CS、SCLK?

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

    您好、Keith、

    我一直在使用一些器件设置、现在已使其完全正常工作。

    我认为器件可能存在某种缺陷。 我注意到、复位时、即使在具有 PHI 控制器的 EVM 板上、ADC SDO 也会更改上升沿上的数据、这会导致主机误读数据。 这应该是 SDO 模式00的默认值、SDO_CNTL1 寄存器设置为0x00。   

    不过、有趣的是、当我将该寄存器设置更改为0x01时、根据数据表、这是一个无效配置、SDO 现在在下降沿发生变化、导致主机现在在上升沿进行正确采样、因为它在 SPI 模式00下运行。  

    请仔细检查一下吗? 我注意到 PHI 控制器中也存在相同的通信问题(SDO 在上升沿发生变化)-->但是这在 EVM 上是有效的,因为采样/保持时间对于 PHI 控制器来说是足够的,但对我的主机来说也是如此。

    请参阅随附的主机通信示波器截图:

    SDO 模式00上升沿数据变化:

    SDO 模式01下降沿数据更改(配置无效!) 但在上升沿从主机正确读取数据:  

    PHI 控制器读取 SPI 模式00、单个 SDO、数据在上升沿发生变化、但仍然正确:

    最棒的

    镍氢电池  

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

    我很高兴您能在您的主机平台上完成此工作。 我本周不在办公室。 我将在下周晚些时候进一步探讨这一点,并在我有机会进一步研究这一点之后再进行后续工作。

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

    您好、Nik、

    我确认了 ADS8168在 SPI-00模式下 SCLK 的上升沿启动数据。  这样做是为了支持更高速度的 SCLK 频率。  大多数 FPGA 和 MCU 在启动边缘后不需要保持时间、如果需要、通常小于1ns。

    下面是 SPI-00模式的时序图。  MSB (以下示例中的 D15)在/CS 的下降沿启动。  主机将在 SCLK 的第一个上升沿捕获、这也是启动下一位(D14)的边沿。  只要数字控制信号是干净的、这将可靠地工作。

    在您的特定情况下、由于您将主机 MCU 的跳线连接到 ADS8168EVM、因此可能会出现振铃、从而破坏捕获边缘上的 SDO-0数据。   不支持在 SlCK 的下降沿启动数据的模式、不建议使用。

    此致、
    Keith