LTC1859CG Evaluation board with an Arduino
I’ve been playing with a LTC1859 Evaluation board. Linear supply code for their Linduino platform (which costs a lot) and a cable to connect to it. However the Linduino is really just a standard Arduino with a special connector. I wired up the SPI interface to the board as shown above and it works fine (a couple of the ground connections are not connected above, I needed to connect them all before the board was stable). The code adapted from the Linduino library and their LTC1859 example is in the tarball below:
DC682A.ino can be simplified to the following to give a continuous single channel voltage reading:
#include <Arduino.h> #include "Linduino.h" #include "LT_SPI.h" #include "LT_I2C.h" #include "LTC1859.h" #include <SPI.h> #include <Wire.h> void setup() { uint16_t adc_code; quikeval_SPI_init(); // Configure the spi port for 4MHz SCK quikeval_SPI_connect(); // Connect SPI to main data port Serial.begin(115200); // Initialize the serial port to the PC } //! Repeats Linduino loop void loop() { uint16_t user_command; uint16_t adc_command; // The LTC1859 command byte uint16_t adc_code = 0; // The LTC1859 code float adc_voltage; uint8_t x, y, startcount, endcount; uint8_t uni_bipolar = LTC1859_BIPOLAR_MODE; uint8_t single_ended_differential = LTC1859_SINGLE_ENDED_MODE; uint8_t range_low_high = LTC1859_HIGH_RANGE_MODE; startcount=0; endcount=0; float LTC1859_vref = 10; adc_command = LTC1859_CH0 | uni_bipolar | range_low_high; LTC1859_read(LTC1859_CS, adc_command, &adc_code); // Throws out last reading and starts CH0 conversion adc_command = LTC1859_CH0 | uni_bipolar | range_low_high; // Send channel config for the NEXT conversion to take place LTC1859_read(LTC1859_CS, adc_command, &adc_code); // Read previous channel conversion (x-1) and start next one (x) LTC1859_read(LTC1859_CS, adc_command, &adc_code); // Read previous channel conversion (x-1) and start next one (x) adc_voltage = LTC1859_code_to_voltage(adc_code, LTC1859_vref, range_low_high, uni_bipolar); //Serial.println(adc_code, BIN); Serial.print(adc_voltage, 4); Serial.println(); }