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.

ADS124S08: Issue with noise performance between REF0 and REF1 when reading RTDs

Part Number: ADS124S08

Tool/software:

Hello,

 

Me and my team are currently working on a product that reads out multiple RTDs (PT1000) in a sensor array. Our target accuracy is to measure steps of 10mK at a rate of 10 samples per second. We use 2 input channels on the ADS124S08 with a 4 wire configuration. Each input channel has a set of multiplexers connected that shift through a series of 16 RTDs.

For this reason we can only measure in single shot conversion mode and we need at least 400SPS to read out all sensors 10 times per second.

Each of the 2 channels is configured with its own reference resistor (0.01% accuracy) .

Multiple copies of this circuit are used on the same board to read out several hundreds of sensors at once.

 

We’re very pleased to see that the noise performance on all RTDs connected to REF1 is within the expected range. However all sensors connected to REF0 are doing much worse.

Settings for each channel are set up identically.

Figure shows 8x sensor connected to REF1 (Left) vs REF0 (Right)

When swapping sensors but keeping everything else the same the problem remains on the channel that uses REF0. 

Component values for each circuit are identical and the board layout is set up symmetrically as much as possible. There where it is not possible to use a symmetrical layout the traces of the REF1 circuit are all longer.

Registers set to configure the ADC.

Register value CH1

Note IC1

Register value CH2

Note IC2

General note

ID

0x08

 

0x08

 

 

STATUS

0x80

 

0x80

 

INPMUX

0x12

MUXN = AIN1
MUXP = AIN2

0x34

MUXN = AIN3
MUXP = AIN4

 

PGA

0x68

 

0x68

 

256 * tMOD
PGA enabled
PGA gain = 1

DATARATE

0x39

 

0x39

 

Low-latency filter
Single-shot conversion mode
400SPS

REF

0x15

REFP1, REFN1

0x11

REFP0, REFN0

REFP_BUF enabled
REFN_BUF disabled
Internal reference on, but powers down in power down mode

IDACCMAG

0x45

 

0x45

 

PSW closed
500 muA

IDACMUX

0x0C

 

0x0C

 

I1MUX = AINCOM
I2MUX = AIN0

VBIAS

0x00

 

0x00

 

 

SYS

0x10

 

0x10

 

 

OFCAL0

0x00

 

0x00

 

 

OFCAL1

0x00

 

0x00

 

 

OFCAL2

0x00

 

0x00

 

 

FSCAL0

0x00

 

0x00

 

 

FSCAL1

0x00

 

0x00

 

 

FSCAL2

0x40

 

0x40

 

 

GPIODAT

0x00

 

0x00

 

 

GPIOCON

0x00

 

0x00

 

 

 

The design is based on application notes sbaa275a and sbaa201a and the IC is connected as follows:

 

We do not understand the big difference in noise performance between the two channels. Since all of the hardware is identical and all the settings are triple checked at this point I don’t know where to look anymore to explain the difference.

Can anyone point us in the right direction?

 

Kind regards,

