![]() |
Linduino
1.3.0
Linear Technology Arduino-Compatible Demonstration Board
|
LTC2484: 24-Bit Delta Sigma ADC with Easy Drive Input Current Cancellation. More...
LTC2484: 24-Bit Delta Sigma ADC with Easy Drive Input Current Cancellation.
The LTC2484 combines a 24-bit no latency delta-sigma analog-to-digital converter with patented Easy Drive technology. The patented sampling scheme eliminates dynamic input current errors and the shortcomings of on-chip buffering through automatic cancellation of differential input current. This allows large external source impedances and input signals with rail-to-rail input range to be directly digitized while maintaining exceptional DC accuracy. The LTC2484 includes an on-chip oscillator. The LTC2484 can be configured to reject line frequencies. 50Hz, 60Hz or simultaneous 50Hz/60Hz line frequency rejection can be selected as well as a 2x speed-up mode. The LTC2484 allows a wide common mode input range (0V to VCC) independent of the reference voltage. The reference can be as low as 100mV or can be tied directly to VCC. The LTC2484 includes an on-chip trimmed oscillator, eliminating the need for external crystals or oscillators. Absolute accuracy and low drift are automatically maintained through continuous, transparent, offset and full-scale calibration. SPI DATA FORMAT (MSB First): Byte #1 Byte #2 Byte #3 Byte #4 Data Out : !EOC DMY SIG D23 D22 D21 D20 D19 D18 D17 D16 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 X X X X X Data In : EN X X X IM FOA FOB SPD X X X X X X X X X X X X X X X X X X X X X X X X !EOC : End of Conversion Bit (Active Low) DMY : Dummy Bit (Always 0) SIG : Sign Bit (1-data positive, 0-data negative) Dx : Data Bits EN : Enable Bit (0-keep previous mode, 1-change mode) IM : Internal Mode Bit (0-ADC input, 1-temperature sensor input) FoA : Line Frequency Rejection Select Bit A FoB : Line Frequency Rejection Select Bit B SPD : Double Output Rate Select Bit (0-normal rate, auto-calibration on, 2x rate, auto_calibration off) X : Don't Care Command Byte EN IM FoA FoB SPD Comments 0 X X X X Keep Previous Mode 1 0 0 0 0 External Input, 50Hz and 60Hz Rejection, Autocalibration 1 0 0 1 0 External Input, 50Hz Rejection, Autocalibration 1 0 1 0 0 External Input, 60Hz Rejection, Autocalibration 1 0 0 0 1 External Input, 50Hz and 60Hz Rejection, 2x Speed 1 0 0 1 1 External Input, 50Hz Rejection, 2x Speed 1 0 1 0 1 External Input, 60Hz Rejection, 2x Speed 1 1 0 0 X Temperature Input, 50Hz and 60Hz Rejection, Autocalibration 1 1 0 1 X Temperature Input, 50Hz Rejection, Autocalibration 1 1 1 0 X Temperature Input, 60Hz Rejection, Autocalibration 1 X 1 1 X Reserved, Do Not Use Example Code: Read the ADC voltage with 60Hz rejection uint16_t miso_timeout = 1000; // Build ADC command to read the ADC voltage adc_command = LTC2484_ENABLE; adc_command |= LTC2484_EXTERNAL_INPUT; adc_command |= LTC2484_AUTO_CALIBRATION; adc_command |= LTC2484_REJECTION_60HZ; if(LTC2484_EOC_timeout(LTC2484_CS, miso_timeout)) // Check for EOC return(1); LTC2484_read(LTC2484_CS, adc_command, &adc_code); // Throw away last reading if(LTC2484_EOC_timeout(LTC2484_CS, miso_timeout)) // Check for EOC return(1); LTC2484_read(LTC2484_CS, adc_command, &adc_code); // Obtains the current reading and stores to adc_code variable // Convert adc_code to voltage adc_voltage = LTC2484_code_to_voltage(adc_code, LTC2484_lsb, LTC2484_offset_code); Read temperature uint16_t miso_timeout = 1000; // Build ADC command to read temperature adc_command = LTC2484_ENABLE; adc_command |= LTC2484_TEMPERATURE_INPUT; adc_command |= LTC2484_AUTO_CALIBRATION; if(LTC2484_EOC_timeout(LTC2484_CS, miso_timeout)) // Check for EOC return(1); LTC2484_read(LTC2484_CS, adc_command, &adc_code); // Throw away last reading if(LTC2484_EOC_timeout(LTC2484_CS, miso_timeout)) // Check for EOC return(1); LTC2484_read(LTC2484_CS, adc_command, &adc_code); // Obtains the current reading and stores to adc_code variable // Convert adc_code to temperature adc_temperature = LTC2484_temperature(adc_code, LTC2484_t0, LTC2484_r0);
http://www.linear.com/product/LTC2484
http://www.linear.com/product/LTC2484#demoboards
Copyright 2018(c) Analog Devices, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, 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.
Header for 2484 24-Bit Delta Sigma ADC with Easy Drive Input Current Cancellation
Definition in file LTC2484.h.
Go to the source code of this file.
Functions | |
int8_t | LTC2484_EOC_timeout (uint8_t cs, uint16_t miso_timeout) |
Checks for EOC with a specified timeout. More... | |
void | LTC2484_read (uint8_t cs, uint8_t adc_command, int32_t *adc_code) |
Read LTC2484 result, program configuration for next conversion. More... | |
float | LTC2484_code_to_voltage (int32_t adc_code, float LTC2484_lsb, int32_t LTC2484_offset_code) |
Calculates the LTC2484 input bipolar voltage. More... | |
float | LTC2484_temperature (int32_t adc_code, float LTC2484_t0, float LTC2484_r0) |
Calculate the LTC2484 temperature. More... | |
void | LTC2484_cal_voltage (int32_t zero_code, int32_t fs_code, float zero_voltage, float fs_voltage, float *LTC2484_lsb, int32_t *LTC2484_offset_code) |
Calibrate the lsb. More... | |
void | LTC2484_cal_temperature (int32_t adc_code, float temperature, float *LTC2484_t0, float *LTC2484_r0) |
Calibrate temperature. More... | |
Macros | |
#define | LTC2484_CS QUIKEVAL_CS |
define the SPI CS pin More... | |
LTC2484 Command constants | |
Command constants. OR together to form the adc_command byte. | |
#define | LTC2484_ENABLE 0x80 |
#define | LTC2484_DISABLE 0x00 |
#define | LTC2484_EXTERNAL_INPUT 0x00 |
#define | LTC2484_TEMPERATURE_INPUT 0x08 |
#define | LTC2484_REJECTION_50HZ_60HZ 0x00 |
#define | LTC2484_REJECTION_50HZ 0x02 |
#define | LTC2484_REJECTION_60HZ 0x04 |
#define | LTC2484_AUTO_CALIBRATION 0x00 |
#define | LTC2484_SPEED_2X 0x01 |
void LTC2484_cal_temperature | ( | int32_t | adc_code, |
float | temperature, | ||
float * | LTC2484_t0, | ||
float * | LTC2484_r0 | ||
) |
Calibrate temperature.
adc_code | ADC code |
temperature | Actual temperature |
LTC2484_t0 | Temperature calibration value |
LTC2484_r0 | Voltage for temperature calibration value |
Definition at line 123 of file LTC2484.cpp.
void LTC2484_cal_voltage | ( | int32_t | zero_code, |
int32_t | fs_code, | ||
float | zero_voltage, | ||
float | fs_voltage, | ||
float * | LTC2484_lsb, | ||
int32_t * | LTC2484_offset_code | ||
) |
Calibrate the lsb.
zero_code | Offset (Code) |
fs_code | Code measured with full-scale input applied |
zero_voltage | Measured zero voltage |
fs_voltage | Actual voltage applied during full-scale measurement |
LTC2484_lsb | Returns LSB value (volts) |
LTC2484_offset_code | Returns Offset (Code) |
Definition at line 109 of file LTC2484.cpp.
float LTC2484_code_to_voltage | ( | int32_t | adc_code, |
float | LTC2484_lsb, | ||
int32_t | LTC2484_offset_code | ||
) |
Calculates the LTC2484 input bipolar voltage.
adc_code | Raw ADC code |
LTC2484_lsb | LSB value (volts) |
LTC2484_offset_code | Offset (Code) |
Definition at line 96 of file LTC2484.cpp.
int8_t LTC2484_EOC_timeout | ( | uint8_t | cs, |
uint16_t | miso_timeout | ||
) |
Checks for EOC with a specified timeout.
cs | Chip Select pin |
miso_timeout | Timeout (in millisends) |
Definition at line 84 of file LTC2484.cpp.
void LTC2484_read | ( | uint8_t | cs, |
uint8_t | adc_command, | ||
int32_t * | adc_code | ||
) |
Read LTC2484 result, program configuration for next conversion.
cs | Chip Select pin |
adc_command | Command byte |
adc_code | Returns raw 32-bit code read from ADC |
Definition at line 90 of file LTC2484.cpp.
float LTC2484_temperature | ( | int32_t | adc_code, |
float | LTC2484_t0, | ||
float | LTC2484_r0 | ||
) |
Calculate the LTC2484 temperature.
adc_code | ADC code |
LTC2484_t0 | Temperature calibration value |
LTC2484_r0 | Voltage for temperature calibration value |
Definition at line 102 of file LTC2484.cpp.
#define LTC2484_CS QUIKEVAL_CS |