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.

[参考译文] DAC53204:当 DAC 以3线 SPI 模式加电时、在菊花链中配置第2个 DAC 时出现问题。

Guru**** 2487425 points
Other Parts Discussed in Thread: DAC53204

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1243464/dac53204-problem-configuring-2nd-dac-in-daisy-chain-when-dacs-power-up-in-3-wire-spi-mode

器件型号:DAC53204

您好!

我的板有两个 DAC、SPI 以菊花链形式连接。 我们无法对链中的第2个 DAC 进行编程。 有3项相关信息:

  • a) DAC 在3线 SPI 模式下加电(即禁用菊花链、 即 SDO 引脚被禁用)、这意味着它们 锁存前24个 SDI 位 保持高阻抗状态。
  • b)我的目标是通过启用每个 DAC 上的 SDO 引脚将两个 DAC 配置为4线制 SPI 模式(即启用菊花链)。 启用 SDO 的命令为3个字节:[0x26、0x00、0x01]。
  • c)德州仪器(TI)在2001年确认、 在 SS 变为低电平后、从 DAC SDO 传输的第一个位始终为1、并且我们已在 DAC53204上确认了这种行为。

因此、我们尝试在4线 SPI 模式下对 DAC 进行编程、并快速遇到对第二个 DAC 进行编程的问题、如下所述:

  1. 我们向第一个 DAC 发出 SPI 写入[0x26、0x00、0x01]。 这会成功启用第一个 DAC 上的 SDO 引脚。 到目前为止一切顺利。
  2. 然后、我们发出 NO-op SPI 写入[0x00、0x00、0x00]到第一个 DAC。 这将导致第一个 DAC 将其先前的命令[0x26、0x00、0x01]回显到 SDO 上、指向第二个 DAC。 但是、由于 SDO 上的第一个位替换为1、第一个 DAC 实际上会将命令[0xA6、0x00、0x01]回显到第二个 DAC、而第二个 DAC 由于接收到错误的命令而无法启用其 SDO 引脚。

您可能建议我们在单次传输中发送两次命令、即传输6个字节而不是3个字节、以便第二个 DAC 看到的最后24位正确、但第二个 DAC 将仅锁存 第一 因为它在3线 SPI 模式中加电。

