The AD7476/AD7477/AD7478 are, respectively, 12-bit, 10-bit, and 8-bit, high speed, low power, successive approximation ADCs. The parts operate from a single 2.35 V to 5.25 V power supply and feature throughput rates up to 1 MSPS. Each part contains a low noise, wide bandwidth track-and-hold amplifier that can handle input frequencies in excess of 6 MHz.
The conversion process and data acquisition are controlled using CS the serial clock, allowing the devices to interface with microprocessors or DSPs. The input signal is sampled on the falling edge of CS and the conversion is initiated at this point. There are no pipeline delays associated with these parts.
The AD7476/AD7477/AD7478 use advanced design techniques to achieve very low power dissipation at high throughput rates. The reference for the parts is taken internally from VDD. This allows the widest dynamic input range to the ADC. Thus, the analog input range for the parts are 0 V to VDD. The conversion rate is determined by the SCLK.
The goal of this project (Microcontroller No-OS) is to be able to provide reference projects for lower end processors, which can't run Linux, or aren't running a specific operating system, to help those customers using microcontrollers with ADI parts. Here you can find a generic driver which can be used as a base for any microcontroller platform and also specific drivers for different microcontroller platforms.
The driver contains two parts:
The Communication Driver has a standard interface, so the AD74xx driver can be used exactly as it is provided.
There are three functions which are called by the AD74xx driver:
SPI driver architecture
The following functions are implemented in this version of AD74xx driver:
|char AD74xx_Init(char partNumber)||Initializes the device.|
|void AD74xx_PowerDown(void)||Powers down the device.|
|void AD74xx_PowerUp(void)||Powers up the device by performing a dummy read.|
|unsigned short AD74xx_GetRegisterValue(void)||Reads the conversion value.|
|float AD74xx_ConvertToVolts(unsigned short rawValue, float vRef)||Converts a raw sample to volts.|