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.

ADS1148: Circuit Design for 2, 3, or 4 wire RTD or Thermocouple Input

Part Number: ADS1148
Other Parts Discussed in Thread: SN74LVC1G3157, ADS114S06, ADS114S08

Hello,

I have inherited the design below with using the ADS1148 to measure temperature from a "user-selected" 2, 3, or 4 wire RTD, or a thermocouple sensor. The design engineer is no longer around to ask about the thinking behind the design so I am coming here for some clarity. The first Image is the ADS1148 circuit, and the second image is the analog input filter circuit.

For reference, here are the settings we're using for the ADS1148:

IDAC magnitude: 1mA

Data Rate: 20 samples/sec

PGA gain: 1 V/V

IDAC source: IEXC1

R_Bias: 150 Ohm (for RTD inputs) or 47k (for thermocouple inputs), MCU switches between these resistor values.

AVDD: 5 VDC

So with this design there is no connection from IEXC1 to the input measurement or the reference input. So for a 2 wire RTD we must use external jumpers from RTD1_EX+ to RTD1_SENS+ to connect the excitation current source to the input path, and a jumper from RTD1_SENS- to RTD1_EX- to connect the current source to the reference input path. On a 4 wire RTD, we don't need the jumpers. The issue comes in when using a 3 wire RTD with this design/configuration.

I know for a three wire RTD we need two current sources. The ADS1148 tells me to source the current from AIN0 and AIN1 per our application. However, when I do this, I am picking up the 1k-Ohm offset error due to the RC filter on the analog input. This is an issue because a 150 Ohm reference was chosen and a 1k-Ohm plus RTD resistance will give full scale ADC readings because of the offset error. Would this be the correct sources to use for the 2 matching IDAC's for this application? How might I change the hardware or software to support 2, 3, and 4 wire RTD's on the same circuit? Should I be using a larger reference resistor? 2.4k?

Also, I have a question on the analog input filter. We are using 1k-Ohm, 1% tolerance resistors, per instruction from application note SBAA201. However they could be mismatched by up to 10 Ohms, which I believe to be causing some error on the measurements the ADC is getting. The filter is important for the design since the device may be in a noisy enviornment. Would going to a 0.1% or 0.5% tolerance resistor for the filter be recommended?

Thank you for the feedback,

