This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1212: Self Calibration Command Results In Two Different Output Modes 150-200 Counts Apart

Part Number:

It looks like, possibly, a register is rolling over in the correction algorithm. The Offset and Gain terms generated during the self calibration are on a continum, yet the A/D output is bistable. I either get X as an output or X+150. Never anything in-between. This is persistent until another self calibration is run. I have a lot of parts doing this.

The configuration registers are set to Hex 42085457.

The input is 1.07 V.

This is one A/D reading for each of 500 self calibration cycles...

These are the corresponding self calibration gain terms...

Here is data from a normal part....

These results are very repeatable.

My system noise is generally around 30-40 counts. This was a four hour test, so there is a bit of thermal drift. I am not concerned with that.

Any insights would be appreciated.

Thanks,

Chris

  • Chris Harthan said:

    Part Number: ADS1212

    Here it is with the images...

    It looks like, possibly, a register is rolling over in the correction algorithm. The Offset and Gain terms generated during the self calibration are on a continum, yet the A/D output is bistable. I either get X as an output or X+150. Never anything in-between. This is persistent until another self calibration is run. I have a lot of parts doing this.

    The configuration registers are set to Hex 42085457.

    The input is 1.07 V.

    This is one A/D reading for each of 500 self calibration cycles...

    These are the corresponding self calibration gain terms...

    Here is data from a normal part....

    These results are very repeatable.

    My system noise is generally around 30-40 counts. This was a four hour test, so there is a bit of thermal drift. I am not concerned with that.

    Any insights would be appreciated.

    Thanks,

    Chris

  • Hi Chris,

    As there are two aspects to the self calibration, there may be a little more investigation required to narrow things a bit. The first operation is an offset calibration followed by the second which is the gain calibration. The outcome of the gain calibration will be directly related to the offset calibration. The gain calibration will relate to the reference, so it would be good to verify the stability of the reference to make sure that it is not oscillating.

    System calibrations could also be issued to see if there is a large difference between calibrations.

    Another thing you could investigate is to write and read various values to the offset and full-scale registers. If there is a stuck bit, this would be in the LSB of the calibration registers.

    Best regards,
    Bob B
  • Hi Bob,

    Thanks for the reply.

    I have checked a few of the references, and they were stable. I am not loading the internal reference, and have the recommended bypass capacitor.

    Here are some statistics for sixteen devices run through 500 self cal cycles...

    I can send you all the data in an Excel file, If you like.

    A lot of the offsets went to 255. Is that the extent of it's range? If the gain and offset terms are related and the offset goes off scale that could cause problems with the gain term. (I don't know how the chip works, so I'm just spitballing.) Being a perfect power of two always seems suspicious.

    I spoke with my software guy. He already has functions for reading and writing these registers, so we can do a marching bit test on the calibration registers tomorrow.

    Thanks,

    Chris

    Edit:

    The one thing that confuses me about this is that the self-cal gain terms don't have a big gap in the middle like the A/D readings do. If the registers had a stuck bit, wouldn't there would be a gap in the gain terms?

  • Hi Chris,

    There are actually 3 offset registers (24 bits) and three full-scale calibration registers (24 bits). I wouldn't normally expect there would be very large variations in the offset registers as the delta should be within the level of noise. If you have the capacity, it would be best to look at all three registers for both the offset and full-scale calibration registers.

    Best regards,
    Bob B
  • Bob,

    It turned out to be the offset register.

    We are using a new processor, and the code used for the sign extension did not work correctly on the new platform.

    The offset register is 24 bit, and we had to extend it to 32. My suspicions about the 255 offsets turned out to be correct, but it was our firmware.

    Here are stats from 20 cycles on the same sixteen parts...

    Thanks for your help!

    Chris