Class for AD7390, a 12 bit SPI driven external DAC from Analog Devices.

Dependencies:   mbed

Datasheet - http://www.analog.com/static/imported-files/data_sheets/AD7390_7391.pdf

AD7390.cpp

Committer:
cassar10
Date:
2014-04-06
Revision:
3:37ec9ea72264
Parent:
1:19818c103c9c
Child:
5:1ce3ec1e5f8b

File content as of revision 3:37ec9ea72264:

# include "AD7390.h"
#include "mbed.h"

AD7390::AD7390(SPI& _spi, PinName resetpin, PinName latchpin) : //Mosi, sclk 2x digital out refV, previously missed scope operator.
    spi(_spi),reset(resetpin), latch(latchpin){
    }
    void AD7390::Init()
    {
        //Vout = (Vref*D)/2^n
        spi.format(12,0);
        latch = 1;                                      //Pull low to pass shift register to DAC register
        reset = 1;
    }
    
    void AD7390::Reset()                                //Reset ADC to 0V by pulling reset pin low
    {
        reset = 0;
        reset = 1;                                      //Set back to high so it can be written to again
    }
    void AD7390::Latch()                                //Latch data from shift register to DAC
    {
        latch = 0;
        latch = 1;
    }
    void AD7390::Write(float Volts, float RefV)                     //write will require seperate latch after
    {
        unsigned int send = 0x0000;
        send = (unsigned int) (4096/RefV)*Volts;
        spi.write(send);
    }
    void AD7390::WriteL(float volts, float RefV)                    //Same as write but with latch attached
    {
        unsigned int Send = 0x0000;
        Send = (unsigned int) (4096/RefV)*volts;      //parse float into unsigned int to send to DAC
        spi.write(Send);
        latch = 0;
        latch = 1;
    }