156 Serial.begin(115200);
172 if (Serial.available())
175 if (user_command ==
'm');
177 Serial.println(user_command);
179 switch (user_command)
188 Serial.println(
"Incorrect Option");
192 Serial.println(F(
"***** SPI ERROR *****"));
193 Serial.println(F(
"*****************************************************************"));
205 Serial.println(F(
"*****************************************************************"));
206 Serial.println(F(
"* DC1011A-B Demonstration Program *"));
207 Serial.println(F(
"* *"));
208 Serial.println(F(
"* This program demonstrates how to send data and receive data *"));
209 Serial.println(F(
"* from the 24-bit delta-sigma ADC. *"));
210 Serial.println(F(
"* *"));
211 Serial.println(F(
"* *"));
212 Serial.println(F(
"* Set the baud rate to 115200 select the newline terminator. *"));
213 Serial.println(F(
"* *"));
214 Serial.println(F(
"*****************************************************************"));
221 Serial.println(F(
"1-Read Single-Ended"));
222 Serial.println(F(
"2-Read Differential"));
224 Serial.print(F(
"Enter a command:"));
239 Serial.print(F(
"*************************\n\n"));
240 Serial.print(F(
"0-CH0 8-CH8\n"));
241 Serial.print(F(
"1-CH1 9-CH9\n"));
242 Serial.print(F(
"2-CH2 10-CH10\n"));
243 Serial.print(F(
"3-CH3 11-CH11\n"));
244 Serial.print(F(
"4-CH4 12-CH12\n"));
245 Serial.print(F(
"5-CH5 13-CH13\n"));
246 Serial.print(F(
"6-CH6 14-CH14\n"));
247 Serial.print(F(
"7-CH7 15-CH15\n"));
248 Serial.print(F(
"16-ALL\n"));
249 Serial.print(F(
"m-Main Menu\n"));
250 Serial.print(F(
"\nEnter a Command: "));
252 if (user_command ==
'm')
255 Serial.println(user_command);
258 if (user_command == 16)
260 Serial.print(F(
"ALL\n"));
267 for (int8_t
x = 0;
x < 15;
x++)
274 Serial.print(F(
" ****"));
275 Serial.print(F(
"CH"));
277 Serial.print(F(
": "));
278 Serial.print(adc_voltage, 4);
279 Serial.print(F(
"V\n"));
282 else if (user_command<16 && user_command >=0)
285 Serial.print(F(
"\nADC Command: B"));
286 Serial.println(adc_command, BIN);
293 Serial.print(F(
"Received Code: 0x"));
294 Serial.println(adc_code, HEX);
296 Serial.print(F(
" ****"));
297 Serial.print(F(
"CH"));
298 Serial.print(user_command);
299 Serial.print(F(
": "));
300 Serial.print(adc_voltage, 4);
301 Serial.print(F(
"V\n"));
319 Serial.print(F(
"\n*************************\n\n"));
320 Serial.print(F(
"0-0P-1N 8-1P-0N\n"));
321 Serial.print(F(
"1-2P-3N 9-3P-2N\n"));
322 Serial.print(F(
"2-4P-5N 10-5P-4N\n"));
323 Serial.print(F(
"3-6P-7N 11-7P-6N\n"));
324 Serial.print(F(
"4-8P-9N 12-9P-8N\n"));
325 Serial.print(F(
"5-10P-11N 13-11P-10N\n"));
326 Serial.print(F(
"6-12P_13N 14-13P-12N\n"));
327 Serial.print(F(
"7-14P-15N 15-15P-14N\n"));
328 Serial.print(F(
"16-ALL Even_P-Odd_N\n"));
329 Serial.print(F(
"17-ALL Odd_P-Even_N\n"));
330 Serial.print(F(
"m-Main Menu\n"));
331 Serial.print(F(
"\nEnter a Command: "));
333 if (user_command ==
'm')
335 Serial.println(user_command);
338 if ((user_command == 16) || (user_command == 17))
340 if (user_command == 16)
342 Serial.print(F(
"ALL Even_P-Odd_N\n"));
345 if (user_command == 17)
347 Serial.print(F(
"ALL Odd_P-Even_N\n"));
354 for (int8_t
x = 0;
x <= 7;
x++)
362 Serial.print(F(
"**** "));
364 Serial.print(F(
": "));
365 Serial.print(adc_voltage, 4);
366 Serial.print(F(
"V\n"));
373 Serial.print(F(
"ADC Command: 0b"));
374 Serial.println(adc_command, BIN);
381 Serial.print(F(
"Received Code: 0x"));
382 Serial.println(adc_code, HEX);
385 Serial.print(F(
"**** "));
386 Serial.print(F(
"CH"));
388 Serial.print(F(
": "));
389 Serial.print(adc_voltage, 4);
390 Serial.print(F(
"V"));
403 Serial.print(
"0P-1N");
406 Serial.print(
"2P-3N");
409 Serial.print(
"4P-5N");
412 Serial.print(
"6P-7N");
415 Serial.print(
"8P-9N");
418 Serial.print(
"10P-11N");
421 Serial.print(
"12P-13N");
424 Serial.print(
"14P-15N");
427 Serial.print(
"1P-0N");
430 Serial.print(
"3P-2N");
433 Serial.print(
"5P-4N");
436 Serial.print(
"7P-6N");
439 Serial.print(
"9P-8N");
442 Serial.print(
"11P-10N");
445 Serial.print(
"13P-12N");
448 Serial.print(
"15P-14N");
const uint8_t BUILD_COMMAND_DIFF[16]
static uint8_t menu_1_read_single_ended()
read from ADC single-ended
LTC2496: 16-Bit 8-/16-Channel Delta Sigma ADC with Easy Drive Input Current Cancellation.
unsigned char user_command
static uint8_t adc_command
Header File for Linduino Libraries and Demo Code.
static void setup()
Initialize Linduino.
static uint8_t demo_board_connected
Set to 1 if the board is connected.
static void loop()
Repeats Linduino loop.
#define LTC2496_CS
define the SPI CS pin
static void print_prompt()
Prints main menu.
LTC24XX General Library: Functions and defines for all SINC4 Delta Sigma ADCs.
const uint8_t BUILD_COMMAND_SINGLE_ENDED[16]
Builds the command for single-ended mode.
static float reference_voltage
The reference voltage range, set to 5v through JP2 and JP3 by default.
void quikeval_SPI_init(void)
Configure the SPI port for 4Mhz SCK.
int8_t discover_demo_board(char *demo_name)
Read the ID string from the EEPROM and determine if the correct board is connected.
LT_SPI: Routines to communicate with ATmega328P's hardware SPI port.
LT_I2C: Routines to communicate with ATmega328P's hardware I2C port.
void LTC2496_read(uint8_t cs, uint8_t adc_command, int32_t *adc_code)
Read LTC2496 result, program configuration for next conversion.
const uint16_t MISO_TIMEOUT
The MISO timeout (ms)
char demo_name[]
Demo Board Name stored in QuikEval EEPROM.
float LTC2496_code_to_voltage(int32_t adc_code, float vref)
Calculates the LTC2496 input voltage.
void quikeval_SPI_connect()
Connect SPI pins to QuikEval connector through the Linduino MUX. This will disconnect I2C...
void quikeval_I2C_init(void)
Initializes Linduino I2C port.
static void print_user_command(uint8_t menu)
Display selected differential channels.
int8_t LTC2496_EOC_timeout(uint8_t cs, uint16_t miso_timeout)
Checks for EOC with a specified timeout.
static void print_title()
Prints the title block when program first starts.
static uint8_t menu_2_read_differential()
Read channels in differential mode.