【问题标题】:Using an Arduino to program an external 16-bit DAC chip from Linear using a SPI使用 Arduino 使用 SPI 对 Linear 的外部 16 位 DAC 芯片进行编程
【发布时间】:2014-05-27 21:16:22
【问题描述】:

我想使用 Arduino(Mega ADK 或 Due)来控制外部 16 位 DAC 芯片。 (我有 DAC 芯片的评估板)。它说该芯片可以使用其串行外设接口进行编程,从我在网上阅读的内容看来,这可以通过 Arduino 完成。

但我不知道从哪里开始。大约一个星期以来,我一直在寻找任何可能有帮助的东西,但我做不到。我找不到任何教程或帮助指南来弄清楚如何对 Arduino 进行编程以与芯片进行通信。

如果有人能提供任何有助于学习 SPI 的材料,我将不胜感激。

我正在使用的 DAC 芯片的手册在这里:http://cds.linear.com/docs/en/datasheet/2754f.pdf 我相信编程芯片的重要页面是第 15 页。

我正在使用的评估板手册在这里:http://cds.linear.com/docs/en/demo-board-manual/dc1546af.pdf

再一次,任何帮助都会非常有帮助,因为我从未使用 SPI 在设备之间进行任何编程。谢谢。

【问题讨论】:

  • SPI 不应与“串行”或“串行接口”混淆,它们通常被假定为 RS-232 而不是 SPI。 SPI是一个主从接口。一个节点是主节点,其他节点响应它。从设备通常是无源的,例如例如 Flash 芯片,它只在主机请求时发送数据作为响应。但是有 ad hoc 方案让 SPI 从设备向 SPI 主设备发送信号,通常使用主设备上的 GPIO 中断。

标签: arduino spi dac


【解决方案1】:

从基本 SPI 开始并选择您的电路板(到期): Arduino SPI

你有一个紧张的小评估板。首先弄清楚硬件连接。在连接器 J1 上,(第 5 页 - 评估板)引脚 4、5、6 和 7 是 SCK、MISO、CS 和 MOSI。我将承担权力,跳线可以由你解决。 DAC 默认为手动量程。这让您知道您的所有命令/控制都将通过 SPI 接口进行。

您需要知道什么是 SPI 模式。根据数据表(第 8 页,引脚 SDI 下的注释)和维基百科SPI Wiki,SPI 模式为 0 (SPI_MODE0)。

因此,连接 Arduino 并走得那么远有点靠自己。是时候喘口气了。

如果您选择 Due,您拥有(根据 Arduino)扩展的 SPI 命令集,因此您可以将命令生成为 24 位(3 个字节 - 3 个 transfer() 命令)

使用 pg 中的 24 位示例。 DAC 数据表的第 15 条。你会做这样的事情:

一个。

SPI.transfer(10, 0x2F, SPI_CONTINUE)
SPI.transfer(10, 0x00, SPI_CONTINUE)
SPI.transfer(10, 0x03, SPI_LAST)

c.

SPI.transfer(10, 0x20, SPI_CONTINUE)
SPI.transfer(10, 0x00, SPI_CONTINUE)
SPI.transfer(10, 0x01, SPI_LAST)

e.

SPI.transfer(10, 0x3F, SPI_CONTINUE)
SPI.transfer(10, 0x80, SPI_CONTINUE)
SPI.transfer(10, 0x00, SPI_LAST)

希望这会有所帮助。如果有什么不妥,请不要介意我。快把它放在一起。

【讨论】:

  • 谢谢。我今天将致力于此。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
  • 2020-03-23
  • 2013-04-19
相关资源
最近更新 更多