8 Bit Serial Adc
3 1477K–AVR–08/10 ATtiny26 L Description The ATtiny26 L is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture.
The LTC2497 is a 16-channel eight differential, 16-bit, No Latency ΔΣ ADC with Easy Drive technology and a 2-wire, I2C interface.
ADC-INPUT-CALC assists in design of ADC input interface circuits. This KnowledgeBase Javascript tool facilitates selection of 24 different buffer op amp circuits for.
2586Q–AVR–08/2013 Features High Performance, Low Power AVR 8-Bit Microcontroller Advanced RISC Architecture – 120 Powerful Instructions – Most.
Part Number
Replacement
Explanation
Description
The MAX1117/MAX1118/MAX1119 low-power, 8-bit, dual-channel, analog-to-digital converters ADCs feature an internal track/hold T/H voltage reference MAX1117/MAX1119, clock, and serial interface. The MAX1118 is specified from 2.7V to 5.5V and consumes only 135µA at 100ksps. The MAX1117 is specified from 2.7V to 3.6V, and the MAX1119 is specified from 4.5V to 5.5V, each consumes only 175µA at 100ksps.
The full-scale analog input range is determined by the internal reference of 2.048V MAX1117 or 4.096V MAX1119, or by an externally applied reference ranging from 1V to VDD MAX1118. All devices feature an automatic shutdown mode that reduces supply current to
The MAX1117/MAX1118/MAX1119 are available in an 8-pin SOT23 package with a footprint that is only 11 of an 8-pin plastic DIP.
Key Features
Single Supply
2.7V to 3.6V MAX1117
2.7V to 5.5V MAX1118
4.5V to 5.5V MAX1119
Internal Track/Hold: 100kHz Sampling Rate
Internal Reference
2.048V MAX1117
4.096V MAX1119
Reference Input Range: 0 to VDD MAX1118
SPI/QSPI/MICROWIRE-Compatible Serial Interface
Small 8-Pin SOT23 Package
Automatic Power-Down
Analog Input Range: 0 to VREF
Low Power
175µA at 100ksps typ MAX1117/MAX1119
135µA at 100ksps typ MAX1118
18µA at 10ksps typ
1µA typ in Power-Down Mode
Applications/Uses
4mA to 20mA Powered Remote Data Acquisition SystemsBattery-Powered Test EquipmentLow-Power, Handheld Portable DevicesReceive Signal Strength IndicatorsSolar-Powered Remote SystemsSystem Diagnostics
Part Number Resolution
bits Input Chan. Conv. Rate
ksps ADC Architecture Data Bus Diff/S.E. Input Internal VREF
V External VREF
V Unipolar VIN
V SNR
dB THD
dB INL
LSB Package/Pins Budgetary
Price ADC max nominal min max max See Notes MAX1117 8 2 100 SAR SPI S.E. Only 2.048 - - 2.048 48 -69 1 1.04 1k MAX1118 - 1 5.5 5.5 48 0.81 1k MAX1119 4.096 - - 4.096 49 1.04 1k See All Precision ADCs 5Msps 468 Pricing Notes: This pricing is BUDGETARY, for comparing similar parts. Prices are in U.S. dollars and subject to change. Quantity pricing may vary substantially and international prices may differ due to local duties, taxes, fees, and exchange rates. For volume-specific and version-specific prices and delivery, please see the price and availability page or contact an authorized distributor.
LTC2497 - 16-Bit 8-/16-Channel Delta Sigma ADC with Easy Drive Input Current Cancellation and I2C Interface
Adafruit Industries, Unique fun DIY electronics and kits MCP3008 - 8-Channel 10-Bit ADC With SPI Interface ID: 856 - Need to add analog inputs. This chip will add 8.
/.
LTC24XX General Library: Functions and defines for all SINC4 Delta Sigma ADCs.
verbatim
These functions and defines apply to all No Latency Delta Sigmas in the
LTC2480 EasyDrive family, LTC2410 differential family, LTC2400 single-ended family,
and the LTC2440 High Speed family with selectable speed / resolution.
It does not cover the LTC2450 tiny, low cost delta sigma ADC famliy.
Please refer to the No Latency Delta Sigma ADC selector guide available at:
endverbatim
demoboards
REVISION HISTORY
Revision: 1807
Date: 2013-07-29 :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 and
and consider a purchase that will help fund their
ongoing work.
/
//. defgroup LTC24XX LTC24XX: All no-latency delta sigma ADCs with SINC4 rejection
/. file
ingroup LTC24XX
Library for LTC24XX no-latency delta sigma ADCs with SINC4 rejection
include
include Linduino.h
include LT_SPI.h
include LT_I2C.h
include LTC24XX_general.h
int8_t LTC24XX_EOC_timeout uint8_t cs, uint16_t miso_timeout
// Checks for EOC with a specified timeout ms
uint16_t timer_count 0; // Timer count for MISO
output_low cs ; //. 1 Pull CS low
while 1 //. 2 Wait for SDO MISO to go low
if input MISO 0 break; //. 3 If SDO is low, break loop
if timer_count miso_timeout // If timeout, return 1 failure
output_high cs ; // Pull CS high
return 1 ;
else
delay 1 ;
return 0 ;
// Reads from LTC24XX ADC that has no configuration word and a 32 bit output word.
void LTC24XX_SPI_32bit_data uint8_t cs, int32_t adc_code
LT_union_int32_4bytes data, command; // LTC2449 data and command
command.LT_uint32 0; // Set to zero, not necessary but avoids
// random data in scope shots.
spi_transfer_block cs, command.LT_byte, data.LT_byte, uint8_t 4 ; //. 2 Transfer arrays
output_high cs ; //. 3 Pull CS high
adc_code data.LT_int32;
// Reads from a SPI LTC24XX device that has an 8 bit command and a 32 bit output word.
void LTC24XX_SPI_8bit_command_32bit_data uint8_t cs, uint8_t adc_command, int32_t adc_code
command.LT_byte 3 adc_command;
command.LT_byte 2 0;
command.LT_byte 1 0;
command.LT_byte 0 0;
spi_transfer_block cs, command.LT_byte, data.LT_byte, uint8_t 4 ; //. 2 Transfer arrays
// Reads from a SPI LTC24XX device that has a 16 bit command and a 32 bit output word.
void LTC24XX_SPI_16bit_command_32bit_data uint8_t cs, uint8_t adc_command_high, uint8_t adc_command_low, int32_t adc_code
LT_union_int32_4bytes data, command; // LTC24XX data and command
command.LT_byte 3 adc_command_high;
command.LT_byte 2 adc_command_low;
//. Reads from LTC24XX two channel Ping-Pong ADC, placing the channel information in the adc_channel parameter
//. and returning the 32 bit result with the channel bit cleared so the data format matches the rest of the family
//. return void
void LTC24XX_SPI_2ch_ping_pong_32bit_data uint8_t cs, uint8_t adc_channel, int32_t code
LT_union_int32_4bytes data, command; // ADC data
command.LT_int32 0x00000000; // This is a don t care
spi_transfer_block cs, command.LT_byte, data.LT_byte, uint8_t 4 ;
if data.LT_byte 3 0x40 // Obtains Channel Number
adc_channel 1;
adc_channel 0;
data.LT_byte 3 0x3F; // Clear channel bit here so code to voltage function doesn t have to.
code data.LT_int32; // Return data
//. Reads from LTC24XX ADC that has no configuration word and returns a 32 bit result.
void LTC24XX_SPI_24bit_data uint8_t cs, int32_t adc_code
command.LT_int32 0;
spi_transfer_block cs, command.LT_byte, data.LT_byte, uint8_t 3 ; //. 2 Transfer arrays
data.LT_byte 3 data.LT_byte 2 ; // Shift bytes up by one. We read out 24 bits,
data.LT_byte 2 data.LT_byte 1 ; // which are loaded into bytes 2,1,0. Need to left-
data.LT_byte 1 data.LT_byte 0 ; // justify.
data.LT_byte 0 0x00;
//. Reads from LTC24XX ADC that accepts an 8 bit configuration and returns a 24 bit output word.
void LTC24XX_SPI_8bit_command_24bit_data uint8_t cs, uint8_t adc_command, int32_t adc_code
command.LT_byte 2 adc_command;
//. Reads from LTC24XX ADC that accepts a 16 bit configuration and returns a 24 bit output word.
void LTC24XX_SPI_16bit_command_24bit_data uint8_t cs, uint8_t adc_command_high, uint8_t adc_command_low, int32_t adc_code
command.LT_byte 2 adc_command_high;
command.LT_byte 1 adc_command_low;
//. and returning the 24 bit result with the channel bit cleared so the data format matches the rest of the family
void LTC24XX_SPI_2ch_ping_pong_24bit_data uint8_t cs, uint8_t adc_channel, int32_t code
spi_transfer_block cs, command.LT_byte, data.LT_byte, uint8_t 3 ;
//I2C functions
//. Reads from LTC24XX ADC that accepts an 8 bit configuration and returns a 24 bit result.
//. return Returns the state of the acknowledge bit after the I2C address write. 0 acknowledge, 1 no acknowledge.
int8_t LTC24XX_I2C_8bit_command_24bit_data uint8_t i2c_address, uint8_t adc_command, int32_t adc_code, uint16_t eoc_timeout
int8_t ack;
uint16_t timer_count 0; // Timer count to wait for ACK
int8_t buf 4 ;
LT_union_int32_4bytes data; // LTC24XX data
while 1
ack i2c_read_block_data i2c_address, adc_command, 3, data.LT_byte ;
if. ack break; //. ack indicates success
if timer_count eoc_timeout // If timeout, return 1 failure
data.LT_uint32 2; // Shifts data 2 bits to the right; operating on unsigned member shifts in zeros.
data.LT_byte 3 data.LT_byte 3 0x3F; // Clear upper 2 bits JUST IN CASE. Now the data format matches the SPI parts.
return ack ; // Success
//. Data is formatted to match the SPI devices, with the MSB in the bit 28 position.
int8_t LTC24XX_I2C_32bit_data uint8_t i2c_address, //.eoc_timeout // If timeout, return 1 failure
//. Reads from LTC24XX ADC that accepts an 8 bit configuration and returns a 32 bit result.
int8_t LTC24XX_I2C_8bit_command_32bit_data uint8_t i2c_address, uint8_t adc_command, int32_t adc_code, uint16_t eoc_timeout
ack i2c_read_block_data i2c_address, adc_command, 4, data.LT_byte ;
//. Reads from LTC24XX ADC that accepts a 16 bit configuration and returns a 32 bit result.
int8_t LTC24XX_I2C_16bit_command_32bit_data uint8_t i2c_address,uint8_t adc_command_high,
uint8_t adc_command_low,int32_t adc_code,uint16_t eoc_timeout
uint16_t adc_command, timer_count 0; // Timer count to wait for ACK
adc_command adc_command_high eoc_timeout // If timeout, return 1 failure
// Calculates the voltage corresponding to an adc code, given the reference voltage in volts
float LTC24XX_SE_code_to_voltage int32_t adc_code, float vref
float voltage;
adc_code - 0x20000000; //. 1 Subtract offset
voltage float adc_code;
voltage voltage / 268435456.0; //. 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 ;
// This function handles all differential input parts, including the single-ended mode on multichannel
// differential parts. Data from I2C parts must be right-shifted by two bit positions such that the MSB
// is in bit 28 the same as the SPI parts.
float LTC24XX_diff_code_to_voltage int32_t adc_code, float vref
ifndef SKIP_EZDRIVE_2X_ZERO_CHECK
if adc_code 0x00000000
adc_code 0x20000000;
endif
adc_code - 0x20000000; //. 1 Converts offset binary to binary
voltage voltage / 536870912.0; //. 2 This calculates the input as a fraction of the reference voltage dimensionless
// Calculates the voltage corresponding to an adc code, given lsb weight in volts and the calibrated
// adc offset code zero code that is subtracted from adc_code. For use with the LTC24XX_cal_voltage function.
float LTC24XX_diff_code_to_calibrated_voltage int32_t adc_code, float LTC2449_lsb, int32_t LTC2449_offset_code
float adc_voltage;
endif
adc_code - 536870912; //. 1 Converts offset binary to binary
adc_voltage float adc_code LTC2449_offset_code LTC2449_lsb; //. 2 Calculate voltage from ADC code, lsb, offset.
return adc_voltage ;
// Calculate the lsb weight and offset code given a full-scale code and a measured zero-code.
void LTC24XX_calibrate_voltage int32_t zero_code, int32_t fs_code, float zero_voltage, float fs_voltage, float LTC24XX_lsb, int32_t LTC24XX_offset_code
zero_code - 536870912; //. 1 Converts zero code from offset binary to binary
fs_code - 536870912; //. 2 Converts full scale code from offset binary to binary
float temp_offset;
LTC24XX_lsb fs_voltage-zero_voltage / float fs_code - zero_code ; //. 3 Calculate the LSB
temp_offset zero_voltage/ LTC24XX_lsb - zero_code; //. 4 Calculate Unipolar offset
temp_offset temp_offset floor temp_offset 0.5 . ceil temp_offset : floor temp_offset ; //. 5 Round
LTC24XX_offset_code int32_t temp_offset; //. 6 Cast as int32_t.
The LTC2309 is a low noise, low power, 8-channel, 12-bit successive approximation ADC with an I2C compatible serial interface.
MAX1118
Relay Interface - Analog to Digital for connection to USB, RS-232 or RS-485, Computer Controlled Relays, Control System Interface, Data Acquisition and Control.
AD7894 –6– REV. 0 CONVERTER DETAILS The AD7894 is a fast, 14-bit single supply A/D converter. It provides the user with signal scaling, track/hold, A/D converter.
ADC12J4000 www.ti.com SLAS989C –JANUARY 2014–REVISED JULY 2015 7.6.1.3 General Analog, Bias, Band Gap, and Track and Hold 0x020 to 0x02F Table 49.