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.

8 bit serial adc

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.

8 bit serial adc 8 bit serial adc

/.

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.