Other Parts Discussed in Thread: ADS1248, ADS1216, ADS1243, ADS1241
Hi Guys,
I am using ADS1248 to read analog data. There is a couple of milivolt drift in my conversion values. Given the high resolution of this chip I was expecting solid values. I can read the 24 bit data registers, look at the last 23 bit and come up with the voltege, yet the number is not very accurate. I wonder if reading data registers immediately after DRDY goes low is OK in the following fasion.
// start reading data
if (!DRDY0)
spi.write(RDATAC);
DATA1reads = spi.write(NOP);
DATA2reads = spi.write(NOP);
DATA3reads = spi.write(NOP);
spi.write(SDATAC); // to read other registers than data, stop readining data continously
V24b = V24b | DATA1reads; // bit masking to get the 24bit data MSB first
V24b = V24b << 16;
DATA2reads = DATA2reads << 8;
V24b = V24b + float(DATA2reads);
V24b = V24b + float(DATA3reads);
V24b = V24b >> 1; // write shift by one bit to get the 23 bit positive input only.
Vdec= V24b / 8388608.0 * Vref; // v = count / 2^23 * Vref
Vdec = Vdec * 2.0;
wait(0.0009); // this delay needed for processing, without it we get erronous converstion.
return Vdec;


