LTC2314-14 - 14-Bit, 4.5Msps Serial Sampling ADC in TSOT

Features

  • 4.5Msps Throughput Rate
  • Guaranteed 14-Bit No Missing Codes
  • Internal Reference: 2.048V/4.096V Span
  • Low Noise: 77.5dB SNR
  • Low Power: 6.2mA at 4.5Msps and 5V
  • Dual Supply Range: 3V/5V operation
  • Sleep Mode with < 1μA Typical Supply Current
  • Nap Mode with Quick Wake-up < 1 conversion
  • Separate 1.8V to 5V Digital I/O Supply
  • High Speed SPI-Compatible Serial I/O
  • Guaranteed Operation from –40°C to 125°C
  • 8-Lead TSOT-23 Package

Typical Application

LTC2314-14 Typical Application
LTC2314-14 Typical Application

Description

The LTC®2314-14 is a 14-bit, 4.5Msps, serial sampling A/D converter that draws only 6.2mA from a wide range analog supply adjustable from 2.7V to 5.25V. The LTC2314-14 contains an integrated bandgap and reference buffer which provide a low cost, high performance (20ppm/°C max) and space saving applications solution. The LTC2314-14 achieves outstanding AC performance of 77dB SINAD and –85dB THD while sampling a 500kHz input frequency. The extremely high sample rate-to-power ratio makes the LTC2314-14 ideal for compact, low power, high speed systems. The LTC2314-14 also provides both nap and sleep modes for further optimization of the device power within a system.

The LTC2314-14 has a high-speed SPI-compatible serial interface that supports 1.8V, 2.5V, 3V and 5V logic. The fast 4.5Msps throughput makes the LTC2314-14 ideally suited for a wide variety of high speed applications.

Packaging

For complete and up to date package information and drawings, please refer to our packaging page

Part Number Package Code Temp Package
Drawing
RoHS
LTC2314CTS8-14#PBF SOT-23 TS8 C 05-08-1637 Yes
LTC2314CTS8-14#TRMPBF SOT-23 TS8 C 05-08-1637 Yes
LTC2314CTS8-14#TRPBF SOT-23 TS8 C 05-08-1637 Yes
LTC2314HTS8-14#PBF SOT-23 TS8 H 05-08-1637 Yes
LTC2314HTS8-14#TRMPBF SOT-23 TS8 H 05-08-1637 Yes
LTC2314HTS8-14#TRPBF SOT-23 TS8 H 05-08-1637 Yes
LTC2314ITS8-14#PBF SOT-23 TS8 I 05-08-1637 Yes
LTC2314ITS8-14#TRMPBF SOT-23 TS8 I 05-08-1637 Yes
LTC2314ITS8-14#TRPBF SOT-23 TS8 I 05-08-1637 Yes


LTC2314-14 Package Drawing

Order Info

  • Part numbers ending in PBF are lead free. Solder plated terminal finish (SnPb) versions are non-standard and special terms and conditions and pricing applies if available. Please contact LTC marketing for information.
  • Part numbers containing TR or TRM are shipped in tape and reel or 500 unit mini tape and reel, respectively
  • Please refer to our general ordering information or the product datasheet for more details

Package Variations and Pricing

Part Number Package Temp Price
(1-99)
Price
(1k)*
RoHS
LTC2314CTS8-14#PBF SOT-23 C $13.60 Yes
LTC2314CTS8-14#TRMPBF SOT-23 C $13.60 $9.57 Yes
LTC2314CTS8-14#TRPBF SOT-23 C $13.60 $9.52 Yes
LTC2314HTS8-14#PBF SOT-23 H $17.99 Yes
LTC2314HTS8-14#TRMPBF SOT-23 H $17.99 $12.64 Yes
LTC2314HTS8-14#TRPBF SOT-23 H $17.99 $12.59 Yes
LTC2314ITS8-14#PBF SOT-23 I $15.64 Yes
LTC2314ITS8-14#TRMPBF SOT-23 I $15.64 $11.00 Yes
LTC2314ITS8-14#TRPBF SOT-23 I $15.64 $10.95 Yes
Buy NowRequest Samples
* The USA list pricing shown is for BUDGETARY USE ONLY, shown in United States dollars (FOB USA per unit for the stated volume), and is subject to change. International prices may differ due to local duties, taxes, fees and exchange rates. For volume-specific price or delivery quotes, please contact your local Linear Technology sales office or authorized distributor.

Demo Boards

