I'm trying to design a circuit that amplifies a group of thermopile sensors (datasheet) from a mV reading to a V reading (gain ca. 100-1000) for a uC's ADC input. These sensors have a typical resistance around 200k Ohms, and a full range output voltage from -1mV to 5mV. The sensors have a response time of around 22ms, and I probably won't need to sample them faster than 10 times a second.

Since I have a few sensors (around 10), I'm thinking the best way to approach this is to mux the sensors (say via a standard 16 to 1 4067 CMOS mux), then amplify the signal.

Naturally, the low input voltage and high impedance of the sensors seem to be quite troublesome. I'm assuming the CMOS mux will generate primarily Johnson-Nyquist noise on the order of at most microvolts(<< mV), so it won't be problematic.

If that's the case, it looks like a precision operational amplifier (something like LMP2011 or AD8538) would allow me a low input bias current (dropping the input signal voltage minimally) and a low input offset voltage (to minimally skew output results), which I hope would work for the application.

This option seems popular on the internet, but I was wondering if you folks at EE.SE would have some suggestions for other ways to amplify these low voltage, high resistance signals.

PS: In effort to make this question useful to future readers I've tried to provide it in as general form as I could, but I can provide more details as to my design requirements/constraints if need be.

EDIT: Amphenol does not provide any clues on the datasheet as to how to use the sensor, but it does have an example circuit here under the PDF located at "Thermopile IR Sensor Applications" in page 3. The circuit provided is very similar to the one mentioned earlier

  • \$\begingroup\$ Something doesn't sound right because a thermopile is just an array of thermocouples and they have very low impedance meaning, that a thermopile has moderately low impedance and not something like 200 kohm. Be clear, leave a link to the data sheet. \$\endgroup\$
    – Andy aka
    Sep 30, 2017 at 8:23
  • \$\begingroup\$ Updated, sorry. I'm not familiar with working with thermocouples/thermopiles (this circuit will be part of my undergraduate senior capstone project), but I have the sensors on hand and did verify that the kOhm resistance is correct. \$\endgroup\$
    – hedgepig
    Sep 30, 2017 at 8:28
  • \$\begingroup\$ I think it is in fact a photodiode - the data sheet doesn't really help understand how you might want to use this in a circuit so I'll pass on providing an answer and hopefully someone will know. BTW you can probably use a MUX but be aware of its IO leakage currents generating a far bigger error than a good op-amp. \$\endgroup\$
    – Andy aka
    Sep 30, 2017 at 8:34
  • \$\begingroup\$ A photodiode would make a bit more sense considering that the device has an IR filter (maybe this is more of a "photoelectric sensor" than a "thermopile"?). I'm starting to realize with these sensors cost only 2 dollars each whereas the digital ones cost 14 dollars each... \$\endgroup\$
    – hedgepig
    Sep 30, 2017 at 8:40
  • 1
    \$\begingroup\$ If you are trying to do non-contact temperature measurement then you might need additional optical filters to reduce the optical bandwidth. \$\endgroup\$
    – Andy aka
    Sep 30, 2017 at 9:02

2 Answers 2


Some opamps have noise density of 1nanovolt/rootHertz (thus an internal Rnoise of 62 ohms). In 1Hz bandwidth, you'll have ReferredToInput noise of 1nV rms from that internal-to-opamp source. Various gain-set resistors add their own random KT Johnson noise. In 10Hz BW, expect sqrt(10) = 3.16 more noise RMS. In 100Hz BW, expect sqrt(100) = 10x more noise RMS. The low-noise opamps will be bipolar, and require some input bias currents; CMOS opamps also require input bias currents, but 10^6 or 10^8 smaller levels at least at room temperature.

I used SCE to examine suitable topology: 5 millivolt, 50 ohm Rsource for the sensor; 1nanovolt/rtHz (62 ohm Rnoise) opamp with Gainset R of 101 ohm and 10Kohm; 160 Ohm/1uF {10Hz} discrete RC LowPassFilter; edited the ADC params to provide 18 bits resolution to drop Quantization stepsize.

Result? 13.5 bits ENOB, set by the random errors; see lower left of screenshot.

enter image description here

  • \$\begingroup\$ Thank you so much for giving me a starting point; I'm new to analog design (and in reality electrical engineering). I downloaded an evaluation version of the software to take a look. Just a question - since it turns out the sensor I'm using looks to be high impedance (200k), I assume for my own purposes I would need to take into account input bias currents (for the op amp) and leakage currents (for a mux) correct? \$\endgroup\$
    – hedgepig
    Oct 1, 2017 at 10:56

Since the design was reasonably successful (for an undergraduate senior capstone project), for others looking here is what I wound up doing:

Signal chain: ztp101 sensor->ADG706 precision mux->precision buffer->LMP91050 programmable gain amplifier

The programmable gain amplifier featured 2 gain stages with an interstage filter portion. For the filter, we chose a simple first order low pass filter with cutoff in the dozens of Hz (as our sensors had a latency of 22ms).

Most of the work was done by the TI application specific (NDIR) programmable gain amplifier; we roughly followed the reference design. The project worked well for identifying the sensor with the maximum reading, though struggled with relative readings, presumably due to offset errors causing the amplifier to rail (the PGA features input offset error correction, but was giving us some issues). Frankly, given the cost of the PGA chip, it seems we would've gotten better results with preamplifying the signal close to the source with precision amps, passing them through the mux then amplifying a second time for the ADC.

We had a polling rate of ca. 10Hz, notable was that oversampling the ADC of the microcontroller would result in erroneous figures due to residual charge in the low pass filter capacitor.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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