我想使用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的设备之间进行任何编程。感谢。
答案 0 :(得分: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)
下进行。
SPI.transfer(10, 0x20, SPI_CONTINUE)
SPI.transfer(10, 0x00, SPI_CONTINUE)
SPI.transfer(10, 0x01, SPI_LAST)
例如
SPI.transfer(10, 0x3F, SPI_CONTINUE)
SPI.transfer(10, 0x80, SPI_CONTINUE)
SPI.transfer(10, 0x00, SPI_LAST)
希望这会有所帮助。如果有什么事情发生,请不要介意我。快速将它们放在一起。