Linear Technology offers many demo boards free of charge to qualified customers. Contact your local sales office or distributor to inquire about a demo board. Certain demo boards are also available for sale via credit card on this website. Demo boards are for evaluation purposes only. It remains the customer’s responsibility to verify proper and reliable operation in the actual end application.

Part Number Description Price Documentation
DC1563A-F LTC2314-14 Demo Board | 14-Bit, 4.5Msps Serial SAR ADC with 20ppm/°C (Max) Internal Reference in TSOT-8 (Req DC2026 or DC718) $50.00
Buy Now
Click here to view our complete list of demo boards

Applications

  • Communication Systems
  • High Speed Data Acquisition
  • Handheld Terminal Interface
  • Medical Imaging
  • Uninterrupted Power Supplies
  • Battery Operated Systems
  • Automotive

Product Notifications

Please login to your MyLinear account for notifications of datasheet updates, new document releases and LTspice model announcements for your favorite products. If you do not have a MyLinear account you may Sign Up Now.

Forgot your password? Click here.
Need help? Email mylinear@linear.com with questions and comments.

Design Tools

Linduino

Linduino is an Arduino compatible platform for developing and distributing firmware libraries and code for SPI and I²C-compatible integrated circuits. The Linduino One board interfaces to more than 300 QuikEval demonstration cards, supporting a variety of product types including analog-to-digital converters (ADCs)digital-to-analog converters (DACs)power monitors, and more. Firmware libraries for individual devices are written in C and designed to be portable to a wide variety of processors and microcontrollers. Each library has a demonstration program that can be uploaded to the Linduino One platform to allow the circuit and software to be quickly and easily verified.

Click here for more information on Linduino

Code

Linduino is Linear Technology's Arduino compatible system for developing and distributing firmware libraries and example code for Linear Technology’s integrated circuits. The code below can be downloaded or copied and pasted into your project. Please visit the Linduino Home Page for demo board, manual and setup information.

This part is Family Supported: There is example code available for a part in this family. The code may require some changes to work with this specific part, however it still provides many good examples of how certain interactions should take place. The code below may rely on other drivers available in the full library.

Download LTC2315 - DC1563A Linduino .INO File

/*!
Linear Technology DC1563A Demonstration Board.
LTC2312-12: 12-Bit, 500Ksps ADC.
LTC2312-14: 14-Bit, 500Ksps ADC.
LTC2313-12: 12-Bit, 2.5Msps ADC
LTC2313-14: 14-Bit, 2.5Msps ADC
LTC2314-14: 14-Bit, 4.5Msps ADC
LTC2315-12: 12-Bit, 5Msps ADC

@verbatim

NOTES
  Setup:
   Set the terminal baud rate to 115200 and select the newline terminator.
   Equipment required is a precision voltage source (null box) and a precision voltmeter (to monitor voltage source).
   No external power supply is required.
   Ensure JP1 is installed in the default position from the factory.

  How to test:
   The voltage source should be connected with positive and negative leads to the positive & negative ADC inputs. Ensure the differential voltage is within the
   range of -VREF to +VREF. Swapping input voltages results in a reversed polarity reading.

USER INPUT DATA FORMAT:
 decimal : 1024
 hex     : 0x400
 octal   : 02000  (leading 0 "zero")
 binary  : B10000000000
 float   : 1024.0

@endverbatim

http://www.linear.com/product/LTC2312-12
http://www.linear.com/product/LTC2312-14
http://www.linear.com/product/LTC2313-12
http://www.linear.com/product/LTC2313-14
http://www.linear.com/product/LTC2314-14
http://www.linear.com/product/LTC2315-12

http://www.linear.com/product/LTC2312-12#demoboards
http://www.linear.com/product/LTC2312-14#demoboards
http://www.linear.com/product/LTC2313-12#demoboards
http://www.linear.com/product/LTC2313-14#demoboards
http://www.linear.com/product/LTC2314-14#demoboards
http://www.linear.com/product/LTC2315-12#demoboards

REVISION HISTORY
$Revision: 1792 $
$Date: 2013-08-9 13:58:53 -0700 (Thu, 25 Jul 2013) $

Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.

The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community.  Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/

/*! @file
    @ingroup LTC2315
*/

#include <Arduino.h>
#include <stdint.h>
#include "Linduino.h"
#include "LT_SPI.h"
#include "UserInterface.h"
#include "LT_I2C.h"
#include "QuikEval_EEPROM.h"
#include "LTC2315.h"
#include <SPI.h>
#include <Wire.h>

