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.

[参考译文] DAC81416EVM:使用 SPI 和 USB2ANY SDK 控制 EVM

Guru**** 2539750 points
Other Parts Discussed in Thread: USB2ANY

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1167065/dac81416evm-controlling-the-evm-using-spi-and-the-usb2any-sdk

器件型号:DAC81416EVM
主题中讨论的其他器件: USB2ANY

您好!

我一直在尝试使用 实施 USB2ANY SDK 的 C++脚本和通过 SPI 进行通信来控制 DAC81416EVM。 但是、我遇到了几个问题。

首先、我观察到、除非我打开 TI 的 DAC 应用并发送随机字节、否则不会传输 C++生成的 SPI 命令(如中所示)。 我发送什么或写入哪个寄存器似乎无关紧要、我甚至可以在之后关闭应用程序、然后 C++脚本就可以正常工作。 这是正常的吗? 您是否认为我在 C++脚本中执行初始化的方式可能存在问题? 下面是我在 main 中所具有的内容:

    char serialno[40];
    std::cout << "\n";
    std::cout << u2aFindControllers();
    std::cout << "\n";
    u2aGetSerialNumber(0, serialno);
    std::cout << std::hex <<serialno;
    U2A_HANDLE handle = u2aOpen(serialno);
    uint8_t power_on[] = { 0x03, 0x0A, 0x0C };
    u2aSPI_WriteAndRead(handle, 3, power_on); //Power-on Device, Disable Soft-toggle
    //followed by other SPI_WriteAndRead commands to initialize the other registers in the DAC

其次、是否可以在一条 SPI 命令中写入多个寄存器? 有 USB2ANY 文档用于在 I2C 中写入多个寄存器、但我没有看到任何有关在 SPI 中进行突发传输的文档。 我尝试尽快更新所有16个 DAC 的输出电压、因此尝试将它们整合到一个命令中。

谢谢!

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

    Grace 您好、

    我认为你是对的。 这 似乎是 GUI 使用 USB2ANY 进行一些初始化、而您的代码不是这样。 我不熟悉此 SDK 的使用、因此我必须检查我的团队中是否有任何人可以在这里提供帮助、但我们通常无法提供我们提供的 GUI 之外的示例代码支持。  

    第二个问题是、无法在一个 SPI 命令中写入多个寄存器。 I2C 能够发送重复的 START 命令、我认为这是您所指的。  具体而言、对于该器件、当 CS 引脚置为高电平时、写入周期结束。 如果周期长于24位(如果启用了错误检查、则为32位)、则仅使用前24位(或32位)。  

    下一次写入发生之前、必须将 CS 拉高至少持续时序要求表中给出的时间(CS 高电平时间)。

    最棒的

    Katlynne Jones  

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

    Grace 您好、

    我与我的团队进行了双重检查、我们无法在我们提供的 GUI 之外支持使用 USB2ANY。  

    最棒的

    Katlynne Jones