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 Reset

Other Parts Discussed in Thread: ADS1282

I have had no problem communicating with ADS1282 and the data is as it should.

I am using Read by command mode about 10 times a second I issue A Read command for 32 data which I average out.

The tests can run anywhere from 4 minutes to 72 hours.

Here is the problem once in a while DRDY fails to go low and the part locks up.(It can run with no problem for days)

I have been unable to ascertain the problem so far.

Here is the setup

fclk = 4.096Mhz

sclk = 2.4us

Samples per second = 1000

gain = 1.5

sync is not used

After re-reading the spec I realized that I was not waiting long enough after a reset, the last register change and my next read..

Also the specifications are not quite clear if "reset" also resets the SPI communication fully all the time.(qualified with a maybe)

Questions:

1. if I pull the Reset Pin low and then wait 63millisecond will this always reset the chip fully including SPI?

2. If "reset" does not guarantie  SPI reset can I switch between RDATAC and SDATAC without incurring another time penalty?

   This is so that before waiting for 63 millisecond after a reset  I can issue an RDATAC and at the end of the wait I can switch back to SDATAC which should also reset the SPI.

3. Writing to ANY register do I have to wait 64 millisecond(at 1000SPS before a Read.) before any read.

Here is my current reset

   adsRESET = 0;                        // reset AD
   SmallDelay(100);                     // need to hold for 2/f where f = 4.096Mhz this should be more then plenty
   adsRESET = 1;                        // allow operation

   AdsWriteByte(SDATAC);                            // disable continous read
   SaveOffsetCalibration(0);                         // set offset to zero
   SaveGainCalibration(ADSGain);             // set gain to 1.5 or programmed gain
   AdsWriteToRegister(CONFIG0,0x52);    // Pulse sync,High res,1ms,Linear phase sync+LPF filter 1000data samples
  // AdsWriteToRegister(CONFIG0,0x62);  // Pulse sync,High res,1ms,Linear phase sync+LPF filter 4000data samples
   AdsWriteToRegister(CONFIG1,0x08);    // Mux 0,chop,gain1
   delay(64);                                                     //after a reset it would take this long for data to be available

gus santangelo

Laser Technology Inc.

  • Gus,


    A toggle of the RESET will reset everything back to default, including the SPI communication. The SPI should be available after the reset, even though the ADC doesn't put out a /DRDY for 63ms.

    Even if RESET didn't reset SPI, you should be able to switch between RDATAC and SDATAC without a time penalty. This doesn't stop or restart conversions, it only stops data from being put out on the DOUT register for each completed conversion.

    The datasheet says that a register write operation will reset the ADC and the 63 /DRDY count. This is similar to a SYNC and and a reset of the ADC read. I looked through some older documentation and it implies that this is only for CONFIG0 and CONFIG1. I'll see if I can pull the design and confirm it either way, but I would still say any a write of any register could extend ADC read.


    Joseph Wu
  • Joseph,
    thanks for the quick response. let me see if I understand.
    1. RESET pin low will reset everything . If I want the data I need to wait 63ms for the first DRDY.
    2. Switching between RDATAC and SDATAC does not affect conversion. In RDATAC mode data will be available at each DRDY low continously and in SDATAC I need to issue a READ command and then wait for DRDY low.

    In case of an error(failed DRDY low) I can guaranties a RESET of both SPI and register as follows
    1. Issue a quick RESET then set SDATAC followed by an initialize registers
    2 Initialize registers as needed.
    3. Issue an RDATAC.
    4. Wait 63ms
    5. Issue SDATAC
    6. Data should be available after a READ command

    This would mean I would have lost one data set but since the signal is slow varying I can essentially ignore the problem and
    I LOCKUP should be a thing of the past.

    Writing to RDATAC and SDATAC should not affect conversion but writing to any other register will.

    gus santangelo
  • Gus,


    Points 1 and 2 are correct. The RESET pin resets everything and switching from RDATAC and SDATAC do not affect the conversion.

    One thing about your sequence though. If you are not using RDATAC mode, you can just issue the SDATAC command once and leave it without ever issuing the RDATAC command. The ADC continues conversion and you can still get the data, you just need to issue an RDATA command to get the data.


    Joseph Wu