// Function Declaration
void print_title();                                         // Print the title block
void print_prompt();                                        // Prompt the user for an input command
void print_user_command(uint8_t menu);                      // Display selected differential channels

void menu_1_read_input();
void menu_2_select_bits();
void menu_3_select_vref();
void menu_4_select_part();

// Global variables
static uint8_t LTC2315_bits = 12;                   //!< Default set for 12 bits
static uint8_t LTC2315_shift = 1;
float LTC2315_vref = 4.096;
static uint8_t LTC2315_JP3 = 1;                     //!< Default set for 4.096V (Vdd = 5V)


//! Initialize Linduino
void setup()
{
  uint32_t adc_code; 
  quikeval_I2C_init();           // Configure the EEPROM I2C port for 100kHz
  quikeval_SPI_init();           // Configure the spi port for 4MHz SCK
  quikeval_SPI_connect();        // Connect SPI to main data port
  Serial.begin(115200);          // Initialize the serial port to the PC
  print_title();
  print_prompt();
}


//! Repeats Linduino loop
void loop()
{
  uint16_t user_command;
  {
    if (Serial.available())
    {
      user_command = read_int();        // Read the user command
      if (user_command != 'm')
        Serial.println(user_command);   // Prints the user command to com port
      switch (user_command)
      {
        case 1:
          menu_1_read_input();
          break;
        case 2:
          menu_2_select_bits();
          break;
        case 3:
          menu_3_select_vref();
          break;
        case 4:
          menu_4_select_part();
          break;
        default:
          Serial.println("  Invalid Option");
          break;
      }
      Serial.println();
      print_prompt();
    }
  }
}


// Function Definitions
//! Read channel
//! @return void
void menu_1_read_input()
{
  uint8_t user_command;
  uint16_t adc_code;                           // The LTC2315 code
  uint16_t display_code;
  float adc_voltage;                               // The LTC2315 voltage
    
    // Read and display a selected channel
    LTC2315_read(LTC2315_CS, &adc_code);  //discard the first reading
    delay(100);
    LTC2315_read(LTC2315_CS, &adc_code);
    
    display_code = adc_code >> (16 - LTC2315_bits - LTC2315_shift);  //the data is left justified to bit_14 of a 16 bit word for the LTC2314/2315, and left justified to bit_15 for the LTC2312/2313
    if(LTC2315_bits == 12)
      display_code = display_code & 0xFFF;
    else
      display_code = display_code & 0x3FFF;      
    
    Serial.print(F("  Received Code: b"));
    Serial.println(display_code, BIN);
       
  // Convert the received code to voltage 
    adc_voltage = LTC2315_code_to_voltage(adc_code, LTC2315_shift, LTC2315_vref); 
          
    Serial.print(F("  Equivalent voltage: "));
    Serial.print(adc_voltage, 4);
    Serial.println(F("V"));
}


//! Select number of bits
//! @return void
void menu_2_select_bits()
{
  uint8_t user_command;
  
  Serial.println(F("  12 = 231X-12"));
  Serial.println(F("  14 = 231X-14"));
  Serial.print(F("  Enter a Command, based upon the resolution of the part under test: "));

  user_command = read_int();    // Read user input
  Serial.println(user_command);   // Prints the user command to com port
  switch (user_command)
    {
        case 12:
          LTC2315_bits = 12;
          Serial.println(F("  12 bits selected"));
        break;
        case 14:
          LTC2315_bits = 14;
          Serial.println(F("  14 bits selected"));
        break;
        default:
        {
          Serial.println("  Invalid Option");
          return;
        }
          break;
    }
}


//! Select vref
//! @return void
void menu_3_select_vref()
{
  uint8_t user_command;
    
  Serial.println(F("  0 = 2.048V Vref (Vdd = 3.3V)"));
  Serial.println(F("  1 = 4.096V Vref (Vdd = 5V)"));
  Serial.print(F("  Enter a Command, based upon the position of JP3: "));

  user_command = read_int();    // Read user input
  Serial.println(user_command);   // Prints the user command to com port
  switch (user_command)
    {
        case 0:
          LTC2315_JP3 = 0;
          LTC2315_vref = 2.048;
          Serial.println(F("  2.048V Vref selected"));
          break;
        case 1:
          LTC2315_JP3 = 1;
          LTC2315_vref = 4.096;
          Serial.println(F("  4.096V Vref selected"));
          break;
        default:
        {
          Serial.println("  Invalid Option");
          return;
        }
          break;
    }
}


