LTC1859 Interfacing with Arduino Due in Bipolar Range

Hello,

I am using Arduino Due board and trying to interface LTC1859 with it. 

Physical Connections are as follows:

 

AVDD, DVDD : Connected to 5V through 10uF (electrolytic) and 0.1uF (Ceramic) capacitor

OVDD : Connected to 3.3V through 10uF (electrolytic)

COM : Connected to GND

CH0 : Input

SDI : SPI  MOSI

SDO : SPI MISO

SCK : SPI SCK

CONVST : Pin 10

RD : GND 

All Grounds are common. 

 

And program is

 

#include <SPI.h>

#define CONVST 10 //IC PIN 28
#define BUSY 9 //IC PIN 22

// IC             UNO      DUE(SPI)
// SCK(26)    13            3
// SDO(23)    12            1
// SDI(25)      11            4

int k = 1;
byte x = 0; byte y = 0;   
word data[1000] = {0};  
float voltage = 0, avg = 0;


void setup() {
Serial.begin(115200);
SPI.begin();
SPI.setClockDivider(12);  
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
pinMode(CONVST, OUTPUT);
pinMode(BUSY, INPUT);
digitalWrite(CONVST, LOW);
Serial.print("setup done");
}


void loop() {
//record k ADC samples
for (int i = 0; i < k; i++) {
x = SPI.transfer(B10001000);  // Single ended input at channel 0, 0V to 5V range (See LTC185x datasheet p15-16)
y = SPI.transfer(B00000000);   // Filler

delayMicroseconds(2);   

//Trigger a conversion with a fast pulse
noInterrupts();
digitalWrite(CONVST, HIGH);
digitalWrite(CONVST, LOW);
interrupts();

//Wait for conversion to be finished
while (!digitalRead(BUSY)) {
}
delayMicroseconds(4);
data[i] = word(x, y);
Serial.print(data[i]);
Serial.print(" ");
}
delay(100);

for (int i = 0; i < k; i++) {
voltage = (float)data[i];
voltage = voltage / 65534 * 10;    //*5 for 0 to 5V and *10 for 0 to 10V
avg += voltage;


}
Serial.println(avg / k, 9);
avg = 0;
}

OUTPUT

for 0-5v Range

for -+5v Range 

 

 

for 0-10v Range

for -+10v Range

 

The IC- LTC1859 is performing accurately in the unipolar single ended range of 0-5v and 0-10v. But it is not responding in bipolar single ended range of -5v to +5v and -10v to +10v. In this range it is getting only 2.5v for -+5v and 5v for -+10v for any input. Any help would be appreciable.

 

Thanks.

  • Can you provide oscilloscope photos showing CONVST, SCK, SDI and SDO for the +/-10V and +/-5V examples?

  • Hello

    Thank you for your inquiry. You have posted your question in the community help space. This is not a product support space. I have moved your question to Power By Linear.

    Best,

    lallison

  • Ok sure.

    For -+5V CONVST

    For -+5V SCK

    For -+5V SDO

    For -+5V SDI

     

    For -+10V CONVST (Full Bandwidth)

     

    For -+10V SCK (Full Bandwidth)

    For -+10V SCK (20Mhz Bandwidth)

    For -+10V SDO(Full Bandwidth)

    For -+10V SDO(20Mhz Bandwidth)

    For -+10V SDI(Full Bandwidth)

    For -+10V SDI (20Mhz Bandwidth)

  • With all of the waveforms on different photos there is no way to align them and determine what command is going to the ADC. If you do not have a 4-channel oscilloscope so that you can display all the waveforms on one screen then please show CONVST with each of the other three waveforms on three separate scope photos using the same timebase. Try to keep the falling edge of CONVST in the same place in all three photos.

    Use a short ground lead on the oscilloscope probes to minimize the ringing and do not limit the bandwidth. If the ringing is real and not just from the long ground leads this will cause accuracy problems if the ringing is more than 300mV above OVDD or below ground.

    Do you have a ground plane on your PCB?

  • we made the circuit in general purpose PCB for testing. So there is no ground plane in our circuit but all grounds are connected to each other.

    Here are circuit photos.

    We have only one channel oscilloscope so I provide these photos in the same timeline.

    For CONVST

    For SCK

    For SDI

    For SDO

    Thanks.