wiki:warpdac_ad9775.c

Analog Devices AD9775 Control Library


Full Code

warpdac_ad9775.c
This file provides functions for controlling the WARP radio board's DAC chip.

Documentation

Functions

For all functions the input variable baseaddr is the base address of the SPI Core. The variable dacs is one hot encoded such that the eighth most significant bit refers to the fourth DAC, the seventh most significant to the third DAC, the sixth to the second DAC, and the fifth to the first. For example 0x0080 would indicate the fourth DAC, 0x0010 the first, and 0x0050 the first and third together.

void WarpDac_InitializeSPI(unsigned int* baseaddr)
Initializes the SPI controller for DAC functions. This function must be called before calling any other DAC functions.

void WarpDac_InitializeDAC(unsigned int* baseaddr, unsigned char dacs)
This function must be called at the beginning of the program to make necessary changes in some of the registers of the DAC. Initializes the DACs specified in dacs, the 8 bit value where the 4 most significant bits choose the DAC to initialize.

void WarpDac_Reset(unsigned int* baseaddr, unsigned char dacs)
Resets the DAC registers to their default values. Calls WarpDac_InitializeDAC, so there is no need to repeat it in the code. dacs is an 8 bit value where the 4 most significant bits choose the DAC to reset.

int WarpDac_Sleep(unsigned int* baseaddr, char mode, unsigned char dacs)
Will take the specified DACs either in (mode=1) or out (mode=0) of sleep mode. dacs is an 8 bit value where the 4 most significant bits choose the DAC to alter.

int WarpDac_FineGainAdj(unsigned int* baseaddr, char chan, unsigned char value, unsigned char dacs)
Adjusts the fine gain of either the I (chan=ICHAN) or the Q (chan=QCHAN) channel. The magnitude of adjustment is specified in the variable value which has a range from 0 to 255. dacs is an 8 bit value where the 4 most significant bits choose the DAC to alter. Returns INVALID_MODE if the mode is incorrect. Returns WARP_SUCCESS if change is successful.

int WarpDac_CoarseGainAdj(unsigned int* baseaddr, char chan, unsigned char value, unsigned char dacs)
Adjusts the coarse gain of either the I (chan=ICHAN) or the Q (chan=QCHAN) channel. The magnitude of adjustment is specified in the variable value which has a range from 0 to 15. dacs is an 8 bit value where the 4 most significant bits choose the DAC to alter. Returns INVALID_MODE if the mode is incorrect. Returns WARP_SUCCESS if change is successful.

int WarpDac_OffsetAdj(unsigned int* baseaddr, char chan, short value, unsigned char dacs)
Adjusts the DC offset of either the I (chan=ICHAN) or the Q (chan=QCHAN) channel. The magnitude of adjustment is specified in the variable value which has a range from -1024 to 1023. dacs is an 8 bit value where the 4 most significant bits choose the DAC to alter. Returns INVALID_MODE if the mode is incorrect. Returns WARP_SUCCESS if change is successful.

Last modified 14 years ago Last modified on Jan 26, 2006, 3:42:23 PM