如果第一个 DAC 始终在第一个 SDO 位上输出1、我们如何确保第二个 DAC 看到的前24位为[0x26、0x00、0x01]? (将0x26转换为0xA6)

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

     Philippe、您好!  

    通常、无论 SDO 是否启用、都会锁存帧的最后24位。 您是否尝试过在一个48位帧中随无运算一起再次写入 SDO 使能? 我相信我们的客户对该器件使用了菊花链。 我还会在回到实验室后再进行尝试。  

    您能否分享一下对第二个 DAC 进行 SDO 启用写入的屏幕截图? 当您使用回波和使用48位帧时、都可以共享这两者。  

    此致!

    K·琼斯   

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

    尊敬的 Katlynne:

    感谢您的快速响应。 我相信我们已经尝试在具有48位帧的第二个 DAC 上启用 SDO、但我们将再次尝试以确认、并对第二个 DAC 截屏24位和48位帧。

    至于在帧期间锁存了哪些位、根据 DAC53204数据表、可知:

    "默认情况下、SDO 引脚未启用(三线 SPI)。 在三线 SPI 模式下、如果访问周期包含的时钟边沿大于最小值、则器件仅使用前24位。"

    "菊花链操作也通过 SDO 引脚启用。 [...] 在四线 SPI 模式下、如果访问周期包含24个时钟边沿的倍数、则链中的第一个器件仅使用最后24个位。"

    菲尔

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

    我们现在正在审查。  美国假期周末将延迟响应。

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

    谢谢 Paul。 由于硬件访问受限、我的屏幕截图也可能会延迟。

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

    我懂了。

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

    您好!

    这里是2个不同测试用例的屏幕截图、两者都未能在第二个 DAC 上启用 SDO 引脚。

    测试1

    SPI 传输#1到第1 DAC:[0x26、0x00、0x01]。 这将在第1个 DAC 上启用 SDO。

    SPI 传输#2到第1 DAC:[0x00、0x00、0x00]。 第一个 DAC 在 SDO 上响应其先前的消息、将第一个位替换为1、即:[0xA6、0x00、0x01]。 第2个 DAC 无法启用其 SDO 引脚。

    测试2

    SPI 传输#1到第1 DAC:[0x26、0x00、0x01、0x26、0x00、0x01]。 这将在第1个 DAC (锁存前3个字节)上启用 SDO。

    SPI 传输#2到第1 DAC:[0x26、0x00、0x01、0x26、0x00、0x01]。 第1个 DAC 在 SDO 上输出以下内容:[0x96、0x00、0x01、0x26、0x00、0x01]。 第2个 DAC 锁存前3个字节并且无法启用其 SDO 引脚。

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

     Philippe、您好!  

    我看到同样的问题。 回波在 MSB 中为"1"、第二个 DAC 在未启用 SDA 的情况下不接受第二组24位。  

    我要询问设计团队是否有任何解决方法。 您可能需要为链中的所有器件启用 SDO 引脚并将此设置保存在 NVM 中、然后才能使用菊花链。 我会告诉您我收到的回复

    此致!

    K·琼斯  

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

    尊敬的 Katlynne:

    感谢您自行测试并确认行为。 我们现在已经采用这种权变措施、即使用蓝线直接访问链中每个 DAC 的 SDI 并将设置保存到 NVM 中、逐一在所有器件上启用 SDO 引脚。但这是一个相当乏味和手动的过程。 我希望有一个更好的解决方案。

    菲尔

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

    Phil、您好!

    很高兴知道这至少能起作用。

    仍在等待响应。 我会在收到回复时更新您的信息。  

    此致!

    K·琼斯  

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

    尊敬的 Katlynne:

    我只是想知道是否有任何关于这个主题的新闻。

    菲尔

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

    Phil、您好!

    很抱歉耽误你的时间。 在我最后一次回复几天后、我与设计师举行了一次会议、讨论了这个问题。 他们没有设计这个确切的模块,也没有立即的答案给我,所以他们打算调查任何解决办法。 我要求他们采取后续行动,并应在明天得到答复(他们在印度,在与我们相反的时区)。 我预计他们会忙于其他事情。  

    根据 会议结果、您观察到的行为似乎 是在设计中预期出现的行为、我认为在启用第二个器件 SDO 之前、无法解决这个问题与第二个器件进行通信。 我将继续推送设计师的答案、并让您尽快知道。  

    此致!

    K·琼斯  

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

    尊敬的 Katlynne:

    好的、感谢您的更新以及对该问题的跟进。

    如果可以购买已经配置为菊花链模式的 DAC、则可以使用、但我没有看到使用自定义 NVM 设置进行购买的选项。

    菲尔

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

    Phil、您好!

    他们回来告诉我、他们无法找到解决方法。 我将在数据表中进一步说明、在使用菊花链之前、需要在所有器件上启用 SDO。 我甚至不知道这个警告,所以感谢耐心,因为我们一起工作。   

    我们不销售定制/预编程的 NVM 器件。 您是否正在使用此 DAC 中的任何智能特性(函数生成、压摆率控制等)? 如果没有、 我可以帮助您 找到另一款开箱即用的支持菊花链的器件。 智能 DAC 系列中的所有器件都具有相同的行为。  

    此致!

    K·琼斯

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

    尊敬的 Katlynne:

    我不相信我们会使用任何智能功能。 如果有替代器件支持菊花链开箱即用、NVM 和至少3个输出通道、那就太好了! 否则、我们将不得不修改设计以使用 I2C 总线而不是 SPI 总线。

    菲尔

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

    Phil、您好!  

    如果您需要 NVM、则智能 DAC 系列器件(DACx3x04)是唯一的选择。

    此致!

    K·琼斯  

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

    尊敬的 Katlynne:

    好的、感谢您告诉我。 我想我们的唯一选择是切换到 I2C、这样我们就可以访问总线上的所有 DAC。 我们将继续前进、感谢您的全力帮助。

    不过、在所有智能 DAC 中断开菊花链特性似乎有点奇怪。 肯定有人一定已经让它工作了。 要么我们发现了真正的疏忽、要么我们错过了一个关键步骤。

    菲尔