Jonathon D.

  • Jonathon,

    I'm not completely certain of this circuit is put together, but I'll throw out a few comments and you can respond to them.

    First, I think the basic idea of how you want to make a 2-, 3- or 4- wire RTD measurement is something like this:

    The order of the AINx pins are different than yours, but the idea of how you want to measure this is the same. If R202 is your reference resistor, its too small. At 150Ω it means that the maximum RTD resistance would also be 150Ω. An ADC compares the input voltage against a reference voltage. If the reference is 1V, then the largest differential measurement you can make is ±1V. Using a 150Ω reference is out of the question if you want to measure a 1kΩ RTD because the current is the same for both. Start with the largest RTD resistance you expect based on the temperature range, and that will be the minimum you need for the reference resistance.

    Also, this reference resistance must be a precision resistor with high accuracy and low drift because the RTD measurement depends on this reference to be accurate. That also means that any series resistance for the switch is an additional error.

    Another point is that you can measure a 3-wire RTD using only one current source. However, it takes two ADC measurements to complete. Using my diagram above, looking at the 3-wire RTD, make a measurement from AIN1 to AIN2. This measures IDAC1*(RRTD+RLEAD1). Leaving the configuration the same, measure AIN2 to AIN4. This measures IDAC1*(RLEAD3). With low ADC input current, no voltage is dropped across RLEAD2. Assuming RLEAD1=RLEAD3, you can subtract the second measurement from the first measurement. This leaves a measurement of IDAC1*RRTD alone.

    If you have the ADC in gain of 1, and there are no leakages of IDAC1 from the reference resistance, the output of the ADC reports:

    Output code = VIN*2^15/VREF = IDAC1*RRTD*2^15/IDAC1*RREF = RRTD*2^15/RREF

    Again, note that any error in RREF, including the switch resistance becomes a gain error.

    Going to the thermocouple I'm not sure why you need the 47kΩ resistor. If you intend on driving the resistor for a bias that's fine, but you shouldn't use it for the reference. IDAC currents are do not have good absolute accuracy. The internal reference can be used for the measurement. It would be good to lose the switch resistance error.

    As for the filter, you don't need any special resistances. Going to 0.1% or 0.5% won't hurt anything, but it's certainly overkill. As I mentioned through the previous paragraphs, I think you'll be able to make measurements without the error contribution from the filters.

    If you have any other questions on topology of the circuit or other aspects of the RTD measurement, feel free to post back. I'm sure I can help (certainly post back before you finalize your circuit).

    Joseph Wu

  • Hi Joseph,

    Thank you for the feedback. It is very helpful.

    I agree that the 150 Ohm reference resistor is too small. I've purchased some 2.4k Ohm, 0.1% tolerance resistors to use instead. The largest temperature we would be expected to read for our application would be 120C. But we must support both a 100Ohm and 1000Ohm RTD, so I think the 2.4k ohm reference makes more sense than the 150 Ohm that was previously chosen.

    You bring up a good point about the analog switch resistance. We are actually using a TI SPDT analog switch in our circuit (part number: SN74LVC1G3157) and it looks like the on resistance is about 7 Ohms typically. We hadn't factored that gain error into our calculations. I will consider dropping the switch from the circuit since I am already doing a re-design anyway.

    Thank you for the input on the 3 wire RTD using a single IDAC source. To follow up on the info you provided, for the best possible accuracy, would you recommend using a single excitation source and taking two measurements and subtracting out the RLEAD1 (or RLEAD3, assuming they're the same value), or using two excitation sources and swapping/chopping them?

    For your example circuit above, a 2-wire RTD I would measure AIN1(positive) to AIN4(negative) and for a 4-wire I would measure from AIN2(positive) to AIN3(negative). Is this correct?

    I don't quite understand your statement on thermocouples "IDAC currents are do not have good absolute accuracy". But I think I am aligned with you thinking that using the internal reference and getting rid of the switch could be a better option. The thermocouple would attach to the same terminals as a 2-wire RTD and would be measured from AIN1 to AIN4 in your above example. Is this correct?

    Thank you for the feedback on the filtering. I know our current design does not filter the reference at all, but it does filter the input. Would you recommend filtering both the input and reference?

    I will work on updating the circuit and will run the changes by you for confirmation before finalizing.

    Thank you,

    Jonathon D.

  • Jonathon,


    Using a larger reference resistor was necessary. 150Ω was unworkable. Since you are trying to support both PT100 and PT1000, one setup might be more optimal than the other. If your temperature range goes up to 120°C, then the equivalent PT1000 resistance would be 1460.7Ω For the PT100, that's 146.07Ω based on an Omega table that I found.

    Using the RTD's resistance range, based on your expected maximum temperature measured, you could use a 1500Ω reference resistor. For a single 1mA IDAC current, that would get you a nominal reference voltage of 1.5V. Using a PT1000, the PGA gain would be 1, and you would almost maximize the full scale range, giving the most resolution (input voltage = 1.4607V, with 1.5V reference). Using a PT100, the PGA gain could be 8, and while that doesn't maximize the range, it does take up nearly 80% of it (input voltage with gain = 0.146V*8 = 1.168V with reference of 1.5V).

    If you go with the 2400Ω reference resistor, you could use a 750uA IDAC current and maximize the PT100 measurement resolution with a gain of 16 (input voltage with gain = (0.1096*16 = 1.752V with reference of 1.8V). However the PT1000 measurement using 750uA and PGA gain = 1 wouldn't use as much of the full scale (input voltage with gain = 1.096, with reference of 1.8V). It would still work, but you'd lose some resolution.

    Regardless of what reference resistance you choose, take these numbers and verify that over the temperature range, the input voltage is within the range of the PGA. You should also verify that the output voltage of the IDAC source doesn't go too close to the positive rail. Too high of an input voltage would drop the current as the current source loses its output impedance.

    Back to your questions:

    In your case, I would use the single excitation current source and make two measurements to cancel out the lead resistance.

    You are correct about the 2-wire RTD and 4-wire RTD measurements. For the 2-wire, measure from AIN1 and AIN4; for the 4-wire, measure from AIN2 to AIN3.

    In the thermocouple measurement, I wasn't sure what you had planned to use as the reference. For RTDs it makes sense to make a ratiometric measurement. Having a precision resistor, the ADC takes the measurement and the code shows the ratio between the RTD resistance and the reference resistance. There's no conversion to voltage at all. That's why the reference resistance is so important. Your 0.1% reference resistance will be a limiting factor in your gain error (unless you do some calibration for that error).

    However, for the thermocouple, you want a voltage measurement. In that case, you care about the reference voltage accuracy. The original design had a 47kΩ resistance and I didn't know how that was used. If you planned on putting an IDAC current through that and use it as the reference, this would be very inaccurate. The IDAC has an absolute error of ±6%. That makes unsuitable as a reference voltage for the thermocouple. If you used the internal reference voltage, the error would be better, where 10mV on 2.048V is about 0.5%. After that you could use attach the thermocouple to any inputs, as long as you have biasing to establish the DC operating point. You'll need to keep that biasing near the midpoint of the supply voltage, because you're likely to use high gain for the ADC (again you need to check the PGA input range).

    As for the reference filtering, I'm not sure if it's completely necessary. Often, people will just put in the reference capacitor. I'd put in because it would be best practice. Besides you can leave the capacitor unpopulated and use 0Ω resistances if you decide you don't need them.

    One other thing that I'd like to mention is that you can test these configurations with an evaluation module. The ADS1148EVM can be configured to measure inputs in this way. If you do get an ADS1148EVM, note that the software was made during the Windows XP era, and that operation beyond Windows 7 might be problematic. I'd also like to mention that the ADS114S06 and ADS114S08 are considered the next generation of the ADS1148 with improved performance and specifications. There's also an evaluation module for the ADS114S08 available which should work on newer versions of Windows.


    Joseph Wu
  • Hi Joseph,

    Thank you for the detailed and prompt response. It is very helpful to me and I very much appreciate it. I think I am going to use the 2.4k Ohm reference resistor. My thinking: I'd set PGA gain set to 16 (for PT100) or 2 (for PT1000). Leave the IDAC at 1000uA for both PT100 and PT1000. With those settings we would have the Vcm near mid supply and a resolution up to 130C for the PT100 sensor type, and resolution to 500C for PT1000. Which is acceptable per our application.

    Thank you for responding to my questions. I believe you have adequately answered them all. I do have a follow up question on the TC measurement though. So going off of the model circuit you provided. I could configure the ADS to measure the TC from AIN0 to AIN1. I would then configure the VBIAS register to apply a mid-supply bias voltage to AIN0. The gain I would chose would be 32? Or more? I'm guessing the max temperature we would want to measure with the TC would be 600C. Most of our users will use K-type thermocouples. Can you confirm this is the proper approach?

    Thank you for the info on the ADS114S08, but since this is an existing design, I think that I will stick with the ADS1148 for simplicity's sake on the component procurement and software side.

    Here is my proposed updated circuit. I still have to go through and do the component selection for the external low-pass RC filters. Is Application Note SBAA201 a good reference for this exercise? I would appreciate any feedback you may have on the filter component selection and/or the rest of the circuit below:

    Thank you,

    Jonathon D

  • Jonathan,


    If the range of the PT1000 goes up to 500°C then you may need a larger reference resistor. At 500°C on the Omega chart, I think the resistance goes to 280.98Ω for the PT100. Therefore the PT1000 would be 2809.8Ω at that temperature. Again, you won't be able to measure that with only a 2400Ω resistor; the input voltage would be larger than the reference voltage. With a 2400Ω resistor, I think the highest you'll be able to measure with the PT1000 is about 380°C.

    For a K-type thermocouple, at 600C, your voltage will be about 25mV depending on the cold-junction. That would define your maximum input voltage. Using the internal reference, which is 2.048V, you could go as high as a gain of 64. Here, 0.25mV * 64 = 1.6V and a gain of 128 would be larger than the reference. You'd need to set the input to near mid-supply so that the measurement is in the range of the PGA and you can do that with VBIAS. One thing about the VBIAS that I have noticed is that there is a little extra noise using it. I think that it may be the filtering that causes it. Let's say that VBIAS is attached to the ADC negative input AINN. Any noise in VBIAS is seen directly, while AINP gets a filtered version of that noise as the VBIAS works its way through the AINN filtering to the thermocouple and back through the AINP filtering. That difference adds on some noise. It's not a lot, but it is noticeable. I don't recall any numbers on that so I would advise testing it. As it is, thermocouples don't have the best accuracy, so it may not make much of a difference.

    I think SBAA201 is a good reference for those calculations. Generally though, I'd choose a bandwidth of about 20x the data rate and call it good. Read through the app note, but I think it does specifically mention that you want to match the bandwidths of the input filter and the reference filter as best as you can. Note that the series resistance going into REFN0 is a bit of a waste because the node is tied to AVSS.

    Let me know if you have any other questions or have a schematic to review.


    Joseph Wu
  • Joseph,

    380C is far higher than any temperature that we would attempt to measure with this device. So I'm comfortable with that choice of reference resistor. 90% of the applications for our devices we see use PT100 sensors anyways.

    Thank you for the heads up on the noise on the VBIAS, I will have to test that out when I have a prototype of the new design.

    I have a schematic to review. It is attached. Please provide feedback, if you could. Thank you.

    67342_Proposal.pdf

  • Jonathon,


    I think the schematic looks fine and I don't have too many comments for it. The VREFOUT capacitor is 10uF right now. If you plan on keeping the internal reference on all the time that's fine. However, if you plan on turning it on and shutting it off repeatedly, you might want to consider lowering it. It takes time to fill and deplete the charge each time the internal reference is turned on and off.

    Also, right now, you have AIN0 to AIN3 bundled together and AIN4-AIN7 bundled together. You might want to change that so that AIN0, AIN1, AIN4, and AIN5 are together while AIN3, AIN2, AIN7, and AIN6 are together. The layout might be easier because those sets of pins are to the left and right of the device.

    Other than that, you can look at the ADS1148EVM. Most times, we consider the EVMs to be reference designs. On that particular EVM, there's some odd circuitry used to accomodate a 0-5V supply and a split ±2.5V supply. However, the rest of the layout and circuitry should be clean. You should download the ADS1148EVM User Guide and look over the schematic and layout.


    Joseph Wu
  • Joseph,

    I've made a few changes to the proposed circuit. See attached. I chose a 1kOhm resistor for the filter, over-voltage isn’t a major concern. We are using 20 samples per second as our data rate, so the modulator rate is 32kHz. Therefore, the corner frequency to use in the Cdiff calculation would be 3.2kHz. The resultant Cdiff value I am getting is ~0.024uF. This is assuming a 150 Ohm RRTD (Since most of the time PT100 RTD’s are used). Then choosing a common-mode resistance value of 2400 pF. I am choosing to just use 10uF of bulk capacitance at the reference input, but am going to reserve some space if we decide to put an RC filter on the reference input later.

    Also, I’ve added 100 Ohms of series resistance to the IEXCx lines, for over-voltage protection. Which aligns with the ADS1148EVM reference design.

    I should also point out that we are using a ferrite bead (L800, L801 on schematic) in series with the termination point, for EMC filtering. See photo below… Will this cause any issues (inaccuracy) to the temperature measurements we take?

    Please let me know if you have any further comments to add.2134.67342_Proposal.pdf

    Thank you,

    Jonathon Dahl

  • Jonathon,


    The values seem reasonable. The filter resistances and capacitances should be fine for your application and the added 100Ω resistances for the excitation current won't add much voltage to the stack of resistors used in the measurement.

    As for the ferrite beads, I've seen others use them with good results. However, I generally discourage their use. The ADC inputs are being capacitively sampled at the modulator rate. In your case every 31ms, there is a spike of current where the input voltage is sampled onto a small capacitor. A series inductance tries to suppress current spikes, but that generally not what you want when the capacitance is supposed to fill up and charge to the final value. I would note that these inductances probably aren't large enough to be a problem.


    Joseph Wu