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:IDE 兼容性

Guru**** 2538950 points
Other Parts Discussed in Thread: DAC81416

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/828946/dac81416evm-ide-compatibility

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

早上好、  

这可能是一个非常通用的问题、但我想知道是否可以使用 Arduino IDE 及其内置 SPI 库从评估模块对 DAC81416进行编程。  

谢谢你

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

    您好、Dave、

    是的、任何 SPI 接口都应该工作。  您只需要连接它。

    谢谢、

    Paul

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

    您好、Dave、

    您是否需要更多帮助?

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

    尊敬的 Paul:

    感谢您的支持!

    我担心与评估模块建立通信时会遇到一些问题。 该器件不响应控制器发送的任何 SPI 命令、似乎保持在断电模式(输出引脚保持一致接地)。 我不确定我的问题是否与硬件或软件有关。

    我正在使用 Arduino 对设备进行编程、以下是我尝试使用的代码之一:

    #define DATAOUT 11//MOSI
    #define datain 12/mISO
    #define SPICLOCK 13/SCK
    #define SLAVESELECT 10//ss
    字节 CLR;
    uint8_t 地址;

    char SPI_transfer (volatile char data)

    SPDR = DATA;//开始传输
    while (!(SPSR &(1< {
    };
    返回 SPDR;//返回接收到的字节


    void setup(){
    引脚模式(DATAOUT、输出);
    引脚模式(datain、input_pullup);
    引脚模式(SPICLOCK、输出);
    引脚模式(SLAVESELECT、输出);
    digitalWrite (SLAVESELECT、HIGH);
    SPCR |=(1 << MSTR);//设置为主器件
    SPCR |=(1 << SPE);//启用 SPI
    SPCR |=(1 << CPHA);//mode 1
    CLR=SPSR;
    CLR=SPDR;
    延迟(10);

    digitalWrite (SLAVESELECT、LOW);
    SPI_transfer ((char)(0x03));//加电器件
    SPI_TRANSFRATURE ((char)(0x0A));
    SPI_TRANSFH ((char)(0x84));
    digitalWrite (SLAVESELECT、HIGH);
    延迟(10);

    digitalWrite (SLAVESELECT、LOW);
    SPI_transfer ((char)(0x09));//为每个通道供电
    SPI_TRANSFH ((char)(0x00));
    SPI_TRANSFH ((char)(0x00));
    digitalWrite (SLAVESELECT、HIGH);
    延迟(10);

    digitalWrite (SLAVESELECT、LOW);
    SPI_transfer ((char)(0x05));//启用广播
    SPI_transfer ((char)(0xFF));
    SPI_transfer ((char)(0xFF));
    digitalWrite (SLAVESELECT、HIGH);
    延迟(10);

    void loop(){
    //将主代码放在此处,重复运行:


    digitalWrite (SLAVESELECT、LOW);
    SPI_transfer ((char)(0x0F));//写入半量程 V
    SPI_transfer ((char)(0x7F));
    SPI_TRANSFH ((char)(0xFF));//写入启用
    digitalWrite (SLAVESELECT、HIGH);
    延迟(100);

    digitalWrite (SLAVESELECT、LOW);
    SPI_transfer ((char)(0x0F));//写入全范围 V
    SPI_transfer ((char)(0xFF));
    SPI_TRANSFH ((char)(0xFF));//写入启用
    digitalWrite (SLAVESELECT、HIGH);
    延迟(100);

    我的硬件连接如下:  

    对于电源接头:

    J7.3电源的 GND

    J7.4提供5V (来自 Arduino)

    从 J7.5处的电源提供5V 电压

    J7.6上的 GND

    与 J7.7上的电源电压相距为9V

    对于 J8处的数字连接:

    J8.2上的 Arduino 引脚10 (CS)

    J8.3上的 Arduino 引脚12 (MISO)

    J8.4上的引脚11 (MOSI)

    J8.5 上的 Arduino 提供5V 输出

    J8.6处的 GND

    J8.7上为5V (LDAC)

    J8.8上的引脚13 (CKL)

    切换测试点接地

    我的跳线配置如下:  

    J2 J3开路

    J9关闭

    J10 2-3 (外部 VIO)

    J11 1-2 (板载 VREF)

    J12 1-2 (GND 作为 VSS)

    如果您能就解决我的问题向我提供一些建议、我将不胜感激。

    Dave

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

    您好、Dave、

    您能否使用示波器或数字分析仪来捕获 SPI 事务? 通常、这些问题是由接线问题或 SPI 帧格式错误导致的。