Analog Devices 16 channels, 1MSPS, 12bit ADC with SPI interface

Analog Devices' AD7490 A/D converter chip is a great choice to increase ADC channels to mbed. I wrote a C++ class library, which allows multiple chips on the same SPI serial bus line.

main.cpp - usage of sequential mode (use 2 ADCs)

#include "mbed.h"
#include "AD7490.h"

DigitalOut myled(LED1);
SPI spi(p11,p12,p13);

int main() {

    // set up SPI interface. 
    // should be set before call AD7490 constructer
    spi.format(16,0);
    spi.frequency(1000000);

    // construct AD7490 instances
    AD7490 ad1(spi, p9);
    AD7490 ad2(spi, p10);

    // start ad conversion with sequential mode
    ad1.sequential();
    ad2.sequential();

    while(1) {
        short ad_data[32];      // user buffer area

        myled = 1;
        ad1.read(&ad_data[ 0]);  // save the first ADC data to buffer
        ad2.read(&ad_data[16]);  // save the second ADC data to buffer
        myled = 0;

        for(int i=0; i<32; i++)
            printf("ch[%2d]: %d\n", i, ad_data[i]);
        puts("");
        
        wait(1);
    }
}

API

AD7490
AD7490(SPI _spi, PinName _cs)Constructor. needs SPI instance and the Chip select pin
unsigned short convert(int ch=0)Single channel (one shot) conversion.
void convert(short data[]);All channels conversion with multiple 'one shot conversion'
unsigned short sequential(int ch=15);Start sequential mode, from channel 0 to 'ch'. ch=15 is default
void read(short buffer[]);Read data channel [0] to [ch], and copy them to user buffer area

Files at this revision

API Documentation at this revision

Comitter:
ykuroda
Date:
Wed Aug 29 14:19:06 2012 +0000
Parent:
1:ac3b7f978aa3
Child:
3:b7e72acaade2
Commit message:
Comments inserted.

Changed in this revision

AD7490.cpp Show annotated file Show diff for this revision Revisions of this file
AD7490.h Show annotated file Show diff for this revision Revisions of this file
--- a/AD7490.cpp	Wed Aug 29 14:10:30 2012 +0000
+++ b/AD7490.cpp	Wed Aug 29 14:19:06 2012 +0000
@@ -1,3 +1,8 @@
+//
+//  AD7490 ... Analog Devices 16 channels, 1MSPS, 12bit ADC
+//
+//  2012.08.29 ... Originaly written by Yoji KURODA
+//
 #include "mbed.h"
 #include "AD7490.h"
 
--- a/AD7490.h	Wed Aug 29 14:10:30 2012 +0000
+++ b/AD7490.h	Wed Aug 29 14:19:06 2012 +0000
@@ -1,5 +1,7 @@
 //
-//  AD7490
+//  AD7490 ... Analog Devices 16 channels, 1MSPS, 12bit ADC
+//
+//  2012.08.29 ... Originaly written by Yoji KURODA
 //
 #ifndef _AD7490_H
 #define _AD7490_H