AnsweredAssumed Answered

AD Evaluation Boards used in C# - ADI-CYUSB_USB4.dll

Question asked by suiram on Jun 4, 2014
Latest reply on May 11, 2017 by PHILLIID

Hello,

 

I was able to use AD5360 EVAL board in a C# application based on little information gathered from internet. All these evaluation boards use the ADI_CYUSB_USB4.dll that allows sending commands through the USB to SPI controller to the SPI chip (ADC or DAC). Here are the imports I used to have access to the dll functions:

 

     [DllImport(@"\ADI_CYUSB_USB4.dll", EntryPoint = "Search_For_Boards")] public static extern uint Search_For_Boards_Imp(uint VID, uint PID, ref uint Number_Boards, ref char PartPath);

     [DllImport(@"\ADI_CYUSB_USB4.dll", EntryPoint = "Connect")] public static extern int Connect_Imp(uint VID, uint PID, char PartPath, ref uint Handle);

     [DllImport(@"\ADI_CYUSB_USB4.dll", EntryPoint = "Download_Firmware")] public static extern int Download_Firmware_Imp(uint Handle, IntPtr PartPath);

        [DllImport(@"\ADI_CYUSB_USB4.dll", EntryPoint = "Vendor_Request")] public static extern int
Vendor_Request_Imp(uint Handle, byte Request, ushort Value, ushort Index, byte Direction, ushort DataLength, ref byte Buffer);

        [DllImport(@"\ADI_CYUSB_USB4.dll", EntryPoint = "Disconnect")] public static extern int
Disconnect_Imp(uint Handle);

 

These are the commands that I found on line and I was able to use them successfully with AD5360 EVAL board:

//              Request        Value    Index         Direction Datalength    Buffer       

          //for AD5360

          //SPI_WRITE      0xDD          16LSB data       8     MSB data    0              0       0

        //SPI_READ       0xDD          0          0             1             3             DATA[]

        //SETRESET       0xDA          0          0             0             0             0

         //CLRRESET       0xDB          0          0             0             0                0

        //SETCLR         0xDC          0          0             0             0             0

        //PULSE_LDAC 0xDE       0      0             0             0             0

        //CLRCLR         0xDF          0          0             0             0             0

          //SETLDAC        0xE2          0          0             0             0             0

          //CLRLDAC        0xE3          0          0             0             0             0

          //DATA returns 3 byte of data

 

Recently I purchased an AD5590 EVAL board hopping that I would be able to use it in the same way. Unfortunately, the commands are not the same (or not enough) and I couldn’t find any information about them. I ended up trying to find these commands with a USB Analyzer (sniffer). I was able to see the commands sent by the eval board and finally I might succeed but this is not the way I like to do it. Revers engineering is not the proper way to use an evaluation board.

I don’t understand why Analog Devices hide this information. The purpose of an evaluation board is to present all the info required for
using it.

 

Please, Analog Devices or any engineer that has this information, make it public.

 

Thanks,

suiraM

Outcomes