LTC2378-20 - 20-Bit, 1Msps, Low Power SAR ADC with 0.5ppm INL
Features
- 1Msps Throughput Rate
- ±0.5ppm INL (Typ)
- Guaranteed 20-Bit No Missing Codes
- Low Power: 21mW at 1Msps, 21μW at 1ksps
- 104dB SNR (Typ) at fIN = 2kHz
- –125dB THD (Typ) at fIN = 2kHz
- Digital Gain Compression (DGC)
- Guaranteed Operation to 85°C
- 2.5V Supply
- Fully Differential Input Range ±VREF
- VREF Input Range from 2.5V to 5.1V
- No Pipeline Delay, No Cycle Latency
- 1.8V to 5V I/O Voltages
- SPI-Compatible Serial I/O with Daisy-Chain Mode
- Internal Conversion Clock
- 16-Lead MSOP and 4mm × 3mm DFN Packages
Typical Application
Description
The LTC®2378-20 is a low noise, low power, high speed 20-bit successive approximation register (SAR) ADC. Operating from a 2.5V supply, the LTC2378-20 has a ±VREF fully differential input range with VREF ranging from 2.5V to 5.1V. The LTC2378-20 consumes only 21mW and achieves ±2ppm INL maximum, no missing codes at 20 bits with 104dB SNR.
The LTC2378-20 has a high speed SPI-compatible serial interface that supports 1.8V, 2.5V, 3.3V and 5V logic while also featuring a daisy-chain mode. The fast 1Msps throughput with no cycle latency makes the LTC2378-20 ideally suited for a wide variety of high speed applications. An internal oscillator sets the conversion time, easing external timing considerations. The LTC2378-20 automatically powers down between conversions, leading to reduced power dissipation that scales with the sampling rate.
The LTC2378-20 features a unique digital gain compression (DGC) function, which eliminates the driver amplifier’s negative supply while preserving the full resolution of the ADC. When enabled, the ADC performs a digital scaling function that maps zero-scale code from 0V to 0.1 • VREF and full-scale code from VREF to 0.9 • VREF. For a typical reference voltage of 5V, the full-scale input range is now 0.5V to 4.5V, which provides adequate headroom for powering the driving amplifier from a single 5.5V supply.
Packaging
CAD Symbols and Footprints: The downloadable Zip file below contains the schematic symbol and PCB footprints.
For complete and up to date package information and drawings, please refer to our packaging page
| Part Number | Package | Code | Temp | Package Drawing |
RoHS |
|---|---|---|---|---|---|
| LTC2378CDE-20#PBF | 4x3 DFN-16 | DE | C | 05-08-1732 | Yes |
| LTC2378CDE-20#TRPBF | 4x3 DFN-16 | DE | C | 05-08-1732 | Yes |
| LTC2378CMS-20#PBF | MS-16 | MS | C | 05-08-1669 | Yes |
| LTC2378CMS-20#TRPBF | MS-16 | MS | C | 05-08-1669 | Yes |
| LTC2378IDE-20#PBF | 4x3 DFN-16 | DE | I | 05-08-1732 | Yes |
| LTC2378IDE-20#TRPBF | 4x3 DFN-16 | DE | I | 05-08-1732 | Yes |
| LTC2378IMS-20#PBF | MS-16 | MS | I | 05-08-1669 | Yes |
| LTC2378IMS-20#TRPBF | MS-16 | MS | I | 05-08-1669 | Yes |
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 | |
|---|---|---|---|---|---|---|
| LTC2378CDE-20#PBF | 4x3 DFN-16 | C | $42.14 | $29.50 | Yes | |
| LTC2378CDE-20#TRPBF | 4x3 DFN-16 | C | $29.56 | Yes | ||
| LTC2378CMS-20#PBF | MS-16 | C | $42.14 | $29.50 | Yes | |
| LTC2378CMS-20#TRPBF | MS-16 | C | $29.56 | Yes | ||
| LTC2378IDE-20#PBF | 4x3 DFN-16 | I | $48.46 | $33.93 | Yes | |
| LTC2378IDE-20#TRPBF | 4x3 DFN-16 | I | $33.99 | Yes | ||
| LTC2378IMS-20#PBF | MS-16 | I | $48.46 | $33.93 | Yes | |
| LTC2378IMS-20#TRPBF | MS-16 | I | $33.99 | Yes | ||
| Buy Now • Request Samples | ||||||
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 |
|---|---|---|---|
| DC1925A-A | LTC2378-20 Demo Board | 20-Bit, 1Msps, SAR ADC with 104dB SNR. Req DC2026 | $200.00 | |
| DC2135A | LTC2378-20 and LT1468 Demo | Converts ±10V Single-Ended Signal with 2ppm Linearity (req. DC590 or DC890) | $200.00 | |
| Buy Now | |||
Companion Boards
| Part Number | Description | Price | Documentation |
|---|---|---|---|
| DC2026C | Linduino One Isolated USB Demo Board: An Arduino- and QuikEval-Compatible Code Development Platform | $75.00 | |
| DC890B | USB Data Acquisition Controller, for PScope Evaluation Kits (up to 250Mbps, CMOS/LVDS) | $300.00 | |
| DC590B | Isolated USB Serial Controller for Linear Technology QuikEval-Compatible Demo Boards | $50.00 | |
| Buy Now | |||
Applications
- Medical Imaging
- High Speed Data Acquisition
- Portable or Compact Instrumentation
- Industrial Process Control
- Low Power Battery-Operated Instrumentation
- ATE
People Who Viewed This Product Also Viewed
- LTC6655 - 0.25ppm Noise, Low Drift Precision References
- LT5400 - Quad Matched Resistor Network
- LTC6362 - Precision, Low Power Rail-to-Rail Input/Output Differential Op Amp/SAR ADC Driver
- LTC2440 - 24-Bit High Speed Differential Delta Sigma ADC with Selectable Speed/Resolution
- LT1028 - Ultra Low Noise Precision High Speed Op Amps
- LTC2057/LTC2057HV - High Voltage, Low Noise Zero-Drift Operational Amplifier
- LT4320/LT4320-1 - Ideal Diode Bridge Controller
- LTC2380-24 - 24-Bit, 1.5Msps/2Msps, Low Power SAR ADC with Integrated Digital Filter
- LT3080 - Adjustable 1.1A Single Resistor Low Dropout Regulator
- LT6654 - Precision Wide Supply High Output Drive Low Noise Reference
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
LTspice
LTspice® software is a powerful, fast and free simulation tool, schematic capture and waveform viewer with enhancements and models for improving the simulation of switching regulators. Click here to download LTspice
To launch a ready to run LTspice demonstration circuit for this part:
- Step 1: If you have not installed LTspice on this computer, download and install LTspice
- Step 2: Once LTspice is installed, click on the link(s) below to launch the simulation
- Step 3: If LTspice does not automatically open after clicking the link above, you can instead run the simulation by right clicking on the link and selecting "Save Target As." After saving the file to your computer, start LTspice and open the demonstration circuit by selecting 'Open' from the 'File' menu
To explore other ready to run LTspice demonstration circuits, please visit our Demo Circuits Collection.
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.
LinearLabTools
LinearLabTools is a collection of Matlab and Python programs that provide direct access to Linear Technology’s data converter evaluation boards. An evaluation board for a data converter will typically plug into an accompanying controller board, which is then connected to a host computer running a Linear supplied GUI program such as PScope for Analog-to-Digital converters or LTDACgen for Digital-to-Analog converters. The GUI allows basic performance measurements to be made, but it is not designed to run arbitrary sequences of tests or communicate with other hardware, as is often required by customers when evaluating a part for their own application. LinearLabTools allows customers to control Linear’s data converter demo boards as they would any other piece of test equipment, using their own software.
The LinearLabTools package also contains various application examples, simulations, and educational programs that demonstrate mixed signal concepts.
Click here for more information and to download the software
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 Code Supported: There is example code available for this part. The code below may rely on other drivers available in the full library.
Download LTC2378 - DC1925A Linduino .INO File
/*!
Linear Technology DC1925A Demonstration Board with SPI interface.
LTC2376-20: 20-Bit, 250Ksps ADC
LTC2377-20: 20-Bit, 500Ksps ADC
LTC2378-20: 20-Bit, 1Msps ADC
Max SCK rate is 100MHz.
@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/LTC2376-20
http://www.linear.com/product/LTC2377-20
http://www.linear.com/product/LTC2378-20
http://www.linear.com/product/LTC2376-20#demoboards
http://www.linear.com/product/LTC2377-20#demoboards
http://www.linear.com/product/LTC2378-20#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 LTC2378
*/
#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 "LTC2378.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_gain_compression();
// Global variables
static uint8_t LTC2378_dgc = 0; //!< Default set for no gain compression
static uint8_t LTC2378_bits = 20; //!< Default set for 20 bits
float LTC2378_vref = 5;
//! Initialize Linduino
void setup()
{
// 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_gain_compression();
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;
int32_t adc_code; // The LTC2378 code
int32_t display_code;
float adc_voltage;
// Read and display a selected channel
LTC2378_read(LTC2378_CS, &adc_code); //discard first reading
delay(100);
LTC2378_read(LTC2378_CS, &adc_code);
display_code = adc_code >> (32 - LTC2378_bits); //shift to the right
display_code = display_code & 0xFFFFF; //mask off 20 bits
Serial.print(F(" Received Code: b"));
Serial.println(display_code, BIN);
adc_voltage = LTC2378_code_to_voltage(adc_code, LTC2378_dgc, LTC2378_vref); // Convert the received code to voltage
Serial.print(F(" Equivalent voltage: "));
Serial.print(adc_voltage, 4);
Serial.println(F("V"));
}
//! Select gain compression
//! @return void
void menu_2_select_gain_compression()
{
uint8_t user_command;
Serial.println(F(" 0 = No Gain Compression"));
Serial.println(F(" 1 = Gain Compression"));
Serial.print(F(" Enter a Command, based upon the position of jumper JP6: "));
user_command = read_int(); // Read user input
Serial.println(user_command); // Prints the user command to com port
switch (user_command)
{
case 0:
Serial.println(F(" No Gain compression"));
LTC2378_dgc = 0;
break;
case 1:
Serial.println(F(" Gain compression"));
LTC2378_dgc = 1;
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("* DC1925A 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("* LTC2376-20 *"));
Serial.println(F("* LTC2377-20 *"));
Serial.println(F("* LTC2378-20 *"));
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 No Gain Compression / Gain Compression (default is no compression)"));
Serial.print(F("Enter a command:"));
}
Download LTC2378 Linduino Header File
/*!
LTC2376-20: 20-Bit, 250Ksps ADC
LTC2377-20: 20-Bit, 500Ksps ADC
LTC2378-20: 20-Bit, 1Msps ADC
@verbatim
The following parts (DUT) are pin-compatible, 20-bit A/D converters with serial I/O, and an internal reference:
LTC2376-20: 20-Bit, 250Ksps ADC
LTC2377-20: 20-Bit, 500Ksps ADC
LTC2378-20: 20-Bit, 1Msps ADC
The DUTs typically draw only 8.4 mA from a single 2.5V supply. The automatic nap and sleep modes benefit power sensitive applications.
The DUTs DC performance is outstanding with a +/-0.5 ppm INL specification and
no missing codes over temperature. The signal-to-noise ratio (SNR) for the LTC2378 is typically 104 dB, with the internal reference.
Example Code:
Read ADC input.
LTC2378_read(LTC2378_CS, &adc_code); // Throws out last reading
LTC2378_read(LTC2378_CS, &adc_code); // Obtains the current reading and stores to adc_code variable
// Convert adc_code to voltage
adc_voltage = LTC2378_code_to_voltage(adc_code, vref);
@endverbatim
http://www.linear.com/product/LTC2376-20
http://www.linear.com/product/LTC2377-20
http://www.linear.com/product/LTC2378-20
http://www.linear.com/product/LTC2376-20#demoboards
http://www.linear.com/product/LTC2377-20#demoboards
http://www.linear.com/product/LTC2378-20#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 LTC2378_
Header for LTC2378: 16/18/20-bit 1Msps ADC
*/
#ifndef LTC2378_H
#define LTC2378_H
#include <SPI.h>
//! Define the SPI CS pin
#ifndef LTC2378_CS
#define LTC2378_CS QUIKEVAL_CS
#endif
//! @name LTC2378 Channel Address
//! @{
// Channel Address
#define LTC2378_ADDRESS 0x00
//!@}
//! Reads the LTC2378 and returns 32-bit data in 2's complement format
//! @return void
void LTC2378_read(uint8_t cs, //!< Chip Select Pin
int32_t *ptr_adc_code //!< Returns code read from ADC (from previous conversion)
);
//! Calculates the LTC2378 input voltage given the binary data and lsb weight.
//! @return Floating point voltage
float LTC2378_code_to_voltage(int32_t adc_code, //!< Raw ADC code
uint8_t gain_compression,
float vref //!< Reference voltage
);
#endif // LTC2378_H
Download LTC2378-20 Linduino Header File
/*!
LTC2378_20: 20-bit 1Msps ADC
@verbatim
The LTC2378_20 are pin-compatible, 20-bit A/D converters
with serial I/O, and an internal reference. The ADCs typically draw only TBDmA
from a single 5V supply. The automatic nap and sleep modes benefit power sensitive applications.
The LTC2378_20's DC performance is outstanding with a +/-TBDLSB INL specification and
no missing codes over temperature. The signal-to-noise ratio (SNR) for the LTC2378_20 is typically TBDdB, with the internal reference.
Example Code:
Read ADC input.
adc_command = LTC2378_20_CH0 | LTC2378_20_UNIPOLAR_MODE | LTC2378_20_LOW_GAIN_MODE | LTC2378_20_NORMAL_MODE; // Single-ended, CH0, unipolar, low gain, normal mode.
LTC2378_20_read(LTC2378_20_CS, adc_command, &adc_code); // Throws out last reading
LTC2378_20_read(LTC2378_20_CS, adc_command, &adc_code); // Obtains the current reading and stores to adc_code variable
// Convert adc_code to voltage
adc_voltage = LTC2378_20_unipolar_code_to_voltage(adc_code, LTC2378_20_lsb, LTC2378_20_offset_unipolar_code);
@endverbatim
http://www.linear.com/product/LTC2378_20
http://www.linear.com/product/LTC2378_20#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 LTC2378_20
Header for LTC2378_20: 20-bit 1Msps ADC
*/
#ifndef LTC2378_20_H
#define LTC2378_20_H
#include <SPI.h>
//! Define the SPI CS pin
#ifndef LTC2378_CS
#define LTC2378_CS QUIKEVAL_CS
#endif
//! @name LTC2378_20 Channel Address
//! @{
// Channel Address
#define LTC2378_ADDRESS 0x00
//!@}
//! Reads the ADC and returns 18-bit data
//! @return void
void LTC2378_20_read(uint8_t cs, //!< Chip Select Pin
uint16_t adc_command, //!< Channel address, config bits ORed together
uint32_t *ptr_adc_code //!< Returns code read from ADC (from previous conversion)
);
//! Calculates the LTC2378_20 input voltage given the binary data and lsb weight.
//! @return Floating point voltage
float LTC2378_20_code_to_voltage(uint32_t adc_code, //!< Raw ADC code
float LTC2378_20_lsb, //!< LSB value (volts)
int32_t LTC2378_20_offset_code //!< Offset code
);
//! Calibrate the offset and LSB voltage given two measured offset codes, and a full-scale voltage with the corresponding code.
//! @return Void
void LTC2378_20_cal_offset(uint32_t zero_code, //!< Code from a zero reading
uint32_t fs_code, //!< full-scale code
float zero_voltage, //!< Measured zero voltage
float fs_voltage, //!< Measured full-scale voltage
float *LTC2378_20_lsb, //!< Return LSB value (volts)
int32_t *LTC2378_20_offset_code //!< Return Unipolar Offset code, in floating point
);
#endif // LTC2378_20_H
Technical Support
- For immediate technical assistance, contact your local sales office or distributor or call 1-800-4-LINEAR (US customers only) or 408-432-1900.
- For less urgent requests, please complete our Technical Support Request Form. Please allow 2-3 business days for reply.
