124 Serial.begin(115200);
141 if (Serial.available())
144 if (user_command ==
'm');
146 Serial.println(user_command);
148 switch (user_command)
157 Serial.println(
"Incorrect Option");
161 Serial.println(F(
"***** SPI ERROR *****"));
162 Serial.println(F(
"*****************************************************************"));
174 Serial.println(F(
"*****************************************************************"));
175 Serial.println(F(
"* *"));
176 Serial.println(F(
"* *"));
177 Serial.println(F(
"* This program demonstrates how to send data and receive data *"));
178 Serial.println(F(
"* from the 24-bit delta-sigma ADC and LTC6820. *"));
179 Serial.println(F(
"* *"));
180 Serial.println(F(
"* *"));
181 Serial.println(F(
"* Set the baud rate to 115200 select the newline terminator. *"));
182 Serial.println(F(
"* *"));
183 Serial.println(F(
"*****************************************************************"));
190 Serial.println(F(
"1-Read Single-Ended"));
191 Serial.println(F(
"2-Read Differential"));
193 Serial.print(F(
"Enter a command:"));
208 Serial.print(F(
"*************************\n\n"));
209 Serial.print(F(
"0-CH0 8-CH8\n"));
210 Serial.print(F(
"1-CH1 9-CH9\n"));
211 Serial.print(F(
"2-CH2 10-CH10\n"));
212 Serial.print(F(
"3-CH3 11-CH11\n"));
213 Serial.print(F(
"4-CH4 12-CH12\n"));
214 Serial.print(F(
"5-CH5 13-CH13\n"));
215 Serial.print(F(
"6-CH6 14-CH14\n"));
216 Serial.print(F(
"7-CH7 15-CH15\n"));
217 Serial.print(F(
"16-ALL\n"));
218 Serial.print(F(
"m-Main Menu\n"));
219 Serial.print(F(
"\nEnter a Command: "));
221 if (user_command ==
'm')
224 Serial.println(user_command);
227 if (user_command == 16)
229 Serial.print(F(
"ALL\n"));
236 for (int8_t
x = 0;
x <= 15;
x++)
242 Serial.print(F(
" ****"));
243 Serial.print(F(
"CH"));
245 Serial.print(F(
": "));
246 Serial.print(adc_voltage, 4);
247 Serial.print(F(
"V\n"));
250 else if (user_command<16 && user_command >=0)
253 Serial.print(F(
"\nADC Command: h"));
254 Serial.println(adc_command, HEX);
259 Serial.print(F(
"Received Code: 0x"));
260 Serial.println(adc_code, HEX);
262 Serial.print(F(
" ****"));
263 Serial.print(F(
"CH"));
264 Serial.print(user_command);
265 Serial.print(F(
": "));
266 Serial.print(adc_voltage, 4);
267 Serial.print(F(
"V\n"));
285 Serial.print(F(
"\n*************************\n\n"));
286 Serial.print(F(
"0-0P-1N 8-1P-0N\n"));
287 Serial.print(F(
"1-2P-3N 9-3P-2N\n"));
288 Serial.print(F(
"2-4P-5N 10-5P-4N\n"));
289 Serial.print(F(
"3-6P-7N 11-7P-6N\n"));
290 Serial.print(F(
"4-8P-9N 12-9P-8N\n"));
291 Serial.print(F(
"5-10P-11N 13-11P-10N\n"));
292 Serial.print(F(
"6-12P_13N 14-13P-12N\n"));
293 Serial.print(F(
"7-14P-15N 15-15P-14N\n"));
294 Serial.print(F(
"16-ALL Even_P-Odd_N\n"));
295 Serial.print(F(
"17-ALL Odd_P-Even_N\n"));
296 Serial.print(F(
"m-Main Menu\n"));
297 Serial.print(F(
"\nEnter a Command: "));
299 if (user_command ==
'm')
301 Serial.println(user_command);
304 if ((user_command == 16) || (user_command == 17))
306 if (user_command == 16)
308 Serial.print(F(
"ALL Even_P-Odd_N\n"));
312 if (user_command == 17)
314 Serial.print(F(
"ALL Odd_P-Even_N\n"));
322 for (int8_t
x = 0;
x <= 7;
x++)
329 Serial.print(F(
"**** "));
331 Serial.print(F(
": "));
332 Serial.print(adc_voltage, 4);
333 Serial.print(F(
"V\n"));
340 Serial.print(F(
"ADC Command: 0b"));
341 Serial.println(adc_command, BIN);
346 Serial.print(F(
"Received Code: 0x"));
347 Serial.println(adc_code, HEX);
350 Serial.print(F(
"**** "));
351 Serial.print(F(
"CH"));
353 Serial.print(F(
": "));
354 Serial.print(adc_voltage, 4);
355 Serial.print(F(
"V"));
368 Serial.print(
"0P-1N");
371 Serial.print(
"2P-3N");
374 Serial.print(
"4P-5N");
377 Serial.print(
"6P-7N");
380 Serial.print(
"8P-9N");
383 Serial.print(
"10P-11N");
386 Serial.print(
"12P-13N");
389 Serial.print(
"14P-15N");
392 Serial.print(
"1P-0N");
395 Serial.print(
"3P-2N");
398 Serial.print(
"5P-4N");
401 Serial.print(
"7P-6N");
404 Serial.print(
"9P-8N");
407 Serial.print(
"11P-10N");
410 Serial.print(
"13P-12N");
413 Serial.print(
"15P-14N");
#define LTC24XX_MULTI_CH_CH3
static uint8_t menu_2_read_differential()
Read channels in differential mode.
#define LTC24XX_MULTI_CH_CH14
static void loop()
Repeats Linduino loop.
unsigned char user_command
static uint8_t adc_command
#define LTC24XX_MULTI_CH_CH8
#define LTC24XX_MULTI_CH_CH15
static uint8_t demo_board_connected
Set to 1 if the board is connected.
#define LTC24XX_MULTI_CH_CH13
#define LTC24XX_MULTI_CH_CH1
#define LTC24XX_MULTI_CH_CH6
static void setup()
Initialize Linduino.
#define LTC24XX_MULTI_CH_P13_N12
#define LTC24XX_MULTI_CH_P1_N0
Header File for Linduino Libraries and Demo Code.
const uint16_t MISO_TIMEOUT
The MISO timeout (ms)
int8_t LTC24XX_EOC_timeout(uint8_t cs, uint16_t miso_timeout)
Checks for EOC with a specified timeout.
#define LTC24XX_MULTI_CH_CH5
static void print_prompt()
Prints main menu.
#define LTC24XX_MULTI_CH_P4_N5
#define LTC24XX_MULTI_CH_CH0
static void print_user_command(uint8_t menu)
Display selected differential channels.
#define LTC24XX_MULTI_CH_CH11
LTC24XX General Library: Functions and defines for all SINC4 Delta Sigma ADCs.
#define LTC24XX_MULTI_CH_P9_N8
#define LTC24XX_MULTI_CH_P14_N15
void LTC24XX_SPI_16bit_command_32bit_data(uint8_t cs, uint8_t adc_command_high, uint8_t adc_command_low, int32_t *adc_code)
Reads from LTC24XX ADC that accepts a 16 bit configuration and returns a 32 bit result.
#define LTC24XX_MULTI_CH_CH2
const uint8_t BUILD_COMMAND_DIFF[16]
#define LTC24XX_MULTI_CH_P3_N2
static uint8_t menu_1_read_single_ended()
read from ADC single-ended
#define LTC24XX_MULTI_CH_P2_N3
void quikeval_SPI_init(void)
Configure the SPI port for 4Mhz SCK.
#define LTC24XX_MULTI_CH_P10_N11
#define LTC24XX_MULTI_CH_CH12
#define LTC24XX_MULTI_CH_P12_N13
LT_SPI: Routines to communicate with ATmega328P's hardware SPI port.
#define LTC24XX_MULTI_CH_CH7
#define LTC24XX_MULTI_CH_P5_N4
LT_I2C: Routines to communicate with ATmega328P's hardware I2C port.
#define LTC24XX_MULTI_CH_P8_N9
#define LTC24XX_MULTI_CH_P7_N6
float LTC24XX_diff_code_to_voltage(int32_t adc_code, float vref)
Calculates the voltage corresponding to an ADC code, given the reference voltage. ...
void quikeval_SPI_connect()
Connect SPI pins to QuikEval connector through the Linduino MUX. This will disconnect I2C...
#define LTC24XX_MULTI_CH_CH10
#define LTC24XX_MULTI_CH_CH9
static void print_title()
Prints the title block when program first starts.
#define LTC24XX_MULTI_CH_P15_N14
#define LTC24XX_CS
Define the SPI CS pin.
const uint8_t BUILD_COMMAND_SINGLE_ENDED[16]
Builds the command for single-ended mode.
void quikeval_I2C_init(void)
Initializes Linduino I2C port.
#define LTC24XX_MULTI_CH_P11_N10
#define LTC24XX_MULTI_CH_P0_N1
#define LTC24XX_MULTI_CH_CH4
static float reference_voltage
The reference voltage range, set to 5v through JP2 and JP3 by default.
#define LTC24XX_MULTI_CH_P6_N7