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:Arduino 的编程方法。

Guru**** 1180580 points
Other Parts Discussed in Thread: DAC81416EVM, DAC81416, DAC81404
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1047620/dac81416evm-programming-method-for-arduino

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

您好!

我正在尝试使用 Arduino Uno 的 SPI 接口对 DAC81416EVM 进行编程。 设置就像爆炸。  

GND -> J7.3

Arduino 提供3.3V -> J7.4

5V 电源电压-> J7.5

电源电压20V -> J7.7

(笑声)

我只是尝试使用 Arduino 来控制 DAC81416、但它无法正常工作。 是否有其他人知道如何对其进行编程。 希望您能告诉我详细的编程方法。 此外、我希望您向我展示一个我可以参考的工作代码示例。 我努力工作、但我认为这不是我的领域。 请帮帮我。

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

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

    您好!

    您能否提供有关您的设置的更多详细信息? 如果标记了带有 SPI 信号的 Uno、我会找到该图。 是这样吗?  

    如果是、您似乎没有将正确的 SPI 引脚连接到 DAC81416EVM 的 J8连接器:

    您能否验证您的连接是否正确?

    我们没有 Arduino 示例代码、但您可以搜索 Arduino SPI 库。 您将需要一个24位 SPI 帧、该帧在下降沿捕获数据、以便与 DAC81416进行通信。 我可以帮助您确定需要为您的应用配置的 DAC 寄存器设置。

    最棒的

    Katlynne Jones  

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

    你太棒了!

    谢谢您、我的理由是我连接不正确、我修复了它。  

    GND -> J8.6

    Arduino 13 -> J8.8

    Arduino 12 -> J8.3

    Arduino 11 -> J8.4

    Arduino 10 -> J8.2    //是否有任何其他不正确的连接?

     

    我已经检查了 SPI 库、但无法准确理解它的含义。 如果您没有 Arduino 示例代码、您能否共享使 DAC81416EVM 正常工作的任何类型的示例代码? 我相信这将大大改进我的流程。 或者、希望您告诉我对 DAC81416EVM 进行编程所需的全部步骤? 非常感谢您的回复。

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

    您好!

    您的连接现在看起来正确。 我没有此器件的任何示例代码、但我可以为您提供一些用于 DAC 寄存器设置的伪代码。 该库 SPI 库可能具有写入和读取函数。 您总共需要写入24位。 寄存器地址为8位、寄存器数据为16位。 请参阅数据表中的寄存器映射、了解如何根据我在下面设置的内容修改设置。 我刚才使用了一些示例设置来启动和运行 EVM。 格式为 WRITE (address、data):

    • 写入(0x03、0x0004)//为 SPI 读取启用 SDO
    • 写入(0x04、0x4000)//禁用 内部基准(默认)。 通过写入0x00来启用(移除 EVM 上的跳线 J11)。 禁用差分模式
    • 写入(0x09、0xFFFF)//为所有 DAC 输出加电
    • 写入(0x0A、0x0000)//将所有 DAC 范围设置为0至5V (默认值)。
    • 写入(0x0B、0x0000)//将所有 DAC 范围设置为0至5V (默认值)。
    • 写入(0x0C、0x0000)//将所有 DAC 范围设置为0至5V (默认值)。
    • 写入(0x0D、0x0000)//将所有 DAC 范围设置为0至5V (默认值)。
    • 写入(0x10、0x8000)//写入 DAC-DATA0寄存器
    • (笑声)
    • 写入(0x1F、0x8000)//写入 DAC-DATA15寄存器

    您还需要将 SPI 时钟速度设置 为适合 DAC81416、并设置适当的 SPI 模式。 应设置 SPI 模式、以便 MOSI 在上升沿上移出并在下降沿捕获。  

    我看到另一个用户使用以下 DAC81404库: https://github.com/sphCow/DAC81404_lib

    这也是一个需要24位 SPI 帧的 DAC。 看起来他们已经编写了一个 DAC_WRITE 函数、该函数使用3个8位 SPI 写入8位地址、并将16位数据拆分为8位 MSB 和8位 lsb。 这个项目是 写入 DAC 所需步骤的良好示例。  

    您可以使用类似的东西、也可以修改头文件以使用 DAC81416寄存器名称。 可能还存在类似的 DAC81416 Arduino 库。  

    最棒的

    Katlynne Jones