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.

ADS1248: Neighboring channel offset issue when using resistors to +/- 2.5V rails for bias and burnout detection

Part Number: ADS1248

My design is to digitize data from 4 thermocouples with a conversion rate that can be changed between a slow rate and a faster one of at least 40 SPS.  The design must also provide burnout detection.

AVDD=2.5V, AVSS=-2.5V and PGA gain is x16 (+/- 128 mV).  The inputs are as described for the thermocouple input on page 83 of the datasheet (Figure 120).  10M bias resistors are used between the + input and 2.5V as well as the negative input and -2.5V to facilitate both burn out detection as well as to provide the needed bias.  The values for the input filter are 1K, 680pF and .1uF for CDIFF.  Continuous conversion mode is in use with one of the following MUX0 output data groups repeating on 4 successive 32b data shifts: 400008FF 40001AFF 40002CFF 40003EFF.  BCS and VBIAS are both off.  Internal reference is used.

When running at 5 SPS (1.25 SPS each channel), operation is as expected.  Similar results are obtained at 10 SPS and 20 SPS.  When running at 40 SPS, digitized data for a channel that follows an open channel (showing full scale positive data) is offset in the positive direction by 18 uV, or 93 uV if the data rate is 320.  If the voltage on the previous channel is only between 150 mV and 200 mV (overrange positive), the output is noisy, bouncing between the correct reading and the reading with the offset.

If I were to remove the 10M resistors, use VBIAS on all 8 input pins and then use BCS only when burnout detection is really required, would that be a solution?

Would enabling VBIAS on negative inputs, then using the IDAC to generate 50 uA across a 2.74K resistor and using 10M resistors from that point to the positive inputs be an option?

Are there other options to consider?

Thanks,

Chris

  • Chris,


    First, I'll restate your problem just to make sure I understand it, I'll then go on to discuss what I think might be going on.

    I'd prefer to see a schematic, but it looks you use the ADS1248 with four thermocouples, measuring AIN0/AIN1, AIN2/AIN3, etc. Then you cycle through each of the four measurements. In both cases that you mention, you over-range the input (1) one with an open channel, and the other (2) with a slightly lesser voltage of 150 to 200mV. You see unexpected values in the data after the reading with the over-ranged input

    In case 1, you get a positive offset in the subsequent reading, which appears to vary with the data rate. In case 2 you get a noisy output which bounces between the correct reading and the reading with the offset.

    I'm not sure where this problem comes from, but I think you're correct to look at the over-range effect. I think that the PGA should be moderately quick to recover. In previous testing, I believe that the approximate recovery time should have been between 1-2ms, While this isn't as long as the data period of 320SPS (~3ms), you may need to insert this time between your readings to make sure the PGA is settled as the measurement is being taken. You would need to set the input multiplexer first (so that the PGA measures something in range) and then insert the delay before starting the next conversion. You could even force the ADC inputs to VBIAS first to quickly get the inputs ready for a measurement in the input range.

    In case 2, where you get an noisy output reading, bouncing between the correct reading and the reading with the offset, can you be a bit more descriptive? I don't really have a grasp of what's going on for this case. Do you have a collection of data for this one that I can review?

    As for your solutions, I'm not sure that they would help for this subsequent channel read problem. Ideally, you could remove the 10M resistors, and attach negative ends all to VBIAS and make the measurement, and then add in the BCS when testing for the burnout. This should be the same. Instead of VBIAS, you could even have tied the negative inputs to VREFOUT, or even to GND (because you're using bipolar supplies). I don't know if these changes really address the issue.

    Another thing you could check is to cycle through the channels at the high data rate, but take three readings at each channel before moving on. This would allow you to see if the data on the channel after an open circuit does settle after the first reading.

    Regardless, let me know what you think about my comments and see if you can implement a couple of tests.


    Joseph Wu