//! Select vref
//! @return void
void menu_4_select_part()
{
  uint8_t user_command;
    
  Serial.println(F("  0 = LTC2314/2315"));
  Serial.println(F("  1 = LTC2312/2313"));
  Serial.print(F("  Enter a Command: "));

  user_command = read_int();    // Read user input
  Serial.println(user_command);   // Prints the user command to com port
  switch (user_command)
    {
        case 0:
          LTC2315_shift = 1;
          Serial.println(F("  LTC2314/2315 selected"));
          break;
        case 1:
          LTC2315_shift = 0;
          Serial.println(F("  LTC2312/2313 selected"));
          break;
        default:
          Serial.println("  Invalid Option");
          return;
          break;
    }
}


//! Prints the title block when program first starts.
void print_title()
{
  Serial.println();
  Serial.println(F("*****************************************************************"));
  Serial.println(F("* DC1563A Demonstration Program                                 *"));
  Serial.println(F("*                                                               *"));
  Serial.println(F("* This program demonstrates how to receive data                 *"));
  Serial.println(F("* from the following ADCs:                                      *"));
  Serial.println(F("*   LTC2312-12                                                  *"));
  Serial.println(F("*   LTC2312-14                                                  *"));
  Serial.println(F("*   LTC2313-12                                                  *"));
  Serial.println(F("*   LTC2313-14                                                  *"));
  Serial.println(F("*   LTC2314-14                                                  *"));
  Serial.println(F("*   LTC2315-12                                                  *"));
  Serial.println(F("*                                                               *"));
  Serial.println(F("* Set the baud rate to 115200 and select the newline terminator.*"));
  Serial.println(F("*                                                               *"));
  Serial.println(F("*****************************************************************"));
}


//! Prints main menu.
void print_prompt()
{
  Serial.println(F("*************************"));
  Serial.println(F("1-Read ADC Input"));
  Serial.println(F("2-Select Number of bits (Default is 12 bits)"));
  Serial.println(F("3-Select Vref (Default is 4.096V)"));
  Serial.println(F("4-Select Part (Default is LTC2314/2315)\n"));
  Serial.print(F("Enter a command:  "));
}

Download LTC2315 - Linduino Header File

/*!
LTC2312-12: 12-Bit, 500Ksps ADC.
LTC2312-14: 14-Bit, 500Ksps ADC.
LTC2313-12: 12-Bit, 2.5Msps ADC
LTC2313-14: 14-Bit, 2.5Msps ADC
LTC2314-14: 14-Bit, 4.5Msps ADC
LTC2315-12: 12-Bit, 5Msps ADC

@verbatim

The following parts (DUT) are pin-compatible, 12/14-bit A/D converters with serial I/O, and an internal reference:
LTC2312-12: 12-Bit, 500Ksps ADC.
LTC2312-14: 14-Bit, 500Ksps ADC.
LTC2313-12: 12-Bit, 2.5Msps ADC
LTC2313-14: 14-Bit, 2.5Msps ADC
LTC2314-14: 14-Bit, 4.5Msps ADC
LTC2315-12: 12-Bit, 5Msps ADC

The DUTs typically draw only TBDmA from a single 5V supply. The automatic nap and sleep modes benefit power sensitive applications. 

The DUTs DC performance is outstanding with a +/-2LSB INL specification and 
no missing codes over temperature. The signal-to-noise ratio (SNR) for the DUT is typically TBDdB, with the internal reference. 

Example Code:

Read ADC input.

    LTC2315_read(LTC2315_CS, &adc_code);   // Throws out last reading
    LTC2315_read(LTC2315_CS, &adc_code);   // Obtains the current reading and stores to adc_code variable

    // Convert adc_code to voltage
    adc_voltage = LTC2315_code_to_voltage(adc_code, vref);

@endverbatim

http://www.linear.com/product/LTC2312-12
http://www.linear.com/product/LTC2312-14
http://www.linear.com/product/LTC2313-12
http://www.linear.com/product/LTC2313-14
http://www.linear.com/product/LTC2314-14
http://www.linear.com/product/LTC2315-12

http://www.linear.com/product/LTC2312-12#demoboards
http://www.linear.com/product/LTC2312-14#demoboards
http://www.linear.com/product/LTC2313-12#demoboards
http://www.linear.com/product/LTC2313-14#demoboards
http://www.linear.com/product/LTC2314-14#demoboards
http://www.linear.com/product/LTC2315-12#demoboards

REVISION HISTORY
$Revision: 1807 $
$Date: 2013-07-29 13:06:06 -0700 (Mon, 29 Jul 2013) $

Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.

The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community.  Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/

/*! @file
    @ingroup LTC2315
    Header for LTC2315: 12/14-bit 1Msps ADC
*/

