Electronic – arduino – Limiting sensor input voltage without biasing measurement

adcarduinooperational-amplifiersensorzener

I need to measure precise voltage in the range from 0.375 volt to 10.1 volts from a source with 100ohm impedance. Maximum voltage however, may be well above 10.1V, so I need to be sure I do not exceed the ADC maximum. The ADC I am using measures from 0V to 4.096V with an absolute input maximum input of 5.3V. Impedance is about 15 Mohm. Target accuracy is on the order of 100uV.

I tried using a resistor voltage divider with a combined resistance of about 1k ohm to reduce the 10.1V input to about 4.0V, and added a 5.1V zener diode as protection against excessive input voltage. However, at 4V divided voltage, the zener has enough reverse leakage to drop the measured voltage by 10mV.

Is there a better way of using zeners?. I simply put it in reverse between the divided voltage and ground. Alternately, I could use an opamp to scale the voltage instead of a resistor divider, but that adds parts and complexity.

Any suggestions?

Best Answer

Zeners have a very 'soft' characteristic. As you discovered, they start drawing current well before their advertised voltage.

The best way to limit overvoltage into an ADC is to use a silicon diode to a fixed voltage. Usually this will be the ADC rail, especially if you put a series resistor between the diode and the ADC to limit any current drawn, but you could use a biassed zener to provide the fixed voltage if the rail is not suitable.

While general purpose diodes like 1N4148 are fairly low leakage, there are specialist 'low leak' diodes like BAS116. Here are some figures I took a while ago, to characterise diodes used for ADC protection.

Reverse leakage, and effective resistance around 0v at 15°C.

diode    reverse leakage   slope resistance over +/- 10mV
-----    ---------------   ------------------------------
1N4148      4nA  (5V)            30Mohm
BAT42      35nA  (5V)             1Mohm
BAS116    <10pA  (30V)         >>20Gohm (10pA was measurement resolution)

The BAS116 reverse leakage typ/max spec at 25°C is 3pA/5nA, and 3nA/80nA at 150°C

Here's the forward conduction current of BAS116 versus 1N4148
(it might have been a quite leaky 4148 sample, below 300mV it conducted more than a 1N540x)

 Vf     BAS116   1N4148
----    ------   ------
300mV    40pA     1.3uA
450mV    45nA     27uA
640mV    16uA     1.7mA