Electronic – use a simple resistor for ESD protection on an ESP32

esdresistors

This question applies both to digital and analog inputs on the various ESP32 dev kits. From what I can tell, none of these boards (including my OLIMEX-EVB and Gateway boards) add any ESD protection to the bare ESP32.

So far I have had difficulty locating the proper Espressive data sheet to see what (if any) ESD tolerance there is. I suspect there is (the ESP8266 did) but I can't find it.

I have two specific applications I need to design for, and I am thinking both will work with a larger (e.g. 1 M Ohm) resistor:

A) Reading a digital input line for the open/closing of a limit switch.
B) Reading an analog input value on the ADC capable pins (which I think are 0-1.1v unless you use the attenuation function).

I am OK with a response rate as long as 1 second, although 1/10th of a second would be ideal.

So my questions are:

  1. Does anyone know what the ESD protection is on the bare ESP32?
  2. What is the best sized resistor to use to provide maximum protection and still have a decent response?
  3. Will thin film resistors work or do I need to get another type?

Best Answer

A SAR ADC will have 10pF Cin. With your 1MegOhm resistor, the TimeConstant will be 10 microSeconds. Each Tau of settling gives you 8+ dB (one NEPER) more accuracy. Allowing 10 Tau, or 100 microSeconds settling, should give you 80 dB accuracy, or 12 bits. Again, this assumes just ONE SAMPLE per conversion.

on the other hand ...

A delta-sigma or sigma-delta ADC, which does lots of sampling during each conversion, will have an equivalent InputCurrent and using Ohms Law we predict an error for the FullScale conversion. Use the math Rin = 1/(FC); this comes from Iin = FCV; given Rin = Vin/Iin, the Vs cancel, leaving 1/FC.

For 100,000 samples per second and 10pF, the 1/F*C = 1/(1e+5 * 1e-11) = 1/1e-6

or Rin of this delta-sigma ADC is 1MegOhm.

With your external 1MegOhm, you'll have a 50% error because of the "voltage division" action.