Tuesday 10 March 2015

capacitor - Power on reset circuit for microcontrollers


In this schematic, there is a reset circuit with two pushbuttons:


enter image description here


The button marked "warm reset" sends an active low signal to one microcontroller, while the button marked "cold reset" sends a signal to all the microcontrollers on the board. The signal to all of them is normally pulled up by the resistors. Can you help me design a power-up reset circuit for this board? I looked online but most schematics are for active-high signals. I was thinking the correct way to do this is to connect a 10uf capacitor instead of the ground symbol at the bottom of the reset circuit, with the negative side connected to ground. Is this right and if not, what is correct?



Answer



If you want a reliable power-up reset, a simple RC is not the way to do it.


The capacitor you suggest (plus a diode across R1 to discharge the capacitor when power is removed) will sort-of work most of the time, and some crappy products actually use something like that.


Instead it would be better to use a supervisory circuit such as an ADM803 (open drain output), which combines a voltage reference and comparator that work down to a low supply voltage with a RC timer that produces a reasonable length reset pulse when the supply voltage reaches or recovers to an acceptable level. I also don't think much of using the diode rather than a gate- it does not guarantee a proper TTL low level even with a switch, and that issue may cause problems (perhaps immediately, perhaps at low temperatures) when a reset circuit is used since the reset circuit won't pull the output quite as low as a mechanical switch will. Using a push-pull supervisory circuit (ADM809, IIRC) and a quad NAND gate (connected as two AND gates) with the two mechanical switches would make it all kosher (or halal).


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...