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.

[参考译文] DAC63204:菊花链 SPI 模式不计时

Guru**** 2502485 points
Other Parts Discussed in Thread: DAC63204

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1211706/dac63204-daisy-chain-spi-mode-not-clocking

器件型号:DAC63204

您好、我们有一个硬件板、其中包含8个菊花链 DAC63204器件、这些器件的接线方式如随附图片所示。 每个 SDO 引脚通过一个1k 上拉电阻器连接到 VCC、并以菊花链方式连接到 SDI 线路中的第二个器件。

时钟速度为500kHz 和 SPI 模式1。

首先、我们将 SDO_EN 位设置为1、然后我们将寄存器配置为在器件的通道3上输出3.3V。 我们试图通过编程每个单独的设备和设备响应根据固件.

在菊花链模式下、器件绝不会在时钟沿记录数据通过线路中的第一个器件。 是否有任何其他特定要求才能使菊花链模式正常工作?

请注意:数据表中规定 SDO 引脚需要一个上拉电阻器、而 SDI 需要保持悬空、基本而言、在菊花链模式下这是不可能的。

数据表在布局部分中的标签也不正确、如下所示:

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

    尊敬的 Moldovanu:

    在每个 SDO 输出上都需要上拉电阻器。 该输出为开漏输出、因此在没有上拉电阻器的情况下数据不会在时钟沿输出。 SDI 引脚的注释是说、您不需要在该引脚上使用上拉/下拉电阻器。 它不需要保持悬空。   

    您的原理图和示波器屏幕截图有些模糊、因此很难阅读。 我认为原理图看起来不错。 最好知道这些器件在单独编程时会做出响应。 是否在所有8个器件上启用 SDO 输出? 我想您是在我假设的第一条 SDI 线路(示波器上的通道1)上发送4次命令、您是否有第一个在时钟沿输出的捕获功能。 第二个 DAC 可能未正确接收到该命令。 当您通过菊花链命令与第二个 DAC 进行通信时、第二个 DAC 的输出是否有更新?

    感谢您指出布局图中的错误。 我只是把它转发给了我们的系统团队。  

    此致!

    Katlynne Jones  

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

    大家好、我们现在进行了更多测试、看起来硬件板像预期的那样工作。

    问题可能在于、SDO 引脚不会 在第一个 IC 设置后传递其余命令、而是回显第一个发出的命令、并在回显命令中额外添加一位。

    这些是我们现在使用的已定义的寄存器以及写入和初始化函数。 我们是否可以使用任何固件库来检查我们如何实现 FW 是正确的方式?

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

    尊敬的 Moldovanu:

    我们没有任何用于 SPI 通信的库。 数据表和我们的一些应用手册中提供了一些不同 DAC 用例的伪代码示例、但 我没有 在菊花链中使用 DAC。  

    对于菊花链、您需要在24个时钟内将 CS 保持为低电平*菊花链中的 DAC 数量。 每个 DAC 将在 CS 变为高电平后保持其接收到的最后24位。 看起来您正在尝试发送可能是问题所在的各个命令。  

    此致!

    Katlynne Jones

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

    这是我们通过将0x05 (FSDO EN 和 SDO EN)写入0x26 INTERFACE-CONFIG 寄存器以启用 SDO 引脚之后第一个 DAC 的 SDO 输出。 链中的下一个 DAC 似乎回显接收到的最后一条命令、并将一位添加到读取/写入位并反转读取/写入位。 为了将 DAC 配置为菊花链模式、我们正在尝试向所有 DAC 发送 SDO-EN 命令、但由于错误/反向的位回波、我们绝不能通过第一个 DAC 发送。

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

    尊敬的 Moldovanu:

    此时序图正确。 每个器件都将在芯片选择的上升沿之前接受它看到的最后24位数据。 在您的屏幕截图中、器件2看到的是寄存器0x26、数据0x0005、器件1看到的是寄存器0x00、数据0x0000 (或 NOP 命令)。  

    您所说的数据具有反转位、即垃圾数据。  

    您是否确定器件2的 SDO 引脚未启用? 您必须再次将芯片选择拉至低电平并启动另一个命令、以检查器件2是否开始为数据计时。  

    此致!

    Katlynne Jones