kolban wrote:Howdy Stoney,
I'm not particularly skilled in electronics so it is very likely I could have made a mistake here ... however my thinking has been that when I press the button I want it to reset immediately ... and had no need for a "press and release" ... so the pulse circuit gives me just a single push for a reset.
What I would have liked to achieve would be a second button which would also pulse a reset while at the same time place GPIO0 low so that we would enter flash mode. However I haven't gotten around to experimenting in that area yet.
As for changing the output voltage of the USB->UART converters, that's a great tip and I'll look into whether mine can do that or not. I'm using CP2102's which I believe are different from what you mean when you say an ftdi?
I am using a CP2102 also and I think, not 100% yet, that they are all 3.3v output.
The core is definitely 3.3v on them.. ok just looked at the data http://www.silabs.com/Support%20Documents/TechnicalDocs/CP2102-9.pdf
5v supplys the USB transceiver lines but the internal Vdd is max 3.3v and internally regulated and the UART output specs are Vdd .. so you definitely need no voltage dividers for a CP2102. Your chip is only getting about 2v to the receive pin, just acceptable.
My module has a solderable link for 5v or 3.3 but it only changes the Vdd output on the header, not the logic levels. Since the 5v vdd can supply over 1A on my PC, I leave it on that and use an external 3.3v reg, switching the serial module to 3.3 uses the CO2102's internal regulator, limiting current to 50mA.
An FTDI has a seperate supply pin just for the UART I/O and this can be 3.3 or 5v depending on the serial module, hence some dare needed.
You could eliminate your bootloader button entirely using your current circuit, just connect GPIO to the other side of the cap, directly to the switch.
It is held at 0v while button is pressed and sends a pulse to the reset line still, ideal.
one issue, you will always enter bootloader mode pressing the button so it is no longer just a reset.
unless you added a jumper ..