My Arduino AtMega328P board has this circuit for reset. I understand the switch (LTSpice didn't have a switch symbol) pulls the line low, thats obvious, but what does the cap do when reset comes through DTR? Does it invert the signal or only allow a pulse?
Electronic – arduino – the cap for in Arduino reset circuit
arduinocapacitormicrocontroller
Related Topic
- Electronic – arduino – What happens with Arduino digital pin 12 when the power is OFF
- Electronic – arduino – MCP2221 USB To UART Programmer
- Electrical – Arduino Uno-style Reset Circuit
- Electronic – Can someone explain how this circuit works? I have an idea but I dont know if its correct
- Electronic – Remote reset circuit does not work
Best Answer
Yes.
It converts the level-triggered signal DTR into an edge-triggered signal and has the effect of level shifting it to within the operating voltage range of the MCU (+/- a forward diode drop).
DTR (Data Terminal Ready) is a signal line used for hardware flow-control in various EIA serial protocols (such as EIA-232). In your case, it is being "hacked" to serve as a host-initiated reset of your microcontroller.
Ease-of-use
The host has software control over the state of the DTR line, but implementing a short pulse may not be possible due to scheduling or other tasking in the way.
Speed
Perhaps you want a really fast reset (you don't want a user to notice the micro went through a reset), this wouldn't be possible with software control of the reset line directly through DTR. You'd have to send a low-level, then a high-level via your host software.
Level Translation
The DTR line may be at EIA-232 levels, many volts higher (and lower) than the microcontroller can safely tolerate. AC coupling the reset edge severely limits the current (waveform energy) such that it may be safely clamped by the ESD protection diodes attached to the reset pin inside the microchip.