| Linduino 1.3.0 Linear Technology Arduino-Compatible Demonstration Board

Functions | Variables
DC571A.ino File Reference
Analog-to-Digital Converters (ADC) » LTC2418: 16-Channel 24-Bit No Latency Delta-Sigma ADC

Linear Technology DC571A Demonstration Board. More...

## Detailed Description

Linear Technology DC571A Demonstration Board.

LTC2418: 24-bit No Latency Delta Sigma 16-channel ADC

    NOTES
      Setup:
        Set the terminal baud rate to 115200 and select the newline terminator.
        Equipment required is a precision voltage source and a precision
        voltmeter. No external power supply is required. Ensure all jumpers on
        the demo board are installed in their default positions from the
        factory.

      How to test Single-Ended mode:
        The voltage source should be connected to the ADC such that the negative
        lead is connected to ground. The positive lead may be connected to any
        channel input. Ensure voltage is within analog input voltage range -0.3V to
        +2.5V.

      How to test Differential Mode:
        The voltage source should be connected with positive and negative leads to
        paired channels. The voltage source negative output must also be connected to
        the COM pin in order to provide a ground-referenced voltage. Ensure voltage is
        within analog input voltage range -0.3V to +2.5V. Swapping input voltages
        results in a reversed polarity reading.

      How to calibrate:
        Apply 100mV to CH0 with respect to COM pin. Next, Measure this voltage with a
        precise voltmeter and enter this value. (This takes the reading.) Apply a higher
        voltage than the first voltage or approximately 2.40 volts to CH0. Anything
        above 2.40 is not reccomened. It is very likely to reach the ADC's full-scale
        and poduce invalide lsb and offset. Measure this voltage with a precise
        voltmeter and enter this value. Calibration is now stored in EEPROM. Upon
        startup the calibration values will be restored.

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

http://www.linear.com/product/LTC2418

http://www.linear.com/product/LTC2418#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:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- 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.
- Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- The use of this software may or may not infringe the patent rights of one or more patent holders. This license does not release you from the requirement that you obtain separate licenses from these patent holders to use this software.
- Use of the software either in source or binary form, must be run on or directly connected to an Analog Devices Inc. component.

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.

Definition in file DC571A.ino.

Go to the source code of this file.

## Functions
static void | print_title ()
| Prints the title block when program first starts. More...
static void | print_prompt ()
| Prints main menu. More...
static void | print_user_command (uint8_t menu)
| Display selected differential channels. More...
static void | store_calibration ()
| Store measured calibration parameters to nonvolatile EEPROM on demo board. More...
static int8_t | restore_calibration ()
| Read stored calibration parameters from nonvolatile EEPROM on demo board. More...
static int8_t | menu_1_read_single_ended ()
| Read channels in single-ended mode. More...
static int8_t | menu_2_read_differential ()
| Read channels in differential mode. More...
static int8_t | menu_3_calibrate ()
| Calibrate ADC given two known inputs. More...
static void | setup ()
| Initialize Linduino. More...
static void | loop ()
| Repeats Linduino loop. More...

## Variables
static uint8_t | demo_board_connected
| Set to 1 if the board is connected. More...
static float | LTC2418_lsb = 5.9604652E-7
| Ideal LSB voltage for a perfect part. More...
static int32_t | LTC2418_offset_code = 0
| Ideal offset for a perfect part. More...
const uint8_t | BUILD_COMMAND_SINGLE_ENDED [16]
| Lookup table to build the command for single-ended mode channels. More...
const uint8_t | BUILD_COMMAND_DIFF [16]
| Lookup table to build the command for differential mode channels. More...
const uint16_t | MISO_TIMEOUT = 1000
| The MISO timeout (ms) More...

## Function Documentation

## ◆ loop()

static void loop | ( | void |  | ) |
| static

Repeats Linduino loop.

Definition at line 163 of file DC571A.ino.

## ◆ menu_1_read_single_ended()

static int8_t menu_1_read_single_ended | ( |  | ) |
| static

Read channels in single-ended mode.

Returns
  0 when m is entered into menu, 1 if timeout for EOC

Definition at line 201 of file DC571A.ino.

## ◆ menu_2_read_differential()

static int8_t menu_2_read_differential | ( |  | ) |
| static

Read channels in differential mode.

Returns
  0 when m is entered into menu, 1 if timeout for EOC

Definition at line 279 of file DC571A.ino.

## ◆ menu_3_calibrate()

static int8_t menu_3_calibrate | ( |  | ) |
| static

Calibrate ADC given two known inputs.

Returns
  0 if successful, 1 if timeout for EOC

Definition at line 369 of file DC571A.ino.

## ◆ print_prompt()

static void print_prompt | ( |  | ) |
| static

Prints main menu.

Definition at line 435 of file DC571A.ino.

## ◆ print_title()

static void print_title | ( | void |  | ) |
| static

Prints the title block when program first starts.

Definition at line 421 of file DC571A.ino.

## ◆ print_user_command()

static void print_user_command | ( | uint8_t | menu | ) |
| static

Display selected differential channels.

Displaying Single-Ended channels is straightforward; not so with differential because the inputs can take either polarity.

Definition at line 447 of file DC571A.ino.

## ◆ restore_calibration()

static int8_t restore_calibration | ( |  | ) |
| static

Read stored calibration parameters from nonvolatile EEPROM on demo board.

Returns
  return 1 if successful, 0 if not

Definition at line 515 of file DC571A.ino.

## ◆ setup()

static void setup | ( | void |  | ) |
| static

Initialize Linduino.

Definition at line 135 of file DC571A.ino.

## ◆ store_calibration()

static void store_calibration | ( |  | ) |
| static

Store measured calibration parameters to nonvolatile EEPROM on demo board.

Definition at line 504 of file DC571A.ino.

## Variable Documentation

## ◆ BUILD_COMMAND_DIFF

const uint8_t BUILD_COMMAND_DIFF[16]

Initial value:
= {LTC2418_P0_N1, LTC2418_P2_N3, LTC2418_P4_N5, LTC2418_P6_N7,
LTC2418_P8_N9, LTC2418_P10_N11, LTC2418_P12_N13, LTC2418_P14_N15,
LTC2418_P1_N0, LTC2418_P3_N2, LTC2418_P5_N4, LTC2418_P7_N6,
LTC2418_P9_N8, LTC2418_P11_N10, LTC2418_P13_N12, LTC2418_P15_N14
}
LTC2418_P15_N14
#define LTC2418_P15_N14
Definition: LTC2418.h:159
LTC2418_P14_N15
#define LTC2418_P14_N15
Definition: LTC2418.h:158
LTC2418_P2_N3
#define LTC2418_P2_N3
Definition: LTC2418.h:140
LTC2418_P12_N13
#define LTC2418_P12_N13
Definition: LTC2418.h:155
LTC2418_P7_N6
#define LTC2418_P7_N6
Definition: LTC2418.h:147
LTC2418_P13_N12
#define LTC2418_P13_N12
Definition: LTC2418.h:156
LTC2418_P6_N7
#define LTC2418_P6_N7
Definition: LTC2418.h:146
LTC2418_P1_N0
#define LTC2418_P1_N0
Definition: LTC2418.h:138
LTC2418_P5_N4
#define LTC2418_P5_N4
Definition: LTC2418.h:144
LTC2418_P11_N10
#define LTC2418_P11_N10
Definition: LTC2418.h:153
LTC2418_P8_N9
#define LTC2418_P8_N9
Definition: LTC2418.h:149
LTC2418_P4_N5
#define LTC2418_P4_N5
Definition: LTC2418.h:143
LTC2418_P10_N11
#define LTC2418_P10_N11
Definition: LTC2418.h:152
LTC2418_P3_N2
#define LTC2418_P3_N2
Definition: LTC2418.h:141
LTC2418_P9_N8
#define LTC2418_P9_N8
Definition: LTC2418.h:150
LTC2418_P0_N1
#define LTC2418_P0_N1
Definition: LTC2418.h:137

Lookup table to build the command for differential mode channels.

Build the command for differential

Definition at line 126 of file DC571A.ino.

## ◆ BUILD_COMMAND_SINGLE_ENDED

const uint8_t BUILD_COMMAND_SINGLE_ENDED[16]

Initial value:
= {LTC2418_CH0, LTC2418_CH1, LTC2418_CH2, LTC2418_CH3,
LTC2418_CH4, LTC2418_CH5, LTC2418_CH6, LTC2418_CH7,
LTC2418_CH8, LTC2418_CH9, LTC2418_CH10, LTC2418_CH11,
LTC2418_CH12, LTC2418_CH13, LTC2418_CH14, LTC2418_CH15
}
LTC2418_CH3
#define LTC2418_CH3
Definition: LTC2418.h:119
LTC2418_CH0
#define LTC2418_CH0
Definition: LTC2418.h:116
LTC2418_CH5
#define LTC2418_CH5
Definition: LTC2418.h:121
LTC2418_CH7
#define LTC2418_CH7
Definition: LTC2418.h:123
LTC2418_CH11
#define LTC2418_CH11
Definition: LTC2418.h:127
LTC2418_CH13
#define LTC2418_CH13
Definition: LTC2418.h:129
LTC2418_CH10
#define LTC2418_CH10
Definition: LTC2418.h:126
LTC2418_CH2
#define LTC2418_CH2
Definition: LTC2418.h:118
LTC2418_CH4
#define LTC2418_CH4
Definition: LTC2418.h:120
LTC2418_CH9
#define LTC2418_CH9
Definition: LTC2418.h:125
LTC2418_CH8
#define LTC2418_CH8
Definition: LTC2418.h:124
LTC2418_CH12
#define LTC2418_CH12
Definition: LTC2418.h:128
LTC2418_CH6
#define LTC2418_CH6
Definition: LTC2418.h:122
LTC2418_CH15
#define LTC2418_CH15
Definition: LTC2418.h:131
LTC2418_CH1
#define LTC2418_CH1
Definition: LTC2418.h:117
LTC2418_CH14
#define LTC2418_CH14
Definition: LTC2418.h:130

Lookup table to build the command for single-ended mode channels.

Builds the command for single-ended mode

Definition at line 119 of file DC571A.ino.

## ◆ demo_board_connected

uint8_t demo_board_connected
| static

Set to 1 if the board is connected.

Definition at line 112 of file DC571A.ino.

## ◆ LTC2418_lsb

float LTC2418_lsb = 5.9604652E-7
| static

Ideal LSB voltage for a perfect part.

Definition at line 113 of file DC571A.ino.

## ◆ LTC2418_offset_code

int32_t LTC2418_offset_code = 0
| static

Ideal offset for a perfect part.

Definition at line 114 of file DC571A.ino.

## ◆ MISO_TIMEOUT

const uint16_t MISO_TIMEOUT = 1000

The MISO timeout (ms)

Definition at line 132 of file DC571A.ino.