Using Arduino to Send Data to AD5781 DAC Register



I am using an Arduino to send data to the AD5781 DAC register (I have the AD5781 evaluation board) -- specifically, in the big picture, I want to send data continuously from the Arduino to the DAC so that I can get a desired smooth waveform output from the DAC. However, I cannot seem to get an output from the DAC, and so I assume that there must be something wrong with the way I am interfacing the Arduino and DAC.


In order to help pinpoint the problem, I have drawn a timing diagram (attached) based on what I am trying to do and what I understand should be the proper method to communicate with the DAC register in order to write data to it from the Arduino.


Please let me know if you see any flaws in my logic / timing diagram / implementation.


For reference, here is a link to the AD5781 datasheet:


Thank you for the help!



    •  Analog Employees 
    on Jan 16, 2018 8:09 AM over 2 years ago


    There should be no SDIN transitions during falling edge of SCLK as this is the time when the data is sampled.

    To add, please do configure the DAC properly using the steps in page 24 of the datasheet. Thanks!



  • Thank you very much! I will make sure to do that. Appreciate the help.

    -- Neal

  • Hello again,

    So I've done as you suggested, but I am still not getting an output from the VOUT pin on the AD5781 EVAL board. I'm very stuck and was wondering if you could please take a look at my code below to determine where I might be going wrong? Or if the code looks correct, if I'm missing something else here?



    •  Analog Employees 
    on Jan 17, 2018 8:22 AM over 2 years ago


    Can you please provide the schematic diagram and the voltages levels of the supplies?
    And would be great if you can also provide the oscilloscope waveforms of the two frames (writing the control register and writing to DAC register).



  • Hello,

    The VREF and VCC are set at +5 V (as indicated on the user guide for AD5781 EVAL) and the VDD is +15 V and VSS is -15V (within the range of operation given). I do not have a drawn schematic on hand but you can see off my code how the pins are connected between the Arduino and AD5781 EVAL. Essentially, pin 7 on Arduino UNO is connected to LDAC pin on AD5781 EVAL, etc.

    As for the waveform diagrams, I am not getting any output from the DAC (VOUT pin) as I mentioned previously, so I'm not able to see the waveforms for writing to control register and DAC register. However, I do have a picture of the waveform for the data being written to the DAC register, solely as a probing of the MISO pin on the Arduino SPI. I have attached this below (blue is MISO and yellow is SYNC for first image, and blue is MISO and yellow is SCLK for second image).

    Please let me know if you can help me figure out how to get an output from the AD5781, given my code and these diagrams. Not sure where I am going wrong still, and would appreciate any guidance.


    First Image:

          blue is MISO and yellow is SYNC for first image

    Second Image:

        blue is MISO and yellow is SCLK for second image