127 Serial.begin(115200);
137 Serial.println(F(
"EEPROM not detected, will attempt to proceed"));
151 if (Serial.available())
154 if (user_command !=
'm')
155 Serial.println(user_command);
157 switch (user_command)
172 Serial.println(F(
"Incorrect Option"));
175 Serial.println(F(
"\n******SPI ERROR******\n"));
176 Serial.print(F(
"\n*************************\n"));
187 Serial.print(F(
"\n*****************************************************************\n"));
188 Serial.print(F(
"* DC1009A-A Demonstration Program *\n"));
189 Serial.print(F(
"* *\n"));
190 Serial.print(F(
"* This program demonstrates how to send data and receive data *\n"));
191 Serial.print(F(
"* from the 24-bit ADC. *\n"));
192 Serial.print(F(
"* *\n"));
193 Serial.print(F(
"* *\n"));
194 Serial.print(F(
"* Set the baud rate to 115200 and select the newline terminator.*\n"));
195 Serial.print(F(
"* *\n"));
196 Serial.print(F(
"*****************************************************************\n"));
202 Serial.print(F(
"\n1-Read Single-Ended\n"));
203 Serial.print(F(
"2-Read Differential\n"));
204 Serial.print(F(
"3-2X Mode Settings\n"));
205 Serial.print(F(
"4-Frequency Rejection Settings\n"));
206 Serial.print(F(
"Enter a Command: "));
216 Serial.print(F(
"0P-1N"));
219 Serial.print(F(
"2P-3N"));
222 Serial.print(F(
"1P-0N"));
225 Serial.print(F(
"3P-2N"));
228 Serial.print(F(
": "));
235 uint8_t adc_command_high;
236 uint8_t adc_command_low;
243 Serial.print(F(
"*************************\n\n"));
244 Serial.print(F(
"0-CH0\n"));
245 Serial.print(F(
"1-CH1\n"));
246 Serial.print(F(
"2-CH2\n"));
247 Serial.print(F(
"3-CH3\n"));
248 Serial.print(F(
"4-ALL\n"));
249 Serial.print(F(
"m-Main Menu\n"));
250 Serial.print(F(
"Enter a Command: "));
253 if (user_command ==
'm')
255 Serial.println(user_command);
256 if (user_command == 4)
258 Serial.print(F(
"ALL\n"));
265 for (int8_t
x = 0;
x <= 3;
x++)
279 Serial.print(F(
" ****"));
280 Serial.print(F(
"CH"));
282 Serial.print(F(
": "));
283 Serial.print(adc_voltage, 4);
284 Serial.print(F(
"V\n\n"));
291 Serial.print(F(
"ADC Command: 0x"));
292 Serial.println((adc_command_high<<8) | adc_command_low, HEX);
306 Serial.print(F(
"Received Code: 0x"));
307 Serial.println(adc_code, HEX);
309 Serial.print(F(
" ****"));
310 Serial.print(F(
"CH"));
311 Serial.print(user_command);
312 Serial.print(F(
": "));
313 Serial.print(adc_voltage, 4);
314 Serial.print(F(
"V\n\n"));
325 uint8_t adc_command_high;
326 uint8_t adc_command_low;
333 Serial.print(F(
"\n*************************\n\n"));
334 Serial.print(F(
"0-0P-1N\n"));
335 Serial.print(F(
"1-2P-3N\n"));
336 Serial.print(F(
"2-1P-0N\n"));
337 Serial.print(F(
"3-3P-2N\n"));
338 Serial.print(F(
"m-Main Menu\n"));
341 if (user_command ==
'm')
343 Serial.println(user_command);
348 Serial.print(F(
"ADC Command: 0x"));
349 Serial.println((adc_command_high<<8) | adc_command_low, HEX);
364 Serial.print(F(
"Received Code: 0x"));
365 Serial.println(adc_code, HEX);
367 Serial.print(F(
"\n ****"));
369 Serial.print(adc_voltage, 4);
370 Serial.print(F(
"V\n"));
381 Serial.print(F(
"2X Mode Settings\n\n"));
382 Serial.print(F(
"0-Disable\n"));
383 Serial.print(F(
"1-Enable\n"));
384 Serial.print(F(
"Enter a Command: "));
386 Serial.println(user_command);
388 if (user_command == 0)
391 Serial.print(F(
"2X Mode Disabled\n"));
396 Serial.print(F(
"2X Mode Enabled\n"));
407 Serial.print(F(
"Rejection Frequency\n\n"));
408 Serial.print(F(
"0-50 Hz\n"));
409 Serial.print(F(
"1-60 Hz\n"));
410 Serial.print(F(
"2-50/60 Hz\n"));
411 Serial.print(F(
"Enter a Command: "));
413 Serial.println(user_command);
415 if (user_command == 0)
418 Serial.print(F(
"50 Hz rejection\n"));
420 else if (user_command == 1)
423 Serial.print(F(
"60 Hz rejection\n"));
428 Serial.print(F(
"50/60 Hz rejection\n"));
static uint16_t eoc_timeout
timeout in ms
unsigned char user_command
static uint8_t two_x_mode
The LTC2492 2X Mode settings.
Header File for Linduino Libraries and Demo Code.
static uint8_t menu_2_read_differential()
Read channels in differential mode.
static void print_title()
Prints the title block when program first starts.
static uint8_t menu_1_read_single_ended()
Read channels in single-ended mode.
LTC2492: 24-Bit, 4-Channel Delta Sigma ADCs with Easy Drive Input Current Cancellation.
LTC24XX General Library: Functions and defines for all SINC4 Delta Sigma ADCs.
static void print_user_command(uint8_t menu)
Display selected differential channels.
float LTC2492_code_to_voltage(int32_t adc_code, float vref)
Calculates the voltage corresponding to an adc code, given the reference (in volts) ...
const uint8_t BUILD_FREQ_REJ_COMMAND[3]
Lookup table to build 1X / 2X bits.
static void menu_4_select_rejection_freq()
Set 1X or 2X mode.
void quikeval_SPI_init(void)
Configure the SPI port for 4Mhz SCK.
int8_t LTC2492_EOC_timeout(uint8_t cs, uint16_t miso_timeout)
Checks for EOC with a specified timeout.
int8_t discover_demo_board(char *demo_name)
Read the ID string from the EEPROM and determine if the correct board is connected.
static void menu_3_set_1X2X()
Set 1X or 2X mode.
static void loop()
Repeats Linduino loop.
LT_SPI: Routines to communicate with ATmega328P's hardware SPI port.
#define LTC2492_CS
Define the SPI CS pin.
static uint8_t demo_board_connected
Set to 1 if the board is connected.
LT_I2C: Routines to communicate with ATmega328P's hardware I2C port.
static uint8_t rejection_mode
The LTC2492 rejection mode settings.
char demo_name[]
Demo Board Name stored in QuikEval EEPROM.
void quikeval_SPI_connect()
Connect SPI pins to QuikEval connector through the Linduino MUX. This will disconnect I2C...
void LTC2492_read(uint8_t cs, uint8_t adc_command_high, uint8_t adc_command_low, int32_t *adc_code)
Reads from LTC2492.
const uint8_t BUILD_COMMAND_DIFF[4]
Lookup table to build the command for differential mode.
static void setup()
Initialize Linduino.
const uint8_t BUILD_COMMAND_SINGLE_ENDED[4]
Lookup table to build the command for single-ended mode.
void quikeval_I2C_init(void)
Initializes Linduino I2C port.
static float LTC2492_vref
The LTC2492 ideal reference voltage.
const uint8_t BUILD_1X_2X_COMMAND[2]
Lookup table to build 1X / 2X bits.
static void print_prompt()
Prints main menu.