 Mark as New
 Bookmark
 Subscribe
 Mute
 Subscribe to RSS Feed
 Permalink
 Report Inappropriate Content
Dear all,
I have a board based on PSOC5 which is able to measure up to 3 RTDs temperature sensors. Please find attached the block diagram for the temperature sensors and the schematic for one of them.
This schematic is based on C8CKIT025 evaluation kit of Cypress ( I attached the CY8CKIT025_User_Guide for easy access), and in particular in pag 27/86. In summary, the working procedure is as follow: there is an IDAC to supply current (1mA) to a calibration resistor, and measure the voltage drop on this (100 ohm) reference resistor through a MUX and the ADC. Then, the same IDAC supply current to the Rrtd (the sensor) and then measure the voltage drop of such sensor. The difference of the voltage give us the temperature.
Passing the CE marked test in a certification laboratory, it was necessary to add 100 serial resistor to all the input to the PSOC when 4KV discharge was done on a plane 1 mm below the board (ESD test) because the PSOC reset. So now I am testing the effect to add such resistor in the board.
I cant not test this but I dont see any problem to add 100 ohms serial resistor in the PT100_P and PT100_N signals because they end in the ADC so they are high impedance signals. do you agree?
On the other hand, what I can test is the behavior when I change R165 and R142 to 100 Ohms.When I do these changes, the temperature seems to go 23ºC below the real temperature and I dont understand why, because what I am measure is the voltage drop in the sensor resistor so these changes shouldnt affect. Does anyone can tell me the reason? Is not the IDAC strong enough to supply 1mA to the sensor with this new resistor values?
If you need further details please do not hesitate to ask me.
Any comment will be wellcome.
Thanks in advance,
Joaquin.
Solved! Go to Solution.
 Labels:

PSoC 5 Architecture

PSoC 5LP
 Mark as New
 Bookmark
 Subscribe
 Mute
 Subscribe to RSS Feed
 Permalink
 Report Inappropriate Content
Joaquin,
Simplifying your circuit by making the caps and transient suppression as inconsequential, I've provided a simulation schematic below that has been run in DC operation point mode. You can see the difference between the PT100_P and PT100_N values in either case are still 100mV. Therefore, in theory you are correct. There should be no change in reading. However, this assumes ideal components.
For example:
 The IDAC although an excellent component may put out a slightly different current when requested to push out 120mV compared to the 300mV. That slight difference might account for the temp variation. I'm assuming you are using an ADC in differential mode (The Best Mode Ever!). I'm also assuming you are using the equation Rpt100 = IDAC_set_point * Vadc where Rpt100 is the calculated resistance of the PT100 component, IDAC_set_point = 1000uA and Vadc is the voltage determined by the ADC for the PT100_P  PT100_N. The only practical way to correct the IDAC is to read the differential voltage across a reference resistor such as 100 ohm R165. With this reference reading, you can determine a more accurate IDAC_set_point for the equation above. Note: Your readings are only as accurate as your references. Therefore a 100 ohm +/ 1% reference resistor is only at best +/ 1 % accurate. This effects the IDAC_set_point measurement.
 Make sure you are only turning on the IDAC for only as long as you need it for making the reading. There are selfheating thermal effects with temp sensors that can accumulate relatively quickly. For example, a PT100 @ 100 ohm with 1mA drive current is trying to dump 100uW into the air. This might not be significant but given that the PT100 sensor has a positive temp coefficient, this will appear to have a slightly higher temp. This effects the Vadc measurement.
If you do switch the IDAC on, make sure that you have sufficient delay before taking the reading. You have significant caps in the circuit (100nF) that with the additional resistance of R165 and R142 mean the RC (tau) is higher. It will take a little longer to stabilize.  Are you using 3 IDACs for each of the 3 sensors or are you muxing a single IDAC to each of the sensors? Muxing a single IDAC might be practical but depending on the Analog paths chosen, you might be adding 500 ohms in series to the current drive source path.
 It appears you are using a connector for the PT100 sensor. Does the connector use goldplated contacts? With a PT100 sensor, the resistance = 84 ohms @ 40C and 131 ohms @ 80C. Goldplated contacts can normally add about 0.01 ohms but tinplated contacts can be as high as 0.5 ohms. A 0.5 ohm variation can provide a +1C reading offset. This effects the Vadc measurement.
 Even if you can control the above potential issues, I'd advise a calibration compensation of the ADC for gain and offset. This effects the Vadc measurement.
Len
"Engineering is an art. The art of compromise"
"Engineering is an Art. The Art of Compromise."
 Mark as New
 Bookmark
 Subscribe
 Mute
 Subscribe to RSS Feed
 Permalink
 Report Inappropriate Content
Joaquin,
Simplifying your circuit by making the caps and transient suppression as inconsequential, I've provided a simulation schematic below that has been run in DC operation point mode. You can see the difference between the PT100_P and PT100_N values in either case are still 100mV. Therefore, in theory you are correct. There should be no change in reading. However, this assumes ideal components.
For example:
 The IDAC although an excellent component may put out a slightly different current when requested to push out 120mV compared to the 300mV. That slight difference might account for the temp variation. I'm assuming you are using an ADC in differential mode (The Best Mode Ever!). I'm also assuming you are using the equation Rpt100 = IDAC_set_point * Vadc where Rpt100 is the calculated resistance of the PT100 component, IDAC_set_point = 1000uA and Vadc is the voltage determined by the ADC for the PT100_P  PT100_N. The only practical way to correct the IDAC is to read the differential voltage across a reference resistor such as 100 ohm R165. With this reference reading, you can determine a more accurate IDAC_set_point for the equation above. Note: Your readings are only as accurate as your references. Therefore a 100 ohm +/ 1% reference resistor is only at best +/ 1 % accurate. This effects the IDAC_set_point measurement.
 Make sure you are only turning on the IDAC for only as long as you need it for making the reading. There are selfheating thermal effects with temp sensors that can accumulate relatively quickly. For example, a PT100 @ 100 ohm with 1mA drive current is trying to dump 100uW into the air. This might not be significant but given that the PT100 sensor has a positive temp coefficient, this will appear to have a slightly higher temp. This effects the Vadc measurement.
If you do switch the IDAC on, make sure that you have sufficient delay before taking the reading. You have significant caps in the circuit (100nF) that with the additional resistance of R165 and R142 mean the RC (tau) is higher. It will take a little longer to stabilize.  Are you using 3 IDACs for each of the 3 sensors or are you muxing a single IDAC to each of the sensors? Muxing a single IDAC might be practical but depending on the Analog paths chosen, you might be adding 500 ohms in series to the current drive source path.
 It appears you are using a connector for the PT100 sensor. Does the connector use goldplated contacts? With a PT100 sensor, the resistance = 84 ohms @ 40C and 131 ohms @ 80C. Goldplated contacts can normally add about 0.01 ohms but tinplated contacts can be as high as 0.5 ohms. A 0.5 ohm variation can provide a +1C reading offset. This effects the Vadc measurement.
 Even if you can control the above potential issues, I'd advise a calibration compensation of the ADC for gain and offset. This effects the Vadc measurement.
Len
"Engineering is an art. The art of compromise"
"Engineering is an Art. The Art of Compromise."
 Mark as New
 Bookmark
 Subscribe
 Mute
 Subscribe to RSS Feed
 Permalink
 Report Inappropriate Content
Hi Lepo,
Thank you very much for your answer, very complete and interesting.
We are using only one IDAC and a mux to change between calibration resistor and sensors. We are usign an ADC in differential mode.
After you comment, we will reduce de capacitors in the lines to 1nF, and add 100 ohms resistors with 0,1% precision.
We will check in firnware if we are turning off the IDAC to avoid sensors self heating.
We can not change connectors and they are not gold plated, but I think the above small modification we should get a nice temperature.
Again, thank you very much for your support!
Regards,
Joaquin
 Mark as New
 Bookmark
 Subscribe
 Mute
 Subscribe to RSS Feed
 Permalink
 Report Inappropriate Content
Joaquin,
I'm glad I could help.
The smaller caps across the transient components are better. The transient components have a minimum response time (usually measured as time to reverse recovery = trr). The smaller caps (preferably as a MLCC) can react faster to make up for the relative slowness of the transient suppressors.
I do recommend performing a differential ADC measurement across a series reference resistor coming out of the IDAC. This is can be used to compensate for the IDAC set current not being EXACTLY what is expected.
There are other ways to nullify the ADC offset error because you are using the IDAC. But that's for another day. Another design.
Len
"Engineering is an Art. The Art of Compromise."