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.

[参考译文] DAC8760:启用 CRC 后、与其他非8760 SPI 器件菊链时出现问题。

Guru**** 2398695 points
Other Parts Discussed in Thread: DAC8760, ADS8681, DAC8771

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/812538/dac8760-problem-daisy-chaining-with-other-spi-device-that-is-non-8760-when-crc-is-enabled

器件型号:DAC8760
主题中讨论的其他器件: ADS8681DAC8771

大家好、我在使用 DAC8760和其他非 DAC8760器件实现菊花链拓扑时遇到了问题、只有在芯片启用 CRC 后才会出现这种情况。

如果过去未启用 CRC、我对创建 CRC 没有问题、但最近我们遇到了一个问题、即通过共享 SPI 总线、CRC 被意外启用、因为芯片忽略了锁存引脚、所以我们别无选择、只能启用 CRC。

我可以菊链多个 DAC8760、同时启用所有芯片的 CRC、但我无法以菊花链形式将 DAC8670与 ADS8681连接在一起。

数据表建议在以菊花链方式连接时在所有 DAC8670中启用 CRC、但不提及链中存在其他芯片时的情况。

在我看来、过多的 CRC 错误会将帧恢复为24位。 这只是我的猜测,但到目前为止,我还无法证明这一点。

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

    您好!

    您能否描述您在此配置中观察到的症状? 一个器件没有响应还是两个器件都没有响应? 此外、菊花链中首先使用的是哪个器件?  

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

    尊敬的 Kevin:

    感谢您的回答。

    最初、我尝试以菊花链形式连接多个 DAC8670、从2到8、启用了 CRC、没问题。 当我通过链移动比所需的帧宽度多几个字节时、发现 DAC8670的宽度从32位恢复为24位时、会观察到我遇到的所谓问题。

    然后、我尝试以菊花链形式连接一个 ADS8681、然后连接一个 DAC8670。 我设法在两个芯片上配置菊花链、正如我一直能够做到的那样、然后我继续将 DAC8670的 CRC 使能数据与全零相结合写入 ADS8681。 在该1次尝试中、它无法启用 CRC。 使多个 DAC8670在启用 CRC 的情况下工作的代码相同。

    使用相同的固件结构、我尝试了 DAC8670、然后尝试了 ADS8681配置、结果成功了。  

    然后、我恢复到 ADS8681、然后返回 DAC8670拓扑、并修改了代码以执行 CRC 使能两次:首先是24位帧、然后是32位帧、它起作用了。 我们不确定有何区别。

    另一个问题是、引用 dac8670数据表中的数据、"如果 DIN 和 SCLK 上存在特定图形、也可以在锁存引脚上没有上升沿的情况下启用帧错误模式"、那就是芯片在每个 SCLK 上检查该图形? 是否可以重置计数器中的数据? 我们之所以提出这一要求、是因为对于我们的设计、启用 CRC 会使我们的固件变得非常复杂、因为菊花链器件由不同的电源供电(出于冗余目的)、因此为了知道哪个芯片上的帧大小将是一项非常复杂的任务。 更糟糕的是、即使锁存器处于低电平时、芯片也会与其他器件并行共享 DIN 总线...

    此外、表6中显示的 CRC 启用二进制模式与十六进制中显示的模式不完全匹配。 具体而言、二进制文件显示0b01010111xxxxxx11001011、而十六进制文件显示0x57xxx (DB2=1)。如果我执行愚蠢的行为、请原谅我、但我真的对此感到困惑。

    我们还在研究在新设计中使用 DAC8771替代 DAC8670、以克服我们遇到的上述问题。 到目前为止、我们没有看到 DAC8771数据表中提到的相同描述(即可以在没有切换锁存器的情况下启用 CRC)、因此我们想与 TI 再次确认这一点。

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

    您好!

    感谢您的更新。 我怀疑 SPI 帧对齐被损坏、这会导致 DAC 的 CRC 字计算错误、从而导致菊花链中 SDO 引脚上的数据未对齐、这听起来像是根据您所做的实验得出的根本原因。

    我认为、内部帧宽度计数器可以通过切换 LATCH 引脚来复位、而不会在下降沿和上升沿之间发出任何时钟、这基本上是一个不操作命令。  

    看起来这实际上是表4和表6组件之间的复制/粘贴错误。 该模式应仅为0x57xxxx。 如果 CRCEN 位(DB3)中有1、则 CRC 将被启用。

    DAC8771未表现出这种行为。

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

    尊敬的 Kevin:

    感谢您的回复。 我还怀疑该模式应为0x57xxx8、而不是表6中显示的模式。 但是、在我们的情况下、数据具有非常复杂的路径、因此最终实际上是一些其他模式、因此我很难使用 0x57xxx8重新生成帧宽度变化。

    对于 DAC8771、我们需要 TI 技术部门非常明确地确认、它在不切换 LATCH/CS 引脚的情况下不会更改任何配置(仅基于 SDI 数据)、我应该将问题发布给谁?

    提前感谢。

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

    您好!

    我可以为您提供的最严格的确认是 DAC8771数据表中记录的内容。 由于没有提及任何此类限制、因此您可以将其视为保证。

    LATCH 引脚用于门控 SPI 接口、因此不可能实现意外的数据锁存。

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

    尊敬的 Kevin:

    是的、我们仔细检查了 DAC8771的数据表。 但我们还注意到、DAC8670的数据表仅提到了在最初发布后3年、2016版本 C 中可能发生的帧宽度变化。

    我们不希望在太晚才作出任何正确的事情时也遇到同样的情况。 希望您能理解我们的担忧。

    Seng Tak  

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

    您好!

    在 DAC8760中会发生一种复杂的情况-简而言之、这种行为并非有意发生、因此这基本上是一个错误。 一旦意识到这种行为、我们就相应地更新了数据表、以提高客户的透明度。

    同时、DAC8771在 SPI 接口上被专门设计成具有适当的预期行为、以使用 CS/锁存引脚来有效地为输入移位寄存器栅极。 在意识到 DAC8760上的行为后、我们对 DAC8771上的行为非常谨慎。

    据我所知、DAC8771没有未记录的问题、因此您可以信任数据表。

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

    尊敬的 Kevin:

    感谢您上次的回复、实际上它在某种程度上是对我们非常重要的确认、即8771经过精心设计、可避免出现同样的行为。

    我们需要将其用作我们即将推出的设计的先行信号。

    Seng Tak