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.

DAC8811EVM: DAC8811 EVM Power Supply and Coding Questions.

Part Number: DAC8811EVM
Other Parts Discussed in Thread: DAC8811, REF102

Hi TI Staff

Sorry to bother you.

For my project, I want to use DAC8811 EVM connected with Arduino

I have three questions for DAC8811 EVM.

First

The questions about SPI connection.

From the schematics of datasheet Page 19, the SDI, CLK is not connected with J2. They are connected or not?

Second

The question about Power Supply.

1) If I used Vcc and Vss to +(-)5V not standard 15V, the output of voltage of reference will be changed from 10V to ?V?

 2)I confused about 5VA. does this mean 5V with 1A?

3) Could I use 5VA to VCC?

4) When I received the board, two grounds were connected (General and Analog Ground), Are they connected together? Or they should be connected to different GND.

Third

There is equation (2) in datasheet about calculation output voltage of bipolar.

The issue is if I input the code of FFFF, 65535 divided by 32768 and minus one is close to one not the exact one. So how can I get the accurate Apex.

Furthermore, I already built the sinwave syntax like :

unsigned int Sin_tab[256] = { 32768, 33572, 34376, 35178, ...........}

how should I efficiently change the frequency of this waveform in coding for Arduino.

How should I code in the LOOP? SPI.Transfer(Sin_tab)?

Thanks very much

  • Hi Yang,

    1. SDI and SCLK are connected to J2.  In many schematic programs placing text labels on a net wire acts as connecting them.  So the label on the pin of the device and the label on the header are the same, so they are connected.
    2. Comments on the power supply
      1. The REF102 requires a minimum of +11.4V.  If you supply at lower than that the output would likely just be clamped to the supply, which is a not recommended configuration.
      2. 5VA measures 5Volts Analog, generally this is used for some of the lower supply analog devices on EVMs.
      3. You should not used 5VA for VCC
      4. The two grounds are connected on the MMB0, but not on the daughter card. 
    3. The output of the MDAC cannot truly reach the ideal full-scale output of range.  If you would like to know more about the architecture, you should watch this video.
    4. I think an efficient way to change the output frequency would be to create a timer loop where a single code is written to the DAC.  You would configure the timer to trigger based on the period of the sine wave divided by the number of points.

    Let me know if you have anymore questions,

    Thanks

    Paul

  • Hi Paul

    Thanks very much.

    You dealt with my many questions.

    Because I only have one power supply for reference voltage, could I connected the 5VA to VDD which is the 5V from Arduino.

    Or Could I connected it to the Analog Pin of Arduino which I can make it HIGH to around 5V?

    For GND, Could I connect both two different grounds to Arduino GND?

    Thanks again!

  • You could remove jumper W1 and use test point TP1 as your reference input, and connect it to your 5 volt supply so that VDD and VREF are same. It is less ideal because the 5V is probably not very accurate, but should get you started.

    You can connect both grounds to the Arduino GND.

    Thanks!
  • Hello Paul
    Thanks for your reply.
    Sorry to take you time to help me.

    So in case of unstable, I decided to buy the new Power Supply for deal with -5VA.
    1) One more thing that I was confused is how much current should I supply for -5VA and also for Vss
    I just supply 5V with 0A or 5V with around several micro amps.

    2) I already wrote the easy code for this DAC, Could you check it ? If you have some suggestions, thanks very much

    #include <SPI.h>

    #define DAC_8811_CS_PIN 10
    #define VREF 5.000
    #define DACMAX 0xFFFF
    #define DACMIN 0x0000
    #define SCLK 13
    #define SDI 11

    #define SPISettings settingsDAC8811(5000000, MSBFIRST, SPI_MODE0);
    // SPISettings settingsDAC8811(20000000, MSBFIRST, SPI_MODE0);


    // Sine table 256 16bit values, one complete cycle .
    byte val = 0;
    unsigned int Sin_tab[256] = { 32768, 33572, 34376, 35178, 35980, 36779, 37576, 38370, 39161, 39947, 40730, 41507, 42280, ...........
    ,..................,
    18036, 18758, 19489, 20229, 20975, 21729, 22490, 23256, 24029, 24806, 25589, 26375, 27166,
    27960, 28757, 29556, 30358, 31160, 31964
    };

    void setup()
    {
    pinMode(SCLK, OUTPUT);pinMode(SDI,INPUT);pinMode(DAC_8811_CS_PIN, OUTPUT);
    Serial.begin(115200);
    SPI.begin();
    SPI.setDataMode(SPI_MODE0);
    digitalWrite(DAC_8811_CS_PIN,HIGH);
    delayMicroseconds(1);
    }

    void loop()
    {
    while(Serial.available()){};
    digitalWrite(DAC_8811_CS_PIN,LOW);

    for (int x = 0 ; x < 256 ; x++)
    {
    SPI.transfer (highByte (Sin_tab[x]));
    SPI.transfer (lowByte (Sin_tab[x]));
    delayMicroseconds(1);
    }
    digitalWrite(DAC_8811_CS_PIN,HIGH);
    delayMicroseconds(1);
    }
    1. I think that 100mA capability is fine for the AVss and AVcc supplies.  I do not think the +5VA and -5VA are used on the EVM.
    2. While I am not an expert on Arduino code, I think it looks good.  One issue is that your have the CS pin toggling outside the FOR loop where you write the DAC code.  If you look at the datasheet for DAC8811 section 8.5.1 it is explained that the CS must be toggled between each SPI command.