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.

ADS1220: Burn-out current source disables after 550us

Part Number: ADS1220
Other Parts Discussed in Thread: ADS1248

Hi,

We are doing a redesign were will be using the ADS1220 for temperature measurement using type K thermocouples. We use the 10uA burn-out current sources to detect broken sensors, the BCS should be disabled for 1ms after each readout, 19 cycles later this should clip the ADC. But we where not seeing this, upon inspection with our diff probe amp and scope it shows that the current source disables itself after 550us.

Some background:

We have 32 inputs, sets of 4 are muxed by an 74HC4052, these 3 are then muxed by another 74HC4052 and fed to a ADS1220 (we have 3 of them) on channel 1, channel 2 is used for cold junction measurement.

(the reason of the second mux is because the original design used an 8ch ADC).

Our input circuit:

The ADC:

Upon inspecting the input signal when the TC is shorted we can see that the BCS is enabled for 550us and than shuts down. For debug purposes we fooled around with the time that the BCS is enabled, but we concluded that it will always disable after 550us, shorter is possible though. The green trace is the moment that the MCU enables the BCS (in this case it should have been 630us (as i stated above our target was 1ms but we changed this for debug purposes).

To make sure our FW on the MCU was not to blame I also had a look with a logic analyzer.

Now what bothers me is the DRDY line going low, roughly at the moment we see our BCS disable, could this be a coincidence? The ADC's are in single shot so I would not expect the data ready to change.

Any help is greatly appreciated.

Cheers,

Daan

  • Hi Daan,

    Welcome to the E2E forum!  It appears that you are collecting the logic data with a Saleae.  Is it possible for you to save and attach the .sal file to the thread?  Can you also send me the configuration register settings being used?

    Writing the configuration will restart an ongoing conversion.  If when in the low-power state (not converting) and in single-shot mode, anytime a new configuration is written to the register a new conversion will start (one conversion and then back to the low-power state).  This is mentioned in section 8.4.1 of the datasheet.  The timing would fit if the device is in turbo-mode at 2ksps and the conversion started when the BCS are turned on.  Once the conversion completes the analog will go to a low-power state.  If you send another START/SYNC command while the BCS bit is set, then you should see the BCS current back on for the next conversion period.  The BCS and IDAC current work differently.  In the case of the IDACs, these current sources will stay on unless a POWERDOWN command is issued.

    As was just referenced another possible mechanism that can shut down the BCS at the end of a conversion is if the POWERDOWN command was inadvertently issued.  I can't tell specifically what is being transmitted to the ADS1220 which is why it would be helpful to see the .sal file.  The way the POWERDOWN command works is if the ADS1220 is converting, and the POWERDOWN command is issued, the ADC will continue to convert until it has completed the conversion.  At this point the ADC will shut down the analog (see section 8.4.3.4 on page 33 of the ADS1220 datasheet.)

    Best regards,

    Bob B

  • Hi Bob,

    Thanks for the reply, of course I can share the .sal file. I'm waiting on my colleauge for the complete set of configuration register settings. 

    Capture SPI ADS1220_02.zip

  • Hi Bob,

    I am working together with Daan on this issue.

    The configuration is default except for the CFG0 and CFG1:

    CFG0:

     * Channel 0x00 or 0x50

     * Gain: 64 on channel 0x00 and  Gain 1 on channel x050

    CFG1:

    * Data Rate 2000 (0xC0)

    * Mode Turbo (0x10)

    * Temperature mode off (0x00)

    * Conversion mode: single(0x00)

    * Burnout Current Source off 0x00 or on 0x01.

    We just changed the configuration to continuous conversion mode when enabling the BCS. This seems to keep the BCS enabled for the desired time.

    Thanks for the help!

  • Hi Daan,

    Hi Johan,

    The Saleae plot showed me exactly what was going on.  When the BCS bit is set, the conversion starts at that point for one conversion period and then goes to the low-power state.  This is how the device operates and is expected.  When entering the low-power state the analog is powered down turning off the BCS.

    In the sequence of events I did notice that once the BCS bit was sent (setting register 1 to 0xD1), the next action was to turn off the BCS (by setting register 1 to 0xD0).  There was not a START command ever issued and no RDATA  to capture the conversion result.  So it is not clear what the intention is when setting the BCS to on.  When turning on the BCS you need a conversion cycle to determine the outcome.

    So the proper action might be to turn in continuous mode and read the conversion data as you are now doing.  Another option would be to do as you were doing for the normal conversion period and that is to issue the START command after you issue the register write (0x44 0xD1).  Once the conversion completes you can read the conversion result with the BCS on.

    So what I see in the plot is:

    • 0x44 0xD0 (write register 1 BCS is off)
    • 0x08 (START/SYNC)
    • wait for DRDY to go low
    • 0x10 0xFF 0xFF 0xFF (RDATA command)
    • 0x44 0xD1 (write register 1 BCS is on)
    • wait for DRDY to go low
    • 0x44 0xD0 (write register 1 BCS is off) Conversion result is not read.....
    • 0x08 (START/SYNC)
    • wait for DRDY to go low
    • 0x10 0xFF 0xFF 0xFF (RDATA command)
    • etc....

    Here is what I think should be happening when using single-shot mode:

    • 0x44 0xD0 (write register 1 BCS is off)
    • 0x08 (START/SYNC)
    • wait for DRDY to go low
    • 0x10 0xFF 0xFF 0xFF (RDATA command)
    • 0x44 0xD1 (write register 1 BCS is on)
    • (here you should send START/SYNC  to be consistent)
    • wait for DRDY to go low
    • (here you should send RDATA to capture result with BCS on)
    • 0x44 0xD0 (write register 1 BCS is off)
    • 0x08 (START/SYNC)
    • wait for DRDY to go low
    • 0x10 0xFF 0xFF 0xFF (RDATA command)
    • etc....

    Best regards,

    Bob B

  • Hi Bob,

    Thanks for your view. The steps that we normally do are:

    1. Do a conversion
    2. Enable BCS for 1ms
    3. Switch to next channel (with the muxes in front of the ADC)
    4. repeat steps 1-3 for all TC channel

    This is repeated every 80ms, this way a broken TC should saturate the ADC after 19 cycles. 

    The previous design used the ADS1248 in roughly the same configuration but the ADS1248does not start a conversion after updating the configuration registers. Johan did the changes to put the ADS1220 in continuous mode before enabling the BCS and when we disable the BCS its put back to single shot.

    Thank you once again to pointing us to the fact that the ADS1220 goes to sleep after a conversion and starts a conversion after we enabled the ADS1220. 

  • Hi Daan,

    Thanks for the additional clarification.  The ADS1248 and ADS1220 are quite different devices with respect to power of the analog domain.  So the correct procedure for using the BCS through an external mux is as you are doing by placing the ADS1220 into continuous conversion mode while the BCS is turned on.

    Best regards,

    Bob B