Berrie

  • Hi Berrie Dirks,

    Can you try disabling (opening) the powerdown switch that is connected to REFN0? It serves no purpose to be closed since you have REFN0 connected directly to ground anyway. This is the only difference I see in your circuit compared to REFx1

    -Bryan

  • Hello Bryan,

    We've ran some tests with the powerdown switch open but there seem to be no change in the results so this does not solve the issue.

    Is there any more information we can provide that would help troubleshooting this issue?

    Kind regards,

    Berrie

  • Hi Berrie Dirks,

    It is a holiday here in the US, we will get back to you next week. Thanks for your patience

    -Bryan

  • Hi Berrie Dirks,

    How are the IDACs connected to the RTDs? You show AIN0 and AINCOM in your register map settings, but these are not connected to anything in your schematic (maybe you purposely cut these off from the image you sent?). You also mentioned muxes. Can you send the complete schematic?

    If you bypass the mux and measure an RTD directly, while also using REFP0/REFN0 as the reference source, do you see a difference in performance?

    If you reduce the IDAC current magnitude, do you see any difference?

    What is the voltage magnitude of the error you are seeing? You only show the plot with respect to temperature and resistance, but it would be interesting to know what the actual voltage error is

    Also what is approximate resistance of the RTD you are measuring? It that 200ohm as shown in your plots?

    What is the plot actually showing? Is each signal a separate RTD? If so, how many measurements are being taken per channel in that image? It would help to explain in detail what info you are actually providing

    -Bryan

  • Hello Bryan,

    How are the IDACs connected to the RTDs? You show AIN0 and AINCOM in your register map settings, but these are not connected to anything in your schematic (maybe you purposely cut these off from the image you sent?). You also mentioned muxes. Can you send the complete schematic?

    I did indeed remove some parts from the schematic because I thought they would be irrelevant to the problem. I think I cropped out too much. Here's the complete circuit, AINCOM and AIN0 are configured as current source.

    If you bypass the mux and measure an RTD directly, while also using REFP0/REFN0 as the reference source, do you see a difference in performance?

    We have 8x the circuit above on a single board and we have one separate ADS124S08 with two PT1000 sensors connected directly. All pins used are equal in this circuit but no muxes are present.

    On this 9th ADC we see the exact same problem where noise is higher when REFP/N0 is used, so I do not believe that the problem lies within the muxes or in the switching between sensors. Here's a short measurement of 2 sensors connected directly to the ADC. The sensors are hanging in free air.  On sensor 1 you can clearly see if someone is standing close the temperature goes up but in the 2nd picture the noise is dominant.

    Also what is approximate resistance of the RTD you are measuring? It that 200ohm as shown in your plots?

    Sensors are all PT1000's with a base resistance of 1000 Ohms but we intend to use it between 20C and 350C (~1100-2200 Ohms)

    What is the plot actually showing? Is each signal a separate RTD? If so, how many measurements are being taken per channel in that image? It would help to explain in detail what info you are actually providing

    I think you've misinterpreted the plot from the first post (I should have labelled the axes). It is showing temperature over time and not temperature vs resistance. Our temperature sensor array is on a different board and we interface between the two with flexcables. Each cable has enough traces for 8 sensors. The image is showing the 8 sensors on the left and 8 on the right, each set having its own cable. The figure was just to illustrate there's a pattern. We tried swapping the cables but the noisy channels are always linked to REFP/N0 channel on all ADCs on the board.

    So far we've only had the hardware to heat up to 120C but over this entire temperature range (20-120C) we see no change in noise performance.

    If you reduce the IDAC current magnitude, do you see any difference?

    What is the voltage magnitude of the error you are seeing? You only show the plot with respect to temperature and resistance, but it would be interesting to know what the actual voltage error is

    Looking at the included figure the top picture the error sits around 20uVpp and the bottom picture at the same time sits at 460uVpp. We did not run a test yet with reduced current on the IDAC so that will be our next test which is currently planned for Tuesday.

    I hope this additional information clarifies a little.

    Looking forward to your answer.

    Kind regards,

    Berrie

  • Hi Berrie Dirks,

    Thanks for providing all of this additional information

    How are you taking the data that you show in the plots? For example, on the 9th ADC that does not use any external muxes where you have two RTDs connected, are you taking one measurement on Ch1, then one measurement on Ch2, then Ch1, then, Ch2, and so on, for 5+ minutes? Or are you sampling Ch1 for many samples in a row, then Ch2? Since you show you are single-shot mode I am guessing the first method, but I just want to confirm. If you are ping-ponging between channels, can you just take data on one channel for a few minutes, then take data on the other channel for a few minutes, and see if the behavior changes?

    In the "Heater PT1000" plots you sent in your last post, are those RTDs supposed to be measuring the same temperature? You said they were hanging in free air and they are on the same board, so I assume that means they are very close to each other, but It looks like #1 is ~20C, while #2 is ~23C. Can you confirm? If so, is this within the tolerance of the RTD e.g. +/-3C, or is there also an offset associated with the measurements themselves (in addition to the noise)?

    Can you try similar tests using a 1kohm resistor instead of a real RTD, to see if you still get noise on the VREF inputs?

    Have you measured the ADC input and reference voltages with a scope to see if the fluctuations you are measuring on the output are actually present on the input?

    Is there any possibility that the REFP0/REFN0 circuit on the layout is physically close to something that would give off heat e.g. an LDO, or something with switching noise e.g. charge pump, that might influence that specific reference resistor and not the one at REFP1/REFN1?

    There is no fundamental difference between the two REFx circuits internal to the ADC, so there is no obvious reason why this would occur. I am just suggesting some troubleshooting steps to see if we can understand or change the behavior in any way

    -Bryan

  • Hello Bryan,

    Thanks for all the debugging steps, we've used many of them. There are indeed large differences between the sensors but this is because of problems that are known and understood to us. After the required reworks these issues are all resolved.

    After a long time of debugging and double checking we've finally figured out what was causing the issue with the noise. Luckily it was not hardware related. It turned out to be a configuration issue. We did check all the values that we were writing to the ADC but not where they ended up.

    When writing the configuration to the ADC we set all registers but the second to last one. The data that was supposed to be written to the last register was written to the one before that.

    Our software engineer thought the was writing to registers STATUS through SYS skipping VBIAS. However the values for SYS ended up in VBIAS instead. The value intended for SYS was 00010000  which turned on VBIAS for AIN4.

    Both channels on all ADCs (muxes or not) can now sample temperature within a 10mK range 10 times per second.

    Thank you so much for your help!

    Kind regards,

    Berrie