Ryan wrote:
> Hi everyone,
>
> I need to protect an analog input for an AVR. Protect it from ESD,
> users connecting it wrong (i.e. to +12V power), etc. Any suggestions
> on what to use? Unity gain opamp? "transorb" or similar transient
> device??? Discussion welcome. Thanks,
There have been a number of good responses here. However, most are
overkill IMO. You don't really need external diodes, for instance, as
long as you can limit the input current into the internal diodes to less
than 1-10mA or so (see the data sheet).
You can easily simulate various ESD scenarios with a SPICE program. I've
done so, and found that the R/C network that I initially wanted to use
wasn't safe enough. Problem is that when the C charges up to where the
input protection diodes want to start conducting, you can have
additional energy that has to go somewhere. And it goes through the
diodes. Adding a second R between the R/C junction and the input pin
then lets you limit the current into the input diodes to something safe,
even with a multi-KV input.
You also don't say what input voltage range you're looking at, nor what
frequencies you're trying to measure.
Assuming that you're reading sensor input (slowly varying) and can stand
some filtering, this kind of circuit can work quite well (and will also
do some low-pass filtering for you).
Here's an example of an input protection circuit that I've used for a
0V-to-Vcc input. It has a rolloff around 160 Hz.
The input impedance seen by the AVR pin is effectively just the 1K,
because the 10nF is so much bigger than the internal s/h capacitor.
input --- 100K -+-- 1K -- AVR pin
|
10nF
|
----------+
Here's the SPICE (SwitcherCADIII) model for this (testing a +/-7.5KV ESD
input discharged from a 100pF cap via a 1.5K resistance). I used 1N914
diodes to model the input diodes (I'm only interested in the current
through them).
Note that the peak current through the negative diode D1 is less than
5mA; through D2 it's less than 1mA.
With a different ESD model (say 200pF through 1 ohms) the peak current
is still under 10mA worst case with the +/- 7.5KV inputs.
* I:\src\SWCadIII\esdtest2.asc
V1 N002 0 -7.5k
C1 N006 0 100p
C2 N007 0 0.01?
R1 N007 input 100k
R2 P001 N006 1.5k
S1 P001 input 0 N004 MySwitch
S2 N002 N006 N004 0 MySwitch
D2 output N008 1N914
D1 0 output 1N914
V2 N008 0 5
V3 N004 0 PWL(0 0 10u 0 10.001u 1 100u 1 100.001u 0 200u 0 200.001u -1
300u -1 300.001u 0)
R3 output N007 1000
C3 output 0 5p
V4 input 0 1 AC 1 Rser=10k
V5 N001 0 7.5K
C4 N005 0 100p
R4 P002 N005 1.5k
S3 N001 N005 N003 0 MySwitch
V6 N003 0 PWL(0 0 400u 0 400.001u 1 500u 1 500.001u 0 600u 0 600.001u -1
700u -1 700.001u 0)
S4 P002 input 0 N003 MySwitch
.model D D
.lib C:\Program Files\LTC\SwCADIII\lib\cmp\standard.dio
;ac oct 10 1 1e6
.model MySwitch SW(Vt=0.5 vh=0.1)
.tran 800u
.backanno
.end
Enjoy,
--
Ned Konz
ned@bike-nomad.com
http://bike-nomad.comMessage
Re: [AVR-Chat] Circuit for protecting analog inputs?
2006-07-09 by Ned Konz
Attachments
- No local attachments were found for this message.