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:无法连续发送数据

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1229075/dac81416evm-unable-to-send-data-continuously

器件型号:DAC81416EVM

我尝试使用 Arduino SPI 通信来控制 DAC81416EVM、但当我尝试发送多个数据时、它不会改变输出、始终输出为5V。

连接:

Arduino SCK -> J8.8

Arduino MISO -> J8.3

Arduino MOSI -> J8.4

Arduino SS -> J8.2

VCC ->电源相差15V

VDD/VAA -> 5V 电源

VIO -> Arduino 为5V

VSS -> GND

J10 -> 2-3

Arduino 代码:

void setup(){
Serial.begin(115200);
SPI.beginTransaction(SPISettings(100000、MSBFIRST、SPI_MODE1);
SPI.begin();
延迟(100);


//设置 DAC[15:12]范围0-5V//
digitalWrite (SS、low);
DAC_WRITE (R_DACRANGE0);
SPI.transfer (0x00);
SPI.transfer (0x00);
digitalWrite (SS、HIGH);
延迟(100);

//设置 DAC[11:8]范围0-5V//
digitalWrite (SS、low);
DAC_WRITE (R_DACRANGE1);
SPI.transfer (0x00);
SPI.transfer (0x00);
digitalWrite (SS、HIGH);
延迟(100);

//设置 DAC[7:4]范围0-5V//
digitalWrite (SS、low);
DAC_WRITE (R_DACRANGE2);
SPI.transfer (0x00);
SPI.transfer (0x00);
digitalWrite (SS、HIGH);
延迟(100);

//设置 DAC[3:0]范围0-5V//
digitalWrite (SS、low);
DAC_WRITE (R_DACRANGE3);
SPI.transfer (0x00);
SPI.transfer (0x00);
digitalWrite (SS、HIGH);
延迟(100);

//为 SPI 读取启用 SDO //
digitalWrite (SS、low);
DAC_WRITE(R_SPIC856);
SPI.transfer (0x0A);
spi.transfer (0x84);
digitalWrite (SS、HIGH);
延迟(100);

//为所有通道加电//
digitalWrite (SS、low);
DAC_WRITE (R_DACPWDWN);
SPI.transfer (0x00);
SPI.transfer (0x00);
digitalWrite (SS、HIGH);
延迟(100);

//启用广播//
digitalWrite (SS、low);
DAC_WRITE (R_BRDCONFIG);
spi.transfer (0xFF);
spi.transfer (0xFF);
digitalWrite (SS、HIGH);
延迟(100);

//将所有通道设置为异步模式//
digitalWrite (SS、low);
DAC_WRITE (R_SYNCCONFIG);
SPI.transfer (0x00);
SPI.transfer (0x00);
digitalWrite (SS、HIGH);
延迟(100);

}

void loop(){

while (1)

//将代码写入 R_Brdcast
digitalWrite (SS、low);
DAC_WRITE (R_Brdcast);
SPI.TRANSMIT(255);
SPI.TRANSMIT(255);
digitalWrite (SS、HIGH);
延迟(500);

//将代码写入 R_Brdcast
digitalWrite (SS、low);
DAC_WRITE (R_Brdcast);
spi.transfer (0);
spi.transfer (0);
digitalWrite (SS、HIGH);
延迟(500);

}

延迟(300);

}

void DAC_WRITE (int DAC_reg)

int DAC_regW = DAC_reg | 0x00;
spi.transfer (DAC_regW);
}

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

    Sanjay 将帮助这个。

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

    李庆允

     

    请您提供 以下顺序:" 寄存器名称 "和数据写入相应的电阻器中?

     

    谢谢。

    Sanjay

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

    //寄存器//
    #define R_NOP 0x00
    #define R_DEVICEID 0x01
    #define R_STATUS 0x02
    #define R_SPIC72 0x03.
    #define R_GENCONFIG 0x04
    #define R_BRDCONFIG 0x05
    #define R_SYNCCONFIG 0x06
    #define R_TOGGCONFIG0 0x07 //DAC[15:8] Toggle Configuration Register //
    #define R_TOGGCONFIG1 0x08 //DAC[7:0]切换配置寄存器//
    #define R_DACPDWN 0x09 //当它设置为1时关闭//
    #define R_DACRANGE0 0x0A //DAC[15:12]范围寄存器//
    #define R_DACRANGE1 0x0B //DAC[11:8]范围寄存器//
    #define R_DACRANGE2 0x0C //DAC[7:4]范围寄存器//
    #define R_DACRANGE3 0x0D //DAC[3:0]范围寄存器//
    #define R_trigger 0x0E
    #define R_Brdcast 0x0F
    #define R_DAC0 0x10
    #define R_DAC1 0x11.
    #define R_DAC2 0x12
    #define R_DAC3 0x13.
    #define R_DAC4 0x14
    #define R_DAC5 0x15
    #define R_DAC6 0x16
    #define R_DAC7 0x17
    #define R_DAC8 0x18
    #define R_DAC9 0x19
    #define R_DAC10 0x1A
    #define R_DAC11 0x1B
    #define R_DAC12 0x1C
    #define R_DAC13 0x1D
    #define R_DAC14 0x1E
    #define R_DAC15 0x1F
    #define R_OFFSET0 0x20 //DAC[14-15;12-13]差动偏移寄存器//
    #define R_OFFSET1 0x21 //DAC[10-11;8-9]差动偏移寄存器//
    #define R_Offset2 0x22 //DAC[6-7;4-5]差动偏移寄存器//
    #define R_OFFSET3 0x23 //DAC[2-3;0-1]差分偏移寄存器//

     SPICQ1设置为0x0A84

    DACPWDWN 设置为0x0000

    SYNCCONFIG 设置为0x0000

    我想把数据写入寄存器 Brdcast 中、让它输出一个方波、比如0xFFFF->0x0000->0xFFFF->0x0000

    谢谢

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

     李庆允

     

    您能告诉我如何使用吗 DAC 基准 ()正在启动,是内部的还是外部的?  如果在 DAC 的 REF 引脚上没有连接基准、则请按照下面提供的顺序进行操作-  

    SPICKit >> 0x0A84配置文件

    GENCONFIG >> 0x0100  

    BRDCONFIG >> 0xFFFF

    DACPWDWN >> 0x0000

    SYNCCONFIG 设置为0x0000

    BRDCAST >> 0xFFFF 0x0000   

      

    谢谢。

    Sanjay

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

    尊敬的 Sanjay:
    我没有设置 DAC 基准、当我设置 GENCONFIG >> 0x0100、它执行得非常好时、这对我有很大帮助、谢谢。