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.

[参考译文] DAC161S997:DAC161S997 SPI 问题

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/773336/dac161s997-dac161s997-spi-issue

器件型号:DAC161S997

请查看上面的图片。 黄色线是 SCK、青色线是 SDO、从 DAC 返回0x85。 如果我们看一下0x01、0x02和0x04位、它会在 SCK 的背面显示良好的转换。 但是、在第一个 SCK 时钟的前期、在早期捕获第一个位、左一个位、0x08。 并且在每个第一个字节期间都具有相同的行为、其中0x08位为"1"。 在后前端期间始终捕获第二个和第三个字节。 我们现在看不到任何读取问题、但这可能是在恶劣的环境中。 为什么要提前捕获第一个位? 这是否有问题?

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

    我不能肯定可以避免这种情况。 看起来可能需要第一个时钟边沿来将 SDO 切换为低电平。 CSB 何时被拉至低电平?

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

    CSB 是这里的青色线、黄色是 SCK。 在这里、我们从之前的屏幕截图中接收到0x85、并接收到两个字节的数据。 有趣的是、我们只在第一个字节0x85期间看到这个问题、并且在任何数据字节上都看不到这个问题。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    数据表中有一条特殊的注释、说明:

    当 CSB 为低电平时、第一个 SDO 转换将在 SCLK 第一个上升沿之后的第一个下降沿发生。

    该问题打破了数据表、因为第一个 SDO 转换发生在第一个 SCK 的上升沿。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Nikolay、您好!

    我在 EVM 上确认了这种行为。 这似乎只发生在 CSB 被拉至低电平后的第一个时钟边沿上。 以下数据始终在下降沿发生变化。 这不应成为问题、因为第一个位是读取命令位、后跟地址。 因此、实际寄存器数据应始终正确、因为它不会在靠近上升沿的位置发生变化。

    黄色为 CLK、品红色为 SDO。  

    谢谢、

    Garrett

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍然需要继续讨论这一点。 请看一下您从处理器端收到此 SDO 的屏幕截图。 由于我们在0x85字节中面临从1到0的非常早的转换、因此处理器可以将第一个位视为0而不是1、并且0x85变为0x05。 这就是我提出要求的原因-我们在 SCK 到达处理器的同时从1转换为0、这个间隔非常小、并且可以由于 EMC 问题而改变。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这实际上会破坏数据表的屏幕截图-缺少 TDO 时间。

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

    我理解这一问题、但第一位只是表示读取、因此即使不正确、也不重要、因为数据和地址仍然正确。 该位可以简单地屏蔽掉、因为主机 MCU 将知道它之前已发送读取命令。 这有道理吗?

    谢谢、
    Garrett