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.

[参考译文] DAC60096:从 Aardvark SPI 主机适配器发送数据

Guru**** 2502205 points
Other Parts Discussed in Thread: DAC60096

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/708465/dac60096-sending-data-from-an-aardvark-spi-host-adapter

器件型号:DAC60096

您好!

我正在尝试从 Aardvark 主机适配器向 DAC60096发送 SPI 数据。 当我使用 SDM-USB-DIG 从 PC 连接到 DAC 时、数据将正常发送。 此外、我可以看到写入 PTR 寄存器并选择 DAC 所需的16位字符串、然后在下一个数据周期设置12位二进制补码电压。 我在 LabVIEW 中工作、我很困惑、因为我的代码不是从 DAC 输出 A。 我的所有电源输入都正确、SPI 引脚连接到 Aardvark。 我的问题是如何将数据发送到 DAC。

现在、我有一个由24个二进制值组成的无符号8位数组、它将一次发送到 DAC。 第一次写入是到 PTR 寄存器并选择要写入的 DAC。 然后、下一次写入 BUFA 寄存器、这将为 DAC 提供 一个12位2的补码数。 但是、我的 DAC 不会使用该代码改变电压。 我想知道数据是否需要以不同的格式发送? 或任何其他提示/帮助、我们将不胜感激。 我也可以向您发送我的 LabVIEW 代码。 Aardvark 有一组用于写入 SPI 的 VI、我只需要向其发送数据。 我的脚本应该向 D1_G1 DAC 写入电压、但不是。

感谢您的任何帮助/建议。

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

    卢卡斯

    鉴于 SPI 写入工具的复杂性和数量、我们很难熟练掌握其中的每一种工具。 因此、最好/最简单的做法是、您可以提供示波器对示例写入帧的捕获、以便我们确认 SPI 数字信号适合器件理解。

    第6.8节以及图1、2和3介绍了时序要求、供您参考。 主要考虑因素是 SDI 上数据的设置和保持时间与 SCLK 的上升沿有关。 空闲时钟极性可以是高电平或低电平。

    SPI 接口始终需要24位帧、第25页对这些帧的逐位结构进行了说明。

    也许在讨论您的总体序列时、您可以用每个24位帧来描述写入序列。

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

    很抱歉耽误你的回答。 我附加了示波器数据、因为我无法获取屏幕截图。 我 还随附 了 Excel 数据的 PDF 图表、因此比较粗略、但  显示了 e2e.ti.com/.../OScopeData.pdfshould 的总体信息。  这些列表示我的 Aardvark 主机适配器的 SCLK 和 SDI 输出。 请告诉我您是否需要其他任何东西以及问题是什么。 谢谢!

    e2e.ti.com/.../OScopeData.xlsx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、当我将系统连接到电气上时、LDAC 保持高电平。 我无法直接触发它。 要将其更改为逻辑低电平、我是否需要为每个子系统的 CON 寄存器写入4个额外的数据周期?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    卢卡斯

    此处器件的时钟相位和极性似乎正确- SDI 上的转换似乎发生在 SCLK 的下降沿、因此上升沿看起来是适当的读取沿。 这里有相当多的串扰、我想设置可能是通过蓝线或其他方式连接到 DAC EVM 的 Aardvark、但如果可能、请务必确保两个板之间接地连接的完整性。 在某些情况下、串扰足以产生高于4V 的信号、这是相当糟糕的。

    CS 在同一时间发生了什么情况?

    您能否共享一个日志或发送到 DAC 的某个值?

    您是否尝试过任何写/读回序列来验证您是否正在与寄存器通信?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    卢卡斯

    一个选项是将 LDAC 绑定为低电平、这样在新数据被应用到缓冲寄存器时、更新会自动发生。 这就是数据表所称的异步操作。

    另一种选择是使用 CON 寄存器(地址0x4、位15)中的软件 LDAC 功能来同步更新四个子系统之一内的 DAC。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为串扰是由于与示波器电缆的连接造成的。 我认为从 Aardvark 到 DAC 板的连接不会有太大问题。

    CS 通过 SDI 保持高电平、并且在写入序列开始时都变为低电平。 在写入三个字节后、CS 再次变为高电平。

    我没有尝试过任何写/回读序列、但我会尝试。  

    是否通过母头转母头将 LDAC 连接到公共接地、或您所说的将 LDAC 连接到低电平的类似方法?  

    要指定要将 LDAC 绑定到哪个子系统、是否需要写入 PTR 寄存器以选择子系统(任何 DAC)、然后再将另一个写入序列写入 CON 寄存器?

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

    使用 EVM 板是的、您需要使用跳线电缆将 LDAC 连接到 GND。 如果 LDAC 被接至低电平、在新数据被应用到 DAC 后、无需寄存器交互来发布一个更新。 所有 DAC 将在相应写入其数据寄存器后更新。

    如果您选择实现 SW LDAC 功能、您将使用 CON 寄存器。 CON 寄存器适用于子系统级别、因此、是的、您需要首先向 PTR 寄存器写入数据、以便与要更新的子系统进行通信。 写入 ptr 寄存器后、将为 LDAC 位对 CON 寄存器进行额外写入、在 CS 的上升沿进行 CON 寄存器写入、所选子系统的 DAC 输出将更新。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我了解我需要做什么、我将尝试实施您的一些建议。 如果我需要进一步的帮助,我将再次答复。

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

    为了我自己的追踪和报告目的,我将把前一份答复标记为可能的解决办法。 如果您在2周内回复、该主题将自动重新打开。 如果您需要2周以上的时间、该主题将锁定、但您可以返回此处并单击"提出相关问题"以打开新主题、我自己或我团队中的某个人将继续支持您的主题。

    当然、如果这些建议可以解决您的问题、并且您有时间返回主题以进行更新-即使没有进一步的问题-这也会很好。

    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它很有效!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常快! 感谢您的更新。

    如果您有任何其他需要帮助的地方、请告知我们。