EVAL-AD5370 Setup and Getting Started

Hello ADI Community,

Background

I am brand new to AD, and AD DAC's I came here to use 5370 to create 40 analog out device to control 40 channels of different 1000Hz signals. I bought the EVAL board in order to avoid working on the chip and use the pinouts to my advantage.

Board

EVAL-AD5370 | Rev A

What I have tried

  1. Windows Machine (Desktop)
    Software: Used the software (AD536x_7x) provided by analog devices to control the pins
    Jumpers: All jumpers are in place LK3, LK8 and LK1, and LK4 is set to 3V (optionA)
    Probes: V0 and AGND (T12) 
    Result: DMM showed zero volts, Oscciloscope could not pick up anything other than stray noise, Note that the the software on "Output Voltages" tab showed Vout0 = -3.0001V
  2. Ubuntu Machine - 1  (Desktop)
    Software: Ubuntu 19.04 / Loaded AD5360 driver using modprobe ad5360 (enabled IIO via kernel)
    Jumpers: All jumpers are in place LK3, LK8 and LK1, and LK4 is set to 3V (optionA)
    Probes: V0 and AGND (T12) 
    Result: Cannot find IIO device, in /sys/bus/iio/devices/
  3. Ubuntu Machine - 2  (Desktop)
    Software: Ubuntu 19.04 / Loaded AD5360 driver using modprobe ad5360 (enabled IIO via kernel) / also setup libiio
    Jumpers: All jumpers are in place LK3, LK8 and LK1, and LK4 is set to 3V (optionA)
    Probes: V0 and AGND (T12) 
    Result: Cannot find IIO device via lsiio or even iio_info
  4. Rasbian - Raspberry Pi 3
    Jumpers: All jumpers are in removed LK3, LK8 and LK1, except LK4 is set to 3V (optionA)
    Software: Used AD5370_rpi_control.py from https://github.com/filiplindau/AD5370 , enabled SPI communcation on RPi, installed python2 spidev and rpigpio support
    Power: Since the jumpers are out, i reasoned USB can be used to just power the device and not control it.
    Probe: V0 and AGND (T12) 
    Cables: (as described by the code in python) 
    1. LDAC_pin = 17
      BUSY_pin = 22
      CLR_pin = 27
      RESET_pin = 4
    Result: Code does not give any error, ive been "successfully" able to run write_value_volt() without any error and pulse ldac, 
                No significant output is observable by DMM or oscilloscope. 

I have additionally tried to probe a wide variety set of pins and i still get no significant result. Another observation that I have is that pressing the reset button does nothing to the power LED, my usual expectation is that at least the power LED flashes. Hopefully there is nothing fundamentally flawed in my approach. or i hope the dac is not DOA for me.

Any help and guidance would be deeply appreciated. 

