ESP8266 is 5V-tolerant after all?
deʃhipu wrote 07/24/2016 at 17:54 • 1 pointI recently looked at the datasheet for the ESP8266 that was published by Espressif (as opposed to the one on NURDspace, that was translated by someone from the Chinese datasheet), and I noticed a small detail that seems to differ from what is being repeated all over the Internet. It seems that the ESP8266 GPIO pins are 5V-tolerant after all, or at least protected from 5V input. I'm not sure of this, but look for yourself. In the "GPIO" section of the PDF (https://www.adafruit.com/images/product-files/2471/0A-ESP8266__Datasheet__EN_v4.3.pdf), it says:
All digital IO pins are protected from over-voltage with a snap-back circuit connected between the pad and ground. The snap back voltage is typically about 6V, and the holding voltage is 5.8V. This provides protection from over-voltages and ESD. The output devices are also protected from reversed voltages with diodes.
This is different from the early translation at https://nurdspace.nl/ESP8266 which says:
All digital IO pins must add an overvoltage protection circuit (snap back circuit) between the pin and ground. Usually bounce (snap back) voltage is about 6V, while maintaining the voltage is 5.8V. This prevents excessive voltage and generating ESD. Diodes also avoid reverse voltage output devices.
So which is it?
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Hi all,
Thanks for your excellence discussion! I am trying to use ESP8266-01S with a 5V I2C bus connected with a PCF8574 (that run with a 5V source to reduce voltave drop on the ASM1117 3.3)
I meassure voltage at gpio2 and gpio0. It was 4.9V when the reading is executed. I am not sure how long the Chip will survive with this condition!
Are you sure? yes | no
Hi Radomir. I've posted the following remark on HAD article about this matter. I hope it might help to elucidate the doubt:
"Let us not be confused by the datasheet nomenclature
Vil and Vih are the voltage limits for the chip to recognize the LOW and HIGH levels respectively and NOT maximum ratings.
A Vih max of 3.6 Volts means that the manufacturer absolutely guarantee that the chip will understand a voltage of 3.6V and up as a HIGH level. Again this is NOT THE MAXIMUM TOLERATED voltage!
The input buffer circuit is protected by a snap back circuit which works as much as a triggered zener diode. What the datasheet clearly states is that above ABOVE 6.0Volts the snapback will trigger and will shunt the input current so the voltage remains at 5.8Volts similar to the way a zener keeps a constant voltage on its terminals. Btw such drop from 6 to 5.8 names the ‘back’ of snap back.
In plain english, the datasheet says that THE ESP8266 IS 5V TOLERANT! And probably the manufacurer implemented a snap back rather than the ESD diodes to ease the interface with 5Volt systems without series resistors or intermediary devices. Think about it…"
Are you sure? yes | no
Awesome, thank you for your input. I guess we are collecting more an more evidence.
Are you sure? yes | no
(edit) Even the 5V tolerant parts should use a resistor in series with the input pins, so the current does not exceed the capacity of the clamping diodes. Such current is around a few milliamps, hence the resistors are typically in the range of hundreds of ohms ( R >= [5-3V3]/Iclampmax).
A further reading on the ESP8266 datasheed shows that the I/O pins are protected for voltages up to 6Volts, (http://download.arduino.org/products/UNOWIFI/0A-ESP8266-Datasheet-EN-v4.3.pdf ) at the bottom of the page 17/31) so connecting it to a +5V output should not be a problem.
Are you sure? yes | no
Usiing a series resistor in the 100Ohm range should work ok. The other problem is that driving a 3.3V signal to a 5V pin may not be recognized as HIGH. so you need somethign to boost your signal top 5V. Most of the time it is 0,7*VCC so with a 5V parts its 3.5V...
Are you sure? yes | no
It is easy to test if the ESP is designed to be 5V tolerant or not: 5V tolerant GPIOs don't have a diode between the input and VDD. You can test this by using a multimeter.
Are you sure? yes | no
Hmm, so I get ~2.5MΩ with - on the VCC pin and + on the GPIO pin. I get ~500kΩ the other way around. Does that mean there is a diode or not?
Are you sure? yes | no
Use the diode setting. Positive on the GPIO, negative on VDD. What voltage do you get?
Are you sure? yes | no
I get 0.
Are you sure? yes | no
https://hackaday.io/project/11922-home-automation-on-the-cheap using the ESP8266 connected directly to an arduino TX RX without level converters. I have been using it this way with both ESP-01 and ESP-12 without problems. Use this info at your own risk but for me works well.
Are you sure? yes | no
I did that for a Raspberry Pi once too, but it got fried after about 2 months of use.
Are you sure? yes | no
Yeah "Results MAY vary folks".
Are you sure? yes | no
It's not just "may vary". In practice you never know when your part is going to fail. It would be great to know for sure if it's really tolerant, or if you were simply just lucky so far.
Are you sure? yes | no
Usually I would look under the "Absolute Maximum" electrical spec. This is for a different part (EFM8UB1) and NOT for ESP8266.
Very hard to say - Chinese parts aren't known to be well documented/tested. In general, if a vendor casually mention something, but not defined in a table under the Min or Max column, that's usually can be taken as a suggestion and not a formal spec or a guarantee.
tl;dr It sound like it is 5V tolerant, but you really should direct the question to the vendor.
If they give you a max with an actual number e.g. 5.8V instead of Vcc or VIO +0.3V, then they are using a zener diode for input protection and that the *input pin* part is 5V tolerant.
The +0.3V (or +0.5V) means that there is a ESD diode going from the pin to Vcc rail and they don't want that diode to conduct normally except for ESD or during brief transient spikes. (Altera even tells you how often those spike can occur and how it will affect the product lifetime.)
If there is a Vcc or VIO term, then that means that the signal cannot be present until the chip has power. i.e. I/O should not be connected directly to pins that are exposed to hot swap.
The electrical specs section tells you the proper signal levels, so you 'll still need to determine the ViH/ViL and VoH/VoL would be the right signals levels for your other parts. That's the only part that was included in their datasheet.
When a GPIO is an output, then it is bad for external circuit to inject current (e.g. external pullup to 5V).
Are you sure? yes | no
If you look at the linked documents, there is such a table there, and it specifies Input High Voltage (Vih) as 3.6V in the NURD one, and 3.3V in the Espressif one...
Are you sure? yes | no
That's under Normal operating condition in section 2.2, not to be confused with (the missing) Absolute Maximum Electrical specs as I pointed out.
>The electrical specs section tells you the proper signal levels, so you 'll still need to determine the ViH/ViL and VoH/VoL would be the right signals levels
Are you sure? yes | no
If all you have is the ViH and ViL values, then I would stick to those as those are guaranteed. All else you need to ask the vendor to clarify as some of them when they don't spec as either min or max are by designed and not tested at all and some are only during verification.
Are you sure? yes | no