Hi,
i created ADS1198 board from schematic given from user manual, I used Arduino to communicate with the device.
I first changed values of GPIO and its working fine, next step i tried to read ADC channels for input shorted. while doing that i get data like this
ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8
FFCB,35E,8000,383,FFFA,24,FFF9,7FFF,
FFCB,353,8000,383,FFFA,24,FFF9,7FFF,
FFCB,35A,8000,375,FFFA,25,FFF9,FFF,
FFCB,356,8000,37B,FFFA,24,FFF9,7FFF,
FFCB,35D,8000,390,FFFA,25,FFF9,7FFF,
FFCC,353,8000,39E,FFFA,24,FFF9,7FFF,
FFCB,34D,8000,391,FFFA,24,FFF9,7FFF,
FFCC,357,8000,3A5,FFFA,25,FFF9,7FFF,
FFCC,355,8000,394,FFFA,25,FFF9,7FFF,
FFCC,35B,8000,39B,FFFA,25,FFF9,7FFF,
FFCB,355,8000,37B,FFFA,24,FFF9,7FFF,
FFCC,350,8000,385,FFFA,25,FFF9,7FFF,
FFCC,358,8000,386,FFFA,25,FFF9,7FFF,
FFCC,34C,8000,397,FFFA,24,FFF9,7FFF,
FFCC,366,8000,370,FFFA,25,FFF9,7FFF,
FFCC,355,8000,394,FFFA,25,FFF9,7FFF,
FFCC,357,8000,388,FFFA,25,FFF9,7FFF,
FFCC,35A,8000,389,FFFA,25,FFF9,7FFF,
FFCB,354,8000,37D,FFFA,25,FFF9,7FFF,
when I read those chnset registers i get 0x11
can some one help me please...
#include <SPI.h> //Sensor's memory register addresses: const byte WAKEUP = 0x02; const byte STANDBY = 0x20; const byte RESET = 0x21; const byte SDATAC=0x11; const byte START=0x08; const byte STOP=0x0A; const byte RADATA=0x12; const byte RADATAC=0x10; // pins used for the connection with the sensor // the other you need are controlled by the SPI library): const int chipSelectPin = 10; const int rset = 8; const int start = 7; const int drdy = 2; // data ready unsigned int dat[8]={0}; byte hi=0; byte mid=0; byte lo=0; byte ch=8; //to use 8 channels void setup() { Serial.begin(2000000); // start the SPI library: SPI.begin(); SPI.setClockDivider(SPI_CLOCK_DIV2); SPI.beginTransaction(SPISettings(2000000,MSBFIRST, SPI_MODE1)); // initalize the data ready and chip select pins: pinMode(chipSelectPin, OUTPUT); pinMode(rset, OUTPUT); pinMode(start, OUTPUT); pinMode(drdy, INPUT); digitalWrite(rset, LOW); delay(100); digitalWrite(rset, HIGH); digitalWrite(start, HIGH); digitalWrite(chipSelectPin, LOW); delay(100); SPI.transfer(WAKEUP); delay(100); SPI.transfer(SDATAC); delay(100); SPI.transfer(STOP); delay(100); digitalWrite(chipSelectPin, HIGH); digitalWrite(chipSelectPin, LOW); delay(100); SPI.transfer(0x43);//CONFIG3 for 2.4v internal ref SPI.transfer(0x00); SPI.transfer(0xC0); delay(100); SPI.transfer(0x41);//CONFIG1 for clock o/p enable SPI.transfer(0x00); SPI.transfer(0x24); delay(100); SPI.transfer(0x42);//CONFIG2 for enable I/P short signal SPI.transfer(0x00); SPI.transfer(0x30); delay(100); byte ch=8; SPI.transfer(0x45);//CHnSET for test signal, Ch=no of channel used SPI.transfer(0x0|ch-1); for(int i=0;i<ch;i++) SPI.transfer(0x11); delay(100); SPI.transfer(START); digitalWrite(chipSelectPin, HIGH); digitalWrite(start, LOW); delay(100); digitalWrite(start, HIGH); delay(100); digitalWrite(chipSelectPin, LOW); SPI.transfer(RADATAC); } void loop() { while(digitalRead(drdy)); while(!digitalRead(drdy)); hi=SPI.transfer(0); mid=SPI.transfer(0); lo=SPI.transfer(0); unsigned long stat=hi<<16|mid<<8|lo; for (int i=0;i<8;i++) { hi=SPI.transfer(0); lo=SPI.transfer(0); dat[i]=hi<<8|lo; } // Serial.print(stat,HEX); for (int i=0;i<8;i++) { Serial.print(dat[i],HEX); Serial.print(','); } Serial.print('\n'); }
Regards
Abiraman.S