So what's the big deal?
LTC has produced the Linduino board as a platform for their newly developed C++ code that goes with their ICs. The Linduino is said to be 'Arduino-compatible'.
The Linduino can replace the DC590B interface board as the go-in-between the QuikEval PC GUI and the actual demo board for a an IC. So my thought was that if Linduino is Arduino-compatible and Linduino is able to interface QuikEval on one side and the more than 100 demo boards on the other side - well, then an Arduino with the LTC code should be able to do the same.
But alas, IMO it does not work. Linduino is - I am sure - Arduino-compatible, but I am just as sure that Arduino is not Linduino-compatible.
LTC has put a multiplexer chip on the Linduino board and - if I am not totally mistaken - the Linduino code multiplex - as well as switch between software / hardware - SPI and/or I2C. This I cannot see how should easily be done on an Arduino.
[EDIT: I have ordered the Fairchild MUX from England (fast shipping), and will try to make a MUX breakout for an Arduino Uno and then test the code again.]
So at least all code from LTC that starts like this (with a call to "quikeval_SPI_connect()"), will IMO not run on an Arduino. I might be wrong and am willing to withdraw all I say. But not before someone prove me wrong ...
void setup()
// Setup the program
{
digitalWrite(QUIKEVAL_GPIO, LOW);
digitalWrite(QUIKEVAL_CS, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
pinMode(QUIKEVAL_GPIO, OUTPUT);
pinMode(QUIKEVAL_CS, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
Serial.begin(115200); // enable the serial port for 115200 baud
quikeval_SPI_init();
quikeval_SPI_connect(); // Connect SPI to main data port
quantumvolt comment (2 lines)
// Won't work for an ordinary Arduino ... because
// (File LT_SPI.cpp / void quikeval_SPI_connect())
// Connect SPI pins to QuikEval connector through the Linduino MUX. This will disconnect I2C.
quikeval_I2C_init(); // Configure the EEPROM I2C port for 100khz SCK
Even the code for the part (not a demo board, just a part/component/integrated circuit) LTC2607
http://www.linear.com/product/LTC2607#code that is presented as an '.ino'-file (not a '.cpp' -file), starts with:
//! Initialize Linduino
void setup()
// Setup the Program
{
char demo_name[] = "DC934"; // Demo Board Name stored in QuikEval EEPROM
output_high(LTC2422_CS); //! Pulls LTC2442 Chip Select High
quikeval_I2C_init(); //! Initializes Linduino I2C port.
quikeval_SPI_init(); //! Configures the SPI port for 4MHz SCK
quikeval_SPI_connect(); //! Connects SPI to QuikEval port
Serial.begin(115200); //! Initializes the serial port to the PC
print_title(); //! Displays the title
and can IMO not be used to initialize an Arduino.
I hope LTC answers and prove me wrong. On the other hand - no one from LTC has AFAIK said that you actually CAN USE a generic Arduino board in stead of the Linduino. It might be that I am the only one who thought so because the Linduino is presented as 'Arduino-compatible'.
And I would still like to have a Linduino board - especially because of its galvanic isolation of the USB port.