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.

ADS1282 - it takes a while to show right values after synchronisation

Other Parts Discussed in Thread: ADS1282

Hello,

I use an ADS1282 converter with the next configuration:

CONFIG0: 0x53
CONFIG1: 0x18
HPF0, HPF1, OFC0, OFC1, OFC2, FSC0, FSC1, FSC2 with default values.

The "read data continuous" mode is used.
The input is short circuited.

I use the SYNC pin to synchronise the ADC (pulse-sync mode). After the ADC is synchronised, when the DRDY goes low, the acquisition begins. The next samples are collected:

147410,145582,143770,141990, ..., 2180,2146,2111, ... , 22,32,29, .. , 1,3,-8,-3,0...

I noticed that it takes about 1.000 samples (checked for 1000sps and 500sps) for the ADC to show a value closed to 0. Can you tell me why this is hapening?

The second issue is that if I use the offset calibration ( set MUX[2:0] from CONFIG1 to 010 and perform a OFSCAL command sequence) the values are not converging to 0:

-75714,-75619,-75503, ... , -67325,-67323,-67326,-67326,-67326, ..., -67324,-67327,-67324 ...

Regards,
Bogdan.

  • Bogdan,

    Welcome to the forum!  You say that your input is shorted, but what is the potential at the shorted input?  The analog input must be be 0.7V greater than AVSS and less than AVDD-1.5V.  If you leave this input float, or tie it to ground in unipolar supply mode, you will get unstable readings. 

    When using the OFSCAL you must make sure that the inputs are shorted and that the inputs are also fully settled.  Any capacitance at the inputs can also give a longer settling time.

    Best regards,

    Bob B

  • Hello Bob,

    I have measured the electric potentials:

      AVDD - "shorted input" = 2.55 V

      "shorted input" - AVSS = 2.54 V

    The inputs (AINP2 and AINN2) are shorted together but are not floating or tied to ground. In fact they are connected like in "Figure 70. Geophone Interface Application" from datasheet.

     

    Best regards,

    Bogdan.

  • Bogdan,

    It appears to me like you have a settling issue.  This could be related to the input or the reference or both.  Can you send me your schematic?  If it is similar to Figure 70, you should be using bipolar supplies.  Are you using bipolar supplies for AVDD and AVSS?  What are you using for the reference?  Is it stable?  Do you have a cap near the inputs to the reference?  Is your circuit on a PCB or a proto board like a breadboard?

    Best regards,

    Bob B

  • Hello Bob,

     

    We use bipolar suplies.

    For the reference we use: ADR445BRZ

    Yes, the source is stable.

    Yes, we have a cap near the inputs to the reference.

    Is the first hardware release used in a micro-production state. Not a breadboard.

     

    Best regards,

    Bogdan.

  • Bogdan,

    Thanks! Can you send me the register settings you are using, and if you have a text file or spreadsheet of the codes you are getting would also be helpful.  Have you tried setting the mode to an internal short and then sync to see what kind of response you are getting?  Also, before you do the short, do you measure the other input at all?  Maybe a better question is for you to tell me your exact procedure in regards to what you are measuring, when you apply the short, etc..

    Best regards,

    Bob B

  • Hello Bob,

    Initialisation sequence:

        initADS1282(void)
        {
            m_ads1282.powerOn();

            m_ads1282.resetRegisters();

            m_spi.enable();

            // Stop read data continuous in order to read/write registers.
            m_ads1282.stopReadDataContinuous();

            // Writes registers with next values:
            // CONFIG0: 0x53, CONFIG1: 0x18, HPF0, HPF1, OFC0, OFC1, OFC2, FSC0, FSC1, FSC2 with default values.
            configureADS1282();

            if (sampleRate <= 4000)
            {
              calibrateOffset();
            }

            m_ads1282.readDataContinuous();

            m_spi.disable();
        }

    When the DRDY goes low after the SYNC signal, I activate the spi again and begin to collect data.

    If the mode to an internal short is activated I get the next values: -2010026,-2010770, ... , -2070367,-2070360, ..., -2070362

    I do not measure the other input.

    When I aply the short I get: -2354098,-2357159, ... , -2601073,-2601071,..., -2601070

     

    Best Regards,

    Bogdan.

  • Bogdan,

    Thanks for the code snippet.  The questions I have at this point is whether you have any delays between commands.  This is very important after the configureADS1282() and calibrateOffset() commands.  You will need a minimum of 64 cycles of settling with the linear phase response of the ADS1282.  I think this may be why the offset values are not closer to zero.

    By a rough calculation there is about 200uV of what I suspect is settling when you add the short.  This can be caused by mismatches of values with your input filtering.  You might want to try 0.1% for the resistors.  You caps are about as good as you can get.  Also, when you add the short there is a discharge path (even if it is really small) that ferrites will compete with and might even oscillate until the decay completes.

    So timing is key both for offset calibration and valid data.  Is it possible for you to send me about 10 seconds of continuous data?

    Best regards,

    Bob B

  • Hello Bob,

    As you sugested I have checked all timings used by me (I have correct some of them) and I have found a strange behaviour of the ADC.
    I want to specify that I use a 4.096MHz clock for the ads1282.
    The sample rate is 1000sps.
    I have put a resistor of 680 ohms between inputs (AINN2 and AINP2).

    Case 1.
            ................
           
            // power ON the ADC
                   m_gpioAds1282Pwdn.setPinHigh();
           
            sleepMilliseconds(16); // 2^16 fclk
           
            waitUntilDrdyIsLow(); // I have checked that it waits for 64ms
           
            sleepSeconds(1);
           
            // reset the ADC
            m_gpioAds1282Reset.setPinLow();
           
            waitUntilDrdyIsLow();
           
            // configure the ads1282
            m_ads1282.stopReadDataContinuous();
            ..............
           
            // calibrateOffset
            m_gpioAds1282Sync.setPinHigh();
           
            busyWaitMicroSeconds(1);
           
            sendCommand(SDATAC);
           
            busyWaitMicroSeconds(6);
           
            sendCommand(SYNC);
           
            busyWaitMicroSeconds(6);
           
            sendCommand(RDATAC);
           
            waitUntilDrdyIsLow(); // I have checked that it waits for 64ms

            sleepSeconds(1);
           
            sendCommand(SDATAC);
           
            busyWaitMicroSeconds(6);
           
            sendCommand(OFSCAL);
           
            busyWaitMicroSeconds(6);
           
            sendCommand(RDATAC);
           
            waitUntilDrdyIsLow();
           
            ...............................
           

    I get the next samples: 1836,1813,1784, ... , -2,0,0,-4,0, ... , 1,0,0,-1 ...

    Case 2:

    As you can see there are two sleepSeconds() commands.

    If I remove the first one I get: 4940,4915, ..., 3071,3073, ... ,3075,3071,3075,

    Case 3:

    If I remove both sleepSeconds(), I get: -398631,-401242, ... , -608627,-608629, ... , -608662,-608669, ...

    The first 1000 samples for case in which we have both sleepSeconds() commands:
    1998,1975,1950,1918,1887,1867,1849,1817,1795,1775,1750,1737,1713,1685,1669,1645,1620,1603,1581,1554,1547,1534,1502,1483,1463,1447,1429,1405,1396,1374,1352,1341,1320,1299,1282,1262,1245,1232,1220,1202,1185,1177,1157,1134,1131,1111,1096,1088,1067,1054,1039,1032,1017,987,983,975,958,952,933,921,917,900,889,875,861,851,840,834,818,806,802,793,776,761,750,743,735,726,717,705,699,692,675,666,660,647,640,643,632,616,611,598,587,587,576,566,557,545,546,544,537,528,515,509,499,491,490,481,478,474,458,456,448,437,441,429,420,423,409,400,398,392,388,380,373,373,370,362,354,352,345,338,334,327,322,323,318,306,310,309,294,289,286,282,283,277,270,272,268,258,262,256,245,253,241,233,235,229,234,229,222,216,211,209,194,197,200,194,194,184,182,187,179,168,171,173,162,162,166,157,160,157,147,153,151,142,142,141,138,136,130,125,126,127,123,117,117,115,116,117,110,110,110,106,102,95,96,99,99,95,91,85,85,84,76,82,81,72,73,74,74,70,70,69,67,71,63,61,60,51,52,53,58,59,55,48,45,46,50,57,44,37,40,31,39,41,34,40,32,25,27,29,30,23,30,30,23,29,27,27,27,19,17,18,20,16,20,22,13,11,15,12,4,2,3,6,9,7,6,3,-8,-1,11,0,-7,2,-1,-4,-1,-8,-6,-7,-11,-2,-8,-6,-6,-16,-7,-6,-15,-17,-9,-5,-10,-16,-19,-14,-18,-22,-22,-20,-18,-22,-17,-12,-19,-22,-19,-19,-17,-21,-18,-17,-27,-20,-18,-26,-24,-28,-30,-23,-24,-27,-25,-29,-34,-29,-26,-31,-30,-30,-36,-32,-33,-37,-27,-30,-35,-29,-36,-39,-30,-32,-35,-30,-36,-34,-37,-49,-40,-39,-42,-42,-49,-40,-34,-41,-42,-45,-44,-40,-44,-41,-40,-47,-39,-38,-42,-38,-42,-41,-43,-41,-36,-44,-37,-42,-49,-44,-46,-40,-33,-38,-43,-46,-50,-43,-48,-53,-41,-45,-46,-43,-47,-41,-45,-48,-48,-49,-43,-46,-43,-46,-49,-45,-51,-47,-47,-52,-47,-52,-47,-45,-54,-48,-42,-47,-53,-52,-49,-51,-53,-48,-46,-53,-56,-52,-51,-50,-48,-55,-58,-49,-54,-55,-49,-53,-51,-46,-49,-51,-50,-51,-51,-49,-50,-54,-48,-47,-59,-57,-52,-51,-50,-53,-53,-52,-49,-53,-48,-47,-61,-57,-52,-52,-52,-49,-50,-55,-56,-59,-52,-49,-55,-50,-53,-59,-53,-51,-51,-56,-58,-51,-53,-49,-50,-61,-55,-57,-57,-54,-62,-60,-60,-52,-54,-65,-57,-56,-55,-55,-59,-54,-54,-50,-53,-54,-46,-54,-62,-58,-59,-53,-50,-51,-52,-58,-57,-54,-62,-62,-56,-53,-55,-64,-64,-58,-57,-56,-55,-57,-62,-56,-50,-57,-59,-57,-52,-50,-62,-59,-53,-57,-57,-61,-59,-61,-61,-52,-60,-59,-58,-58,-53,-59,-58,-57,-59,-49,-51,-62,-64,-54,-47,-55,-65,-57,-53,-58,-52,-51,-56,-59,-57,-55,-58,-54,-56,-55,-55,-59,-55,-56,-55,-58,-59,-55,-60,-62,-61,-58,-61,-65,-60,-57,-56,-57,-55,-57,-54,-59,-58,-48,-61,-61,-56,-65,-64,-65,-60,-55,-60,-61,-59,-63,-60,-49,-56,-62,-58,-54,-51,-63,-59,-56,-66,-58,-57,-58,-58,-56,-56,-62,-57,-57,-58,-53,-57,-67,-60,-53,-55,-57,-57,-52,-59,-63,-54,-53,-54,-58,-60,-57,-64,-66,-62,-61,-59,-59,-60,-63,-61,-60,-62,-55,-53,-59,-64,-61,-61,-62,-56,-64,-62,-52,-56,-53,-49,-57,-54,-52,-59,-57,-57,-58,-54,-56,-62,-60,-54,-60,-63,-60,-59,-57,-57,-61,-61,-61,-60,-60,-61,-54,-57,-60,-58,-58,-57,-61,-61,-64,-57,-53,-61,-53,-58,-61,-60,-65,-58,-52,-57,-67,-61,-59,-64,-55,-59,-66,-62,-56,-53,-60,-63,-64,-61,-59,-60,-58,-64,-56,-53,-62,-58,-58,-57,-56,-61,-61,-63,-65,-60,-59,-58,-59,-58,-53,-58,-56,-57,-64,-56,-58,-64,-59,-56,-61,-67,-64,-57,-54,-59,-60,-57,-56,-53,-63,-62,-53,-60,-61,-58,-57,-59,-61,-64,-64,-54,-64,-69,-56,-65,-63,-51,-56,-62,-60,-57,-66,-59,-57,-62,-51,-57,-64,-54,-55,-62,-61,-59,-62,-58,-57,-56,-59,-66,-63,-59,-58,-59,-55,-52,-59,-55,-54,-64,-58,-62,-66,-53,-56,-59,-56,-57,-51,-54,-60,-60,-59,-51,-54,-56,-56,-58,-53,-57,-58,-58,-63,-59,-54,-57,-60,-57,-55,-57,-65,-65,-59,-58,-57,-63,-64,-58,-56,-59,-58,-53,-55,-55,-56,-57,-57,-61,-63,-64,-63,-61,-63,-62,-58,-55,-59,-63,-61,-60,-59,-59,-62,-62,-57,-55,-59,-65,-65,-59,-56,-58,-61,-68,-65,-50,-47,-61,-63,-56,-59,-64,-54,-45,-55,-61,-57,-56,-64,-66,-55,-57,-61,-60,-63,-57,-58,-65,-60,-58,-63,-59,-60,-62,-56,-56,-60,-59,-56,-59,-60,-51,-54,-61,-57,-52,-54,-57,-53,-55,-52,-51,-62,-65,-68,-62,-55,-60,-56,-57,-60,-54,-56,-52,-54,-58,-56,-64,-52,-48,-60,-53,-59,-69,-66,-58,-58,-59,-53,-60,-58,-55,-62,-60,-61,-63,-62,-60,-56,-57,-56,-53,-62,-59,-48,-54,-56,-54,-51,-55,-63,-60,-56,-55 ...

    Best Regards,

    Bogdan.

  • Bogdan,

    This is settling, as the results are showing an exponential decay. There are two ways to look at this device.  One is from a DC perspective, and the other from an AC perspective.  Generally this part is not used for measuring DC, and is characterized primarily for AC.  So when you short the inputs, you are looking at the DC performance and it takes time for the device to settle.  At one time I took DC measurements with 1mV steps and had to wait about 30 seconds for the input to settle.  This extended time was partially due to the size of the cap I had at the input, but I want to emphasize that DC settling may take several seconds.  You might improve the response time slightly by using the minimum phase response.

    Best regards,

    Bob B