The AD7091R is a 12-bit successive approximation analog-to-digital converter (ADC) that offers ultralow power consumption (typically 349 µA at 3 V and 1 MSPS) while achieving fast throughput rates (1 MSPS with a 50 MHz SCLK). The AD7091R uses advanced design and process techniques to achieve this very low power dissipation at high throughput rates. The part also features an on-chip, accurate 2.5 V reference.
Operating from a single 2.7 V to 5.25 V power supply, the part contains a wide bandwidth track-and-hold amplifier that can handle input frequencies in excess of 7 MHz. The AD7091R also features an on-chip conversion clock and high speed serial interface. The conversion process and data acquisition are controlled using a CONVST signal and an internal oscillator.
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 AD7091R driver can be used exactly as it is provided.
There are three functions which are called by the AD7091R driver:
SPI driver architecture
The following functions are implemented in this version of AD7091R driver:
|char AD7091R_Init(void)||Initializes the SPI communication peripheral.|
|void AD7091R_SoftwareReset(void)||Initiate a software reset of the device.|
|unsigned short AD7091R_ReadSample(void)||Initiates one conversion and reads back the result.|
|void AD7091R_PowerDown(void)||Puts the device in power-down mode.|
|void AD7091R_PowerUp(void)||Powers up the device.|
|float AD7091R_ConvertToVolts(short rawSample, float vRef)||Converts a 12-bit raw sample to volts.|