Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

PSoC™ 5, 3 & 1 Forum Discussions

Level 5
Level 5

Hi there

Please see attached schematic

I'm trying  to protect the 8 analog inputs from ESD.

Beside using Schottky  diodes  I am wandering about the error on the reading on any of those thermistor

voltage. in the case of using 100 Ohm resistors in series with each input.

Some suggestion to avoid that?

Thank you.

4 Replies
Level 9
Level 9
500 solutions authored 1000 replies posted 750 replies posted


I'm confused by your schematic.  It appears you have one reference resistor (Rref) and 8 Thermistors (RL1 - RL8) all in series.

If true,  I'm not sure that your design is practical if your intent is to determine the temp of each Thermistor.

I recommend to look at the circuit shown below.  This uses a shared power feed to the top of all R_refs.  All you have to do to read each thermistor is the following sequence:

  1. Turn on the GND for the thermistor circuit you want to measure (ie Pin_GND_SW_Write(b1111110) to GND the first channel; Pin_GND_SW_Write(b1111101) to GND the second channel, etc)  Setting a bit to '0' GNDs one channel at a time.  I recommend that you only GND one channel at a time to minimize the loading effects.
  2. Switch the AmuxSeq1 to channel 0 to the Vdd power feed.
  3. MeasureThe Vdd power feed voltage = Vdd_meas
  4. Switch the AmuxSeq1 to channel 1 to measure the voltage between the R_ref and the RL of that channel.
  5. Measure the voltage =  V_term
  6. Turn off GND on channel for Pin_GND_SW (ie Pin_GND_SW_Write(b11111111).  All GNDs are turned off.
  7. The ADC_DelSig_1 is single-ended so it is referenced to Vss.
  8. V_ref  = Vdd_meas - V_therm
  9. Use V_ref and V_therm in the Thermistor calculator component APIs
  10. Repeat steps 1 through 9 with a new channel being selected for measurement in step 1 and a new Amux channel selected in step 4.

Additionally, "Thermistor" component is just a calculation unit that assumes one Rref and one Thermistor in series.  However, you can use only one "Thermistor" component for as many thermistor circuits you can create.



"Engineering is an Art. The Art of Compromise."

Hi and thank you for your answer.

The configuration you attached is very interesting and I'd like to know which is the criteria you used to  select the ESD resistor . I'm a little bit confusing regarding the impact of those ESD resistor over the Rref and Thermistor voltage reading.

If true,  I'm not sure that your design is practical if your intent is to determine the temp of each Thermistor.

Regarding the above comentary, yes I'm getting the temperature of each of those thermistor.

For your reference I took the aproach from the AN66477 pag 10 and 11.

I'd like to use the configuration on page 10 but using so many pins avoid that the code get compiled easily.

So I decided to use the configuration on page 11 using constraint resources. That schematic is using just 3 thermistor  but I needed 8.

I'm really amazed at the results obtained with 12 bit SAR ADC . Currently the project is build just with wire rap and I thginkthat with a good PCB desing it can improve the performance.

I'm attaching for you a Dashboard's snapshot where you can see the reding obtained using 1% 10 K resistor to simulate thermistor at 77 deg F. The dashboard is just implemented for 6 thermistor currently.6 thermistor reading.png

But my point is that I need to select values for ESD resistor and prevent that they impact on the Vref and Vth reading.

As you may know these voltages determine the thermistor resistance using the fuctionmentioned on AN66477.

Also your reference regarding that I'm using more than one  Thermistor component, is because on  the final project I'll use different type of thermistors and I gonna select through code  the Thermistor component  for every measuremnt.



I read AN66477 that you referenced.   Page 11 ... interesting. I suppose it is doable but as the app note states "However, a disadvantage of this method is that the voltages across the thermistors and the reference resistor are smaller, and may require a higher resolution ADC to obtain the required temperature resolution."  Do you have enough resolution with the 20-bit ADC?

I chose a 10K series resistance for the ESD current-limiting resistor.  Since the input impedance of the ADC_DelSig with the input buffer is about 10M ohm the ESD resistor I recommended is more a formality and probably not useful.

Are any of the thermistors located externally (off-board)?  If so, I'd recommend a small schottky diode across each off-board thermistor with the cathode connected to the '+' side. This diode must be located on the board with the PSoC preferably at the point where the wire from the off-board thermistor enters your PSoC board.

One additional suggestion:  Do not keep the thermistor circuit power at all times.  Start the Opamp feed circuit only when you are going to read the thermistors.  Measure the thermistors as quick as practical and then Stop the Opamp.   This help to minimize a self-heating effect of the resistors.


"Engineering is an Art. The Art of Compromise."
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted


Though it is not related to to your question, since your project uses many thermistors, it is possible to considerably speed up calculation of the temperature for each thermistor by using custom Thermistor calculator component instead of the default provided.

Fast Thermistor Calculator

This custom component speeds up temperature calculation by approx 15 times, plus provides better resolution. (I believe that standard calculator takes some 15-20k processor clocks to get result.)