When programming ATmega microcontrollers, I use an edge detector circuit to reset the chip when uploading new programs. This is the same circuit used in the Arduino Uno, for example. When a sketch is uploaded, the DTR line of the serial port is pulled low, so by using an edge detector (see schematic), you get a short low pulse to reset the chip.
Now I'm trying to use the same circuit for an ESP8266. However, for some reason, it only works with a 2.2µF capacitor, whereas the Arduino uses a 100nF cap. According to Espressif, the minimum reset pulse width of the ESP8266 is 100µs, so using a 10K pull-up resistor and a 100nF should work (= 1000µs, assuming any voltage under 63% of Vcc is considered 'low').
Why doesn't it work with a 100nF cap, and why do I need a 2.2µF cap (= 22ms)?
I created the schematic in an online circuit simulator, it's at this URL. I understand how the edge detection works, but not why the voltage on the output drops on a rising edge. It should rise ~700mV and then be clamped down by the diode, but why does it go lower than 3.3V?
Thanks a lot!
Pieter
Now I'm trying to use the same circuit for an ESP8266. However, for some reason, it only works with a 2.2µF capacitor, whereas the Arduino uses a 100nF cap. According to Espressif, the minimum reset pulse width of the ESP8266 is 100µs, so using a 10K pull-up resistor and a 100nF should work (= 1000µs, assuming any voltage under 63% of Vcc is considered 'low').
Why doesn't it work with a 100nF cap, and why do I need a 2.2µF cap (= 22ms)?
I created the schematic in an online circuit simulator, it's at this URL. I understand how the edge detection works, but not why the voltage on the output drops on a rising edge. It should rise ~700mV and then be clamped down by the diode, but why does it go lower than 3.3V?
Thanks a lot!
Pieter
Last edited: