Greetings,
I am hoping to use my teensy 3.6 to collect some data with 16bit resolution. While the ADS1115 works well, it is simply not fast enough. The ARD-LTC1867(iowa scaled engineering) is a shield made for the Arduino platform. It is a 16 bit ADC capable of taking up to 200,000 samples per second. This would be ideal, but I am having trouble getting it to work with the teensy. I know it is designed for the Uno or other arduino platforms, but I am hoping there might be a way to make it run on the teensy, but so far no luck. Does anyone know why this might not be working with the teensy 3.6? Alternatively, does anyone know of a 16 or 18 bit ADC with fast sampling rates (> 100,000 sps) that IS compatible with the teensy? Below is my code. Many thanks!
Kind Regards,
Kenneth D. Hoadley
I am hoping to use my teensy 3.6 to collect some data with 16bit resolution. While the ADS1115 works well, it is simply not fast enough. The ARD-LTC1867(iowa scaled engineering) is a shield made for the Arduino platform. It is a 16 bit ADC capable of taking up to 200,000 samples per second. This would be ideal, but I am having trouble getting it to work with the teensy. I know it is designed for the Uno or other arduino platforms, but I am hoping there might be a way to make it run on the teensy, but so far no luck. Does anyone know why this might not be working with the teensy 3.6? Alternatively, does anyone know of a 16 or 18 bit ADC with fast sampling rates (> 100,000 sps) that IS compatible with the teensy? Below is my code. Many thanks!
Kind Regards,
Kenneth D. Hoadley
Code:
#include <SPI.h>
#include <Wire.h>
#include "Ard1863.h"
const int Col0 = 1;
Ard186x ard186xboard1;
unsigned long sampleStartTimestamp;
void setup()
{
pinMode(Col0, OUTPUT);
// initialize serial communications at 250000 bps:
Serial.begin(250000);
// Wire.begin();
SPI.begin();
ard186xboard1.begin(DEVICE_LTC1867, ARD186X_EEP_ADDR_ZZ,3);
//ard186xboard1.begin(DEVICE_LTC1867, ARD186X_EEP_DISABLE);
ard186xboard1.ltc186xChangeChannel(LTC186X_CHAN_SINGLE_0P, 1);
Serial.print("eeprom mac = [");
Serial.print(ard186xboard1.eui48Get());
Serial.print("]\n");
Serial.print(" write 42 to eeprom[0] ");
byte retval = ard186xboard1.eepromWrite(0, 42, true);
Serial.print(" retval=");
Serial.print(retval);
Serial.print("\n");
Serial.print("read eeprom[0] ");
Serial.print(ard186xboard1.eepromRead(0, true));
Serial.print("\n");
sampleStartTimestamp = millis(); //save timestamp for the start of the sampling period
}
void loop()
{
// print the results to the serial monitor
digitalWriteFast(Col0, HIGH);
delayMicroseconds(10);
Serial.println(ard186xboard1.ltc186xRead());
digitalWriteFast(Col0, LOW);
delay(1000);
}