1

我想使用 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 在设备之间进行任何编程。谢谢。

4

1 回答 1

0

从基本 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)

希望这可以帮助。如果有什么不妥,请不要介意我。赶紧把这个放在一起。

于 2014-05-28T02:15:15.510 回答