#ifndef LTC2315_H
#define LTC2315_H

#include <SPI.h>

//! Define the SPI CS pin
#ifndef LTC2315_CS
#define LTC2315_CS QUIKEVAL_CS
#endif

//! @name LTC2315 Channel Address
//! @{
// Channel Address
#define LTC2315_ADDRESS             0x00
//!@}


//! Reads the LTC2315 and returns 32-bit data in offset binary format
//! @return void
void LTC2315_read(uint8_t cs,           //!< Chip Select Pin 
                  uint16_t *ptr_adc_code    //!< Returns code read from ADC (from previous conversion)
                 );


//! Calculates the LTC2315 input voltage given the binary data and lsb weight.
//! @return Floating point voltage
float LTC2315_code_to_voltage(uint16_t adc_code,                   //!< Raw ADC code 
							  uint8_t shift,
								float vref							//!< Reference voltage
								);

#endif  //  LTC2315_H


Download LTC2315 - Linduino.CPP File

/*!
LTC2312-12: 12-Bit, 500Ksps ADC.
LTC2312-14: 14-Bit, 500Ksps ADC.
LTC2313-12: 12-Bit, 2.5Msps ADC
LTC2313-14: 14-Bit, 2.5Msps ADC
LTC2314-14: 14-Bit, 4.5Msps ADC
LTC2315-12: 12-Bit, 5Msps ADC

@verbatim

The following parts (DUT) are pin-compatible, 12/14-bit A/D converters with serial I/O, and an internal reference:
LTC2312-12: 12-Bit, 500Ksps ADC.
LTC2312-14: 14-Bit, 500Ksps ADC.
LTC2313-12: 12-Bit, 2.5Msps ADC
LTC2313-14: 14-Bit, 2.5Msps ADC
LTC2314-14: 14-Bit, 4.5Msps ADC
LTC2315-12: 12-Bit, 5Msps ADC

The DUTs typically draw only TBDmA from a single 5V supply. The automatic nap and sleep modes benefit power sensitive applications. 

The DUTs DC performance is outstanding with a +/-2LSB INL specification and 
no missing codes over temperature. The signal-to-noise ratio (SNR) for the DUT is typically TBDdB, with the internal reference. 

@endverbatim

http://www.linear.com/product/LTC2312-12
http://www.linear.com/product/LTC2312-14
http://www.linear.com/product/LTC2313-12
http://www.linear.com/product/LTC2313-14
http://www.linear.com/product/LTC2314-14
http://www.linear.com/product/LTC2315-12

http://www.linear.com/product/LTC2312-12#demoboards
http://www.linear.com/product/LTC2312-14#demoboards
http://www.linear.com/product/LTC2313-12#demoboards
http://www.linear.com/product/LTC2313-14#demoboards
http://www.linear.com/product/LTC2314-14#demoboards
http://www.linear.com/product/LTC2315-12#demoboards

REVISION HISTORY
$Revision: 1785 $
$Date: 2013-07-25 08:47:24 -0700 (Thu, 25 Jul 2013) $

Copyright (c) 2013, Linear Technology Corp.(LTC)
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.

The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community.  Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/

//! @defgroup LTC2315 LTC2315: 12/14-Bit 1Msps ADC

/*! @file
    @ingroup LTC2315
    Library for LTC2315: 12/14-Bit 1Msps ADC
*/

#include <Arduino.h>
#include <stdint.h>
#include "Linduino.h"
#include "LT_SPI.h"
#include "LTC2315.h"
#include <SPI.h>


// Reads the ADC  and returns 16-bit data
void LTC2315_read(uint8_t cs, uint16_t *adc_code)
{
  uint16_t dummy_command = 0;

  spi_transfer_word(cs, dummy_command, adc_code);
}


// Calculates the voltage corresponding to an adc code in offset binary, given the reference voltage (in volts)
float LTC2315_code_to_voltage(uint16_t adc_code, uint8_t shift, float vref)
{
  float voltage;

  adc_code = adc_code << shift;  //the data is left justified to bit_14 of a 16 bit word

  voltage = (float)adc_code;	
  voltage = voltage / (pow(2,16)-1);    //! 2) This calculates the input as a fraction of the reference voltage (dimensionless)
  voltage = voltage * vref;           //! 3) Multiply fraction by Vref to get the actual voltage at the input (in volts)

  return(voltage);
}

Technical Support