AnsweredAssumed Answered

AD5504 evaluation board software commands

Question asked by musach Employee on Jan 20, 2012
Latest reply on May 16, 2016 by musach

Hi,

 

This discussion explains how to use the new dll library available for both Windows 32 and 64 bits OS.

 

We aim to provide a detailed explanation of the dll functions and the commands associate with each evaluation board.

This discussion WONT provide any more specific example than the .vi and VB6 code attached.

We are not software developers so for any other software platform, don’t ask please.

If you have some question you can use any search engine available in the web.

 

Before start you must install, ADI_PDA_Drivers.exe

The dll can be found in the next path:

“Program Files\Analog Devices\USB Drivers\ADI_CYUSB_USB4.dll”

 

Before continue, the dll has been developed in C++ so, some clarifications

-          The sign “*” before the name of the function means pointer

-          UInt: unsigned integer, 4 bytes

-          Int: Integer, 4 bytes

-          UShort: unsigned short, 2bytes

-          Char: char, 1 byte

-          UChar: unsigned char, 1 byte

 

The     three first functions are used to connect with the board and have to    be  called in the order they are presented in this document.

 

  • Search For Boards

 

Function prototype:

Uint  Search_For_Boards (uint VID, uint PID, uint *Num_boards, char *PartPath[]);

 

This function searches the PC for USB devices that match the requested VID and PID.
It returns an error (zero for non-error) along with the number of     matching boards found and a path address in a buffer for each of them.

The PartPath returns the path for each board found in the PC that match PID and VID.

Ie. Num_boards = 2,

Path for the first board -> PartPath[0]

Path for the second board -> PartPath[1]

 

VID : 0x0456

PID : 0xB230

 

 

  • Connect

 

Function prototype:

Int Connect(Uint VID, Uint PID, char PartPath, Uint *Handle);

 

The PID and the VID are the same than before.

This function connects with the board at address path after     making sure that it’s still the correct board (checks PID & VID).    A  handle is returned, along with an error variable (zero for    non-error).  The handle is the unique identifier for the PC-Board    connection.

PartPath is a single location from the previous array, typically PartPath(0).

 

  • Download Firmware

 

                Function prototype:

Int Download_Firmware(Uint Handle, char  pcFilePath[]);

 

This     function programs the uC. The pcFilePath is the path where is  located    the hexadecimal file (included in the attached file) to  program the  uC.   The char array should be null terminated (finish with  0)

 

  • Vendor Request

 

Function prototype:

Int      Vendor_Request(UInt  Handle, UChar Request, UShort Value, UShort    Index,  UChar Direction, UShort DataLength, UChar *Buffer[]);

 

This     function sends commands between PC and board. The command table is     included in the hexadecimal code that has been downloaded previously.

Each command requires different parameters for the execution. The list of commands available for both boards is explained below.

An error value is returned (zero = no error)

 


Request

Value

Index

Direction

Datalength

Buffer

SPI_WRITE

0xDD

16 bits LSB data

8 MSB bits data

0

0

0

SPI_READ

0xDD

0

0

1

3

Data[]

SETCLR

0xDA

0

0

0

0

0

CLRCLR

0xDB

0

0

0

0

0

PULSE_LDAC

0xDE

0

0

0

0

0

SETLDAC

0xE2

0

0

0

0

0

CLRLDAC

0xE3

0

0

0

0

0

30v mode

0xE4

0

0

0

0

0

60v mode

0xE5

0

0

0

0

0

turn on warning light

0xE6

0

0

0

0

0

turn off warning light

0xE7

0

0

0

0

0

 

 

data[] 3 bytes of data

 

 

  • Disconnect

 

                Function prototype:

Int Disconnect (Uint Handle)

 

This function closes the connection PC – board.

 

If do you think I miss something just let me know.

 

Regards,

 

Miguel

Outcomes