Parents
  • 0
    •  Analog Employees 
    on Mar 9, 2020 3:30 AM 10 months ago

    Hi,


    Let's focus on making things work using the evaluation software in a Windows machine, may I know what Windows version you are using? Have you tried using Windows 7? Did you follow the User Guide?

    After powering up the board, please measure VREF0, VREF1, DVCC and VDD pins and check if they are at correct voltage levels.

    And when using the evaluation software, every time you send commands, please monitor the SPI lines (DIN, SCLK and SYNC).

    The commands you see in the scope should be the exact command issued thru the evaluation software.

    Cheers,

    Ivan

  • Thankyou isantos,

    1. I am using windows 10, i have also tried windows 7 compatibility mode as well, and followed the instructions as you mentioned.

    2. I tried to probe for voltages across these following pins and i got the following values

    DGND - DVCC : 0.483 V
    AGND - VDD : 0.005 V
    AGND - VSS : 0.153 V
    AGND - VREF1(T64) : 0.006 V
    AGND - VREF0(T63) : 0.007 V

    VREF0 and VREF1  being very close to zero make me wonder if the board is DOA.

    Is there any other test i could do ?

  • 0
    •  Analog Employees 
    on Apr 6, 2020 3:13 AM 9 months ago in reply to sandeepzgk

    Hi,

    Apologies I am not very familiar with the code you shared.

    Have you tried monitoring the SPI signals going into the AD5370? If the update rate is too slow then it might be due to the USB controller.

    Have you also tried using RP3 at the same rates?

    Cheers,

    Ivan

  • Unfortunately, i am still struggling to find a reasonable and stable code base to start off with, is there any github links or some code that you think would make my life easier?

    i.e. i want to output data as fast as i can from the device, preferably using USB (hence the eval board), rest of the conditions dont matter, i.e. OS/Device etc.

  • I have been looking into the forums, and I found  adiddseval.dll and adiddseval.h file that is used for DDS products of ADI, is there a similar DLL and H file for DACs? If so where can I find it?

  •  Thankyou Ivan for your help. So I developed an entire application library to talk to EVAL board using C++ and windows. It works. But I am very concerned about the performance. I used ADI_CYUSB_PDA_x64.inf driver (as provided by the link), along with the HEX file also provided in the link with the specific DLL ADI_CYUSB_USB4.dll, with almost zero overhead.  https://github.com/sandeepzgk/EVAL-AD5370 

    I tried to evaluate the performance of AD5370 using this driver provided by AD. I could not send SPI commands any faster than 1130 microseconds (on average for 1000 calls). I tried a different library/driver(libusb-win32) which helped me go a bit faster to 950 microseconds (on average for 1000 calls)

    I am nowhere near the nanosecond scales promised in the datasheet of 600 ns for a single-channel update time. Although the register update time per the documentation states that two stages take 600 ns, the third stage takes 300 ns per one channel update, i.e. 900 ns or 0.9 microseconds. Adding say 200% overhead, it should take about 2.7 microseconds, per update. 

    Is the evaluation board broken? From my understanding, as per the documentation it is supposed to be Full-Featured Evaluation Board for the AD5370/AD5372/AD5373 ?

    Questions:
    ** Did I misunderstand of how fast AD5370 can update? 
    ** How can I get the board to work as fast as possible (i.e EVAL-AD5370)?
    ** Is there a newer driver that can work faster (the driver from that link is pretty old, i.e 2012)?
    ** Is there another board similar to this which can do faster updates, i.e. ~100 microseconds / 10 kHz?

Reply
  •  Thankyou Ivan for your help. So I developed an entire application library to talk to EVAL board using C++ and windows. It works. But I am very concerned about the performance. I used ADI_CYUSB_PDA_x64.inf driver (as provided by the link), along with the HEX file also provided in the link with the specific DLL ADI_CYUSB_USB4.dll, with almost zero overhead.  https://github.com/sandeepzgk/EVAL-AD5370 

    I tried to evaluate the performance of AD5370 using this driver provided by AD. I could not send SPI commands any faster than 1130 microseconds (on average for 1000 calls). I tried a different library/driver(libusb-win32) which helped me go a bit faster to 950 microseconds (on average for 1000 calls)

    I am nowhere near the nanosecond scales promised in the datasheet of 600 ns for a single-channel update time. Although the register update time per the documentation states that two stages take 600 ns, the third stage takes 300 ns per one channel update, i.e. 900 ns or 0.9 microseconds. Adding say 200% overhead, it should take about 2.7 microseconds, per update. 

    Is the evaluation board broken? From my understanding, as per the documentation it is supposed to be Full-Featured Evaluation Board for the AD5370/AD5372/AD5373 ?

    Questions:
    ** Did I misunderstand of how fast AD5370 can update? 
    ** How can I get the board to work as fast as possible (i.e EVAL-AD5370)?
    ** Is there a newer driver that can work faster (the driver from that link is pretty old, i.e 2012)?
    ** Is there another board similar to this which can do faster updates, i.e. ~100 microseconds / 10 kHz?

Children
No Data