Byte and Switch (Part 2)

Jason SachsMay 7, 20118 comments

In part 1 we talked about the use of a MOSFET for a power switch. Here's a different circuit that also uses a MOSFET, this time as a switch for signals:

thermistor-measuring circuit

We have a thermistor Rth that is located somewhere in an assembly, that connects to a circuit board. This acts as a variable resistor that changes with temperature. If we use it in a voltage divider, the midpoint of the voltage divider has a voltage that depends on temperature. Resistors R3 and R4 form our reference resistance; when the P-channel MOSFET switch Q1 is off, the reference resistance is R3, and when Q1 is on, the reference resistance is the parallel combination of R3 and R4. The microcontroller can turn Q1 on and off using a digital output (the pin marked GAIN). Resistor R1 is used to keep Q1 off when the microcontroller is in reset. Capacitor C1 is used as part of a low-pass filter with R2, which also serves as a current-limiting resistor in case of surge voltages on the thermistor connector. An op-amp buffers the filtered voltage and feeds it into an analog-to-digital converter (ADC) input.

Let's talk about component values. Assume this is powered by a single AA cell, with a supply voltage VDD between 1.2 and 1.5V. The low end of this range is a challenge for active devices, but there are still components that are specified to work at such a low voltage. For Q1 we could use a Vishay Si1499DH, which is specified for an Rdson of 0.42 ohms at 1.2V gate voltage. For the microcontroller, there are a few options; some kinds like TI's MSP430 series and SiLabs C8051 series have  parts that can run down to 0.9V supply voltage, while others like Atmel's ATtiny43U have an integrated boost converter to create enough voltage internally to run the part. And for op-amps, Linear Tech has the LT1635 that runs off of 1.2V, ON Semiconductor sells the NCS2001 which operates on 0.9V; Touchstone specifies the TS1001 down to 0.65V!

Designs I've worked on that use thermistors typically use NTC thermistors, which have resistance that decreases with increasing temperature, by a significant amount: Quality Thermistor's Z-curve thermistors, for example, have a resistance that increases by a factor of 13 from +25°C to -25°C, and decreases by a factor of about 7 from +25°C to +75°C. This wide dynamic range makes it difficult to sense temperature over a large range, so this circuit has a gain switch. With a 100K thermistor (100K at +25°C), I might choose R3 = 249K and R4 = 49.9K (for switchable resistances of either 249K or 41.6K = 249K || 49.9K).  The important idea is to maximize signal swing by making the reference resistor about the same as the thermistor in the range of interest; I'd choose the high-impedance range (R3 only) at low temperatures, with maximum resolution around +5°C, and the low-impedance range (R3 and R4) at higher temperatures, with maximum resolution around +47°C. Both R3 and R4 should be 1% accurate or better.

For the low-pass filter, R2 = 100K and C1 = 0.1uF gives us a 10 millisecond filter time constant. With a decent CMOS op-amp, input bias current is low enough that the relatively high value for R2 won't cause a significant error. (Otherwise, the appropriate thing to do is put an identical resistor in the feedback path of the op-amp, so that identical bias currents cause identical voltage drops.)

Finally, R1 isn't too critical and could be 1M to minimize power consumption.

Great, right?

Well, there's one problem here. We are asking a lot from switch Q1. We want it to be a good short circuit when it's on, and we want it to be a good open circuit when it's off. The on-resistance of a Si1499DH is 0.42 ohms worst-case, which is a tiny fraction of the series resistance R4, so that's fine. But what does the switch look like when Q1 is off?

MOSFETs at low gate voltages look like constant-current sinks, where the current is a function of gate voltage and temperature and device variation. A look at the datasheet under "Zero Gate Voltage Drain Current" shows us the worst-case current that can flow when we pull the gate and source together. The Si1499DH specifies 1uA maximum at 25°C, and 10uA maximum at 55°C. This is pretty typical of MOSFET manufacturers; you will often see numbers like 1uA, 10uA, or 25uA. For one project, I managed to find a few parts specified at 0.1uA maximum current at zero gate voltage, but there aren't many out there. This is a parasitic leakage current: we want zero current, but we have to live with some undesirable current up to the specification.

In any case let's assume we can run our circuit in a controlled environment at 25°C (with our thermistor measuring temperature somewhere else in a hot or cold location) so we get the 1uA maximum leakage -- rather than 10uA if our circuit ran in a 55°C car on a hot day. If our thermistor measures 249K (at about 5°C), and we have the pullup R3, the net parallel impedance is 125K, so 1uA leakage causes 0.125V error in our sensed voltage. Yikes! That's a lot! And we can't calibrate it: the leakage current could be 0, it could be 0.1uA, it could be 1uA, it could vary with time... we don't know, all we know is that we have to live with up to 1uA leakage current.

The zero-gate-voltage leakage current is one of the commonly overlooked problems of MOSFETs that prevent them from being the perfect switch. In low-power or high-impedance analog circuits, it often produces unacceptable errors.

So what can we do about it?

One solution is to use bipolar transistors. Most bipolar transistors, when turned off, have leakage current in the low nanoamp range. The only problem with using a bipolar transistors as an analog switch is that they cannot guarantee zero voltage when on; you are looking at a collector-emitter voltage for a saturated NPN or PNP transistor that is typically in the 50mV - 200mV range. (MOSFETs, on the other hand, look like a resistor when turned on, and can reach on-state voltages of microvolts in low-current situations.)

Another solution is to use dedicated analog switch ICs. The ubiquitous HC4051/4052/4053/4066 series are very inexpensive -- but they all have leakage specs of about 1uA, which is just as bad as our MOSFET. There are a few analog switch ICs that have lower specified currents. Maxim sells a MAX4066 (1nA max leakage), Intersil has their ISL54000 series (20nA at 25°C, 300nA over their temperature range), and Fairchild has several different switches such as the FSA4157 (40nA max leakage over temperature). The tough part here is finding an analog switch IC that works with our voltage range. Most of them need at least 1.8V supply, which is not available. To find one that works down to 1.2V we have few choices. The Intersil ISL43L110 is spec'd down to 1.1V; its leakage current is 30nA max at 25°C, 4.5V supply, 200nA max over temperature with 4.5V supply, and 8nA typical over temperature at 3.3V supply. Intersil's ISL43L series was the only one I could find that worked at such a low voltage; the next closest was NXP's NX3L series (e.g. NX3L4357) with up to around 50nA leakage current maximum at 85°C.

Whew! It's tough to run circuits off of a one-cell battery! This is one reason why most products that do run off one AA cell are supposed to use alkaline cells, with a nominal voltage of 1.5V, rather than nickel metal hydride (NiMH) with a nominal voltage of about 1.2V.

At any rate, aside from the challenges of low-voltage design, the leakage current is the primary reason to be careful about using MOSFETs in low-power high-impedance circuits.

[ - ]
Comment by cypherpunksApril 8, 2012
There's a simple solution to the MOSFET leakage problem if you're allowed to use two: guarding! Add an N-channel Q2, connected to the same gate drive, between the top of R4 and the output of the op-amp. Which is at the same voltage as the summing node, so when the gain pin is high and Q2 is on, the leakage current flows through it. When that voltage is close to the top rail, obviously Q2 will barely be on, but that's okay as long it is passes more current than Q1. (The usually-omitted Vds-dependent term in subthreshold conduction is (1-exp(-Vds/Vt)), where Vt = kT/q = 25 mV. This is pretty much "1" when Vds > 100 mV, but does eventually taper off at low voltages.) This requires careful part selection and poorly-specified subthreshold behavior; using an SPDT analog switch would simplify things enormously.
[ - ]
Comment by jkvasanMay 8, 2011
This is real good stuff spoken from a hands-on practical mind.
[ - ]
Comment by gillhern321May 6, 2019

Jason,   I think he means this link (Quality Thermistor's Z-curve thermistors)  the PDF link gives a 404 error page, when clicked on.  :).

I really liked both of your articles, and we create a lot of these circuits in the IOT stuff were doing now, with BLE, Smart, ANT and BLUEtooth Mesh, pairing with the 802.x implementations. This is directly relevant to whats being produced in the market right now(low energy applciations).   Well done.

[ - ]
Comment by infigunaSeptember 25, 2012
Could you please corret the links to the images in the web page?, they are not coming up and I desperately need the information from your blog.
[ - ]
Comment by jms_nhSeptember 25, 2012
which links? There is only 1 image shown, looks fine to me
[ - ]
Comment by er57June 28, 2015
First sentence, url behind "part 1" has wrong domain name and yields "No article found"... First mixup like that was at http://www.embeddedrelated.com/showarticle/91.php, perhaps some simple script can be developed to check those urls you use in your article?
[ - ]
Comment by jms_nhJune 28, 2015
fixed, thanks.
[ - ]
Comment by KREMarch 28, 2019


I have two questions:

1. I can't see the picture from the article. I tried in few web browser without success. What the problem might be?

2. Will the PDF option be available as it is for part #1?



To post reply to a comment, click on the 'reply' button attached to each comment. To post a new comment (not a reply to a comment) check out the 'Write a Comment' tab at the top of the comments.

Please login (on the right) if you already have an account on this platform.

Otherwise, please use this form to register (free) an join one of the largest online community for Electrical/Embedded/DSP/FPGA/ML engineers: