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 intVendor_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 intDisconnect_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
//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 forusing it.
Please, Analog Devices or any engineer that has this information, make it public.
Can you provide a working example of the C# file you used to send USB commands to the evaluation boards, specifically the AD5360 eval board.