I am currently building a project that uses an AD595 analog devices chip to linearize the output of the Thermocouple sensor to 10mv/deg C. This output is to be connected to the ADC input of a Zigbee radio, with a max input of 1.2v. Given that the Zigbee input determines the range, this would achieve a 0-120 degree temperature range. I am now trying to adjust this design to also sense negative temperature.

The AD595 chip can run as dual-supply by connecting -5v and +5v, to give both positive and negative output, however The zigbee radio will not accept a negative voltage input. I believe i now need to place in the design a Non-Inverting Summing Amplifier to "level shift" the range so that "-1.2v - 0v - 1.2v" becomes "0v - 0.6v - 1.2v" and can be interperated by the ADC. I am fairly new to this and i'm not sure where to start, it being especially difficult using a negative voltage.

So far i have used a voltage divider on the output to produce a 5mv/deg C output thus increasing the temperature range to 0-240 deg C. I will have a regulated 5V (ad595), 3.3V (for zigbee) and -5V (for dual) supply.

If anyone could help or point me towards worthwhile resources i would appreciate it a lot.


  • 1
    \$\begingroup\$ try electronics.stackexchange.com/questions/55644/…. Also, all the automatically generated "related" links. \$\endgroup\$
    – Phil Frost
    Jan 28, 2013 at 12:12
  • \$\begingroup\$ Thanks... I have already viewed these responses and haven't found a solution - the link you posted differs from what i am asking - hence why i am asking this question. \$\endgroup\$
    – Nick G
    Jan 28, 2013 at 12:45
  • \$\begingroup\$ How do any of those solutions differ other than by shifting by different amounts? Shifting, attenuating, or multiplying a voltage is a very common task. Where exactly are you stuck on understanding the existing solutions? \$\endgroup\$
    – Phil Frost
    Jan 28, 2013 at 13:08
  • \$\begingroup\$ Please take a look at my question. I need to achieve 0V-1.2V from -1.2V to +1.2V. The solution you posted above shifts 0V-5V to a negative-positive 2.5V range. Level shifting may be a common task, however as i stated in the question "I am fairly new to this..." If you need me to clariy anything in the question i will gladly do so. \$\endgroup\$
    – Nick G
    Jan 28, 2013 at 13:14
  • \$\begingroup\$ What temperature range do you need to measure, exactly? There are ways to measure negative temperatures with the AD595 without negative voltages, relative to ground. The main limitation is the range of temperatures that can be measured, given the difference between the supply rails. Although nominally starting at 0 degrees, this range can trivially be shifted up and down. \$\endgroup\$
    – Phil Frost
    Jan 28, 2013 at 13:20

2 Answers 2


Here's a single supply inverting opamp configuration that will do what you want. You will need an opamp capable of output drive to it's lower rail (You will probably want to include a small capacitor across R2 to limit bandwidth, since you don't need much for thermocouple readings)
R3/R2 may need to be increased in order not to load thermocouple depending on type - EDIT, just noticed the output is coming from the AD595, so it's probably low impedance (not checked datasheet) and fine as is:

Level Shift

R3/R2 simply divide the input voltage by 2. R1 and R5 present 400mV to the positive input. Since the opamp tries to keep the two inputs equal, it creates a level shift. For example, when there is -1.2V at the input, to keep the inverting input at 400mV, there needs to be 1.2V at the output. We can now see R3/R2 as a voltage divider with -1.2V at one end and +1.2V at the other, we get 2.4V across R3+R2, so the voltage across R3 is:

2.4V * (R3 / (R2 + R3)) = 2.4V * (10kΩ / 15kΩ) = 1.6V and so:

-1.2V + 1.6V = 400mV

You can run the calculations for the other input voltages and see how it works across the range (remembering there is always 400mV at the inverting input, and effectively no current flows into the input)

Another way to look at it given the above is, say we have -0.6V at the input. We know there must be +0.4V at the other side of R3, so the current flowing through R3 is:

(0.4V - -0.6V) / 10kΩ = 0.1mA

Now we know none of this current flows into the inverting input, so it must flow through R2:

5kΩ * 0.1mA = 0.5V

0.4V + 0.5V = 0.9V at the output


Level Shift Simulation

If you need it non-inverting, you can easily do this in firmware or add a simple inverting buffer after this.


Just had a look at the Zigbee datasheet and it seems the Vref is fixed at 1.2V (although there is Vref pin, I couldn't find any mention of how to use it in the analog IO section), so you have to work with this unless you use an external (possibly higher resolution) ADC and feed the data to the Zigbee. It's a 10-bit ADC, so 1.2V / 1024 = ~1.17mV LSB, which won't be so bad with with filtering (which use a low cutoff since you have a slowly changing signal from the thermocouple)
Bear in mind the ADC595 has an calibration error of around +-1°C (or +-3%deg;C depending on which variant you are using) so absolute accuracy will not be excellent, but you could go for a higher resolution as mention if you wanted to.
So read the ADC595 datasheet advice thoroughly, pay attention to the PCB layout (if possible a 4-layer with solid ground plane), keep any digital signals away from the analog as best you can and use plenty of decoupling and all should be well.

  • \$\begingroup\$ Many thanks for that! Could you please explain how you obtained the values for R1-R5? Out of interest - what is the simulation software you are using? Thank you again. \$\endgroup\$
    – Nick G
    Jan 28, 2013 at 13:40
  • \$\begingroup\$ I added a description of how it works. Note that the values are not set in stone, it's the ratios that are important. The higher R2/R3, the higher the input impedance. The higher R1 and R5, the less power consumption (but too high and it's more susceptible to noise) \$\endgroup\$
    – Oli Glaser
    Jan 28, 2013 at 13:58
  • \$\begingroup\$ Input impedance is just R3, since the inverting input is a virtual ground (it is always equal to the non-inverting input). description at wikipedia \$\endgroup\$
    – Phil Frost
    Jan 28, 2013 at 14:43
  • \$\begingroup\$ @PhilFrost - Yes, I know, but the ratio stays the same in this case (e.g. if R2 is increased, R3 must be) so I just put it this way instead. Although note that in this case the inverting input is not at the same value as thermocouple ground. \$\endgroup\$
    – Oli Glaser
    Jan 28, 2013 at 15:09
  • \$\begingroup\$ @PhilFrost - Note that DC input impedance changes with applied voltage for this reason (e.g. if the input voltage is at -1V, it sees an effective impedance of -1V / 140uA = 7.142k) \$\endgroup\$
    – Oli Glaser
    Jan 28, 2013 at 15:36

The AD595 can measure negative temperatures without a negative power supply. What it actually needs is a voltage that's more negative than its COM terminal. When the datasheet says "output is 0V at 0 degrees", what it means is, "output is 0V relative to COM at 0 degrees." There's no reason COM must be your circuit ground. For example, if you wanted 0 degrees to be the middle of your supply voltage, you could do this:

voltage divider

From the perspective of the ADC595, COM is "ground" and it has supply voltages (known as "ground" and \$V_{cc}\$ elsewhere) of \$\pm \frac{1}{2}V_{cc}\$. That what the ADC595 conisders "ground" is actually half of \$V_{cc}\$ to the rest of the circuit doesn't affect its operation at all, except now you don't also need a -5V supply.

This is a simple resistive voltage divider. R2 exists to calibrate for any differences between R1 and R3. You could use just a pot, or just R1 and R3 also, depending on how carefully you need to calibrate this.

This potentially introduces two errors: the first is that Vcc may not be a stable voltage. If Vcc isn't regulated well enough to meet your accuracy requirements, then you can construct a more stable voltage source to use instead of Vcc. That's enough of a problem to merit another question. But also maybe your ADC is referenced to Vcc, in which case this is an advantage, not a problem.

The other is that the current going in or out of COM will change your voltage reference. The current should be small, so this should not be a big error. The smaller you make the resistors, the smaller this error will be, but also the more power you will waste in the voltage divider. To eliminate this error, you can buffer the output of the voltage divider before connecting it to COM.

Also check out the section in the datasheet, "RECALIBRATION PRINCIPLES AND LIMITATIONS". This discusses ways to change the gain and zero point of the internal amplifier.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.