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.

[参考译文] DAC81416-08EVM:由于与 Arduino 一起使用时、DAC81416未输出预期值、但在使用 USB2ANY 连接器和 EVM 软件时提供预期输出

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1448864/dac81416-08evm-dac81416-not-outputting-expected-value-when-used-with-arduino-due-but-gives-expected-output-when-using-usb2any-connector-and-the-evm-software

器件型号:DAC81416-08EVM

工具与软件:

跳线设置:

J10 - 1-2

J2 -开路

J3 -开路

J11 - 1-2

J9 - 1-2

J7.1 -开路

J7.2 -开路

J7.3 - GND

J7.4开路

J7.5–5V

J7.6 - GND

J7.7 - 12V

在 Arduino 上使用默认 SPI 引脚

使用的代码:

#include <SPI.h>

// Define SPI settings
#define DAC_CS_PIN 10       // Chip Select (CS) pin for DAC
#define SPI_CLOCK 1000000   // SPI Clock Speed: 1 MHz
#define SPI_MODE SPI_MODE1  // SPI Mode 1 (CPOL=0, CPHA=1)
// #define RESET 9



void setup() {

  delay(5000);
  // Start Serial for debugging
  Serial.begin(9600);
  Serial.println("Initializing DAC81416...");

  // pinMode(RESET, OUTPUT);
  // digitalWrite(RESET, HIGH); // Set reset alwats high


  // Initialize SPI
  SPI.begin();

  // Configure the CS pin
  pinMode(DAC_CS_PIN, OUTPUT);
  digitalWrite(DAC_CS_PIN, HIGH); // Set CS high (inactive)

  // Start SPI transaction
  SPI.beginTransaction(SPISettings(SPI_CLOCK, MSBFIRST, SPI_MODE));

    // Enable SPI communication
// writeSPI(0X00, 0x0001); // Step 0: Enable SPI communication (SPICONFIG register) 0x030004

  // // Minimum SPI commands to configure and verify the DAC
  writeSPI(0x03, 0x0A04); // Step 1: Power up the DAC81416 (SPICONFIG register) 
   writeSPI(0x04, 0x4F00); // Step 2: Use internal reference (GENCONFIG register)
   //writeSPI(0x06, 0x0000); 
  writeSPI(0x09, 0x0000); // Step 3: Power up all DAC channels (DACPWDWN register)
  //writeSPI(0x0D, 0x0000); // Step 4: Set DAC0-3 voltage range to 5V (DACRANGE0)
  //writeSPI(0x05, 0xFFFF);
  writeSPI(0x10, 0xFFFF); // Step 5: Write full-scale value to DAC0 (DAC0_DATA)
  // writeSPI(0x01, 0x8100);
  // writeSPI(0x01, 0x8100);
  Serial.println("DAC Configuration Complete. Check Output Voltage.");
}

void loop() {
  // // Optional: Write a new value to DAC0 periodically for testing
  // writeSPI(0x10, 0xFFFF); // Write max-scale value to DAC0
  // delay(1000);

  // writeSPI(0x10, 0x0000); // Write min-scale value to DAC0
  // delay(1000);

  // writeSPI(0x10, 0x8000); // Write mid-scale value to DAC0
  delay(1000);
}

// Function to write a 24-bit SPI frame
void writeSPI(uint8_t regAddress, uint16_t data) {
  digitalWrite(DAC_CS_PIN, LOW);   // Pull CS low to start communication
  SPI.transfer(regAddress);        // Send 8-bit register address
  SPI.transfer16(data);            // Send 16-bit data
  digitalWrite(DAC_CS_PIN, HIGH);  // Pull CS high to end communication
}

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

    Pranav、您好!  

    Sanjay 将审查并尽快返回给您。 能否详细说明一下出现的意外输出? 输出是保持在0V、还是提供一些其他电压? 当您更新代码时电压是否会改变、或者无论代码是否变化、电压是否保持在相同的错误电压?

    此致!

    Katlynne Jones

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

    Pranav、您好!

    跳线设置看起来正常、请确认以下各项-  
    J12设置  
    2.在 TP4、TP5、TP11、TP12和 TP13的 EVM 硬件上测量的电压。

    谢谢!
    Sanjay