How make simple reset circuit?
#1
Posted 04 June 2013 - 11:19 AM
#2
Posted 04 June 2013 - 12:52 PM
I'm sure you considered a simple RC circuit? fancier is with a diode in parallel with the resistor so that the cap discharges quickly on power down, and slowly on power up.
[font="'courier new', courier, monospace;"]Vdd[/font]
[font="'courier new', courier, monospace;"]^[/font]
[font="'courier new', courier, monospace;"]| 1n914[/font]
[font="'courier new', courier, monospace;"]+---------|<-------+-------* /RESET[/font]
[font="'courier new', courier, monospace;"]| |[/font]
[font="'courier new', courier, monospace;"]| 100k |[/font][font="'courier new', courier, monospace;"] 0.1 uF[/font]
[font="'courier new', courier, monospace;"]+---/////------+--------|(------|i. gnd[/font]
I don't think this qualifies for 'clever', but it might for 'really simple'.
#3
Posted 04 June 2013 - 01:15 PM
#4
Posted 04 June 2013 - 02:07 PM
Good stuff!
I love the ASCII schematic
#5
Posted 04 June 2013 - 10:10 PM
I'm sure you considered a simple RC circuit? fancier is with a diode in parallel with the resistor so that the cap discharges quickly on power down, and slowly on power up.
[font="'courier new', courier, monospace;"]Vdd[/font]
[font="'courier new', courier, monospace;"]^[/font]
[font="'courier new', courier, monospace;"]| 1n914[/font]
[font="'courier new', courier, monospace;"]+---------|<-------+-------* /RESET[/font]
[font="'courier new', courier, monospace;"]| |[/font]
[font="'courier new', courier, monospace;"]| 100k |[/font][font="'courier new', courier, monospace;"] 0.1 uF[/font]
[font="'courier new', courier, monospace;"]+---/////------+--------|(------|i. gnd[/font]
I don't think this qualifies for 'clever', but it might for 'really simple'.
In theory this should work and time wise it does as it takes about 5 ms for !reset to rise which is perfect.
Unfortunately, it only reaches 0.5V which is below what the IC considers a logic high level (Vdd = 5V) so the IC stays in reset.
Also, fall time is unchanged (~20 ms).
I suppose I get voltage divider between the 100k and the impedance of the !reset pin and I should have mentioned, that I'm not just cutting Vdd but also GND which might explain the above behavior (or some of it).
After having thought some more of this, I realize that my problem is not POR at all. I just need voltage to drop much faster when cutting power so my initial question was the wrong one, sorry.
So let me rephrase myself:
Any ideas on how to prevent voltage from lingering 20 ms after cutting power?
#6
Posted 04 June 2013 - 10:26 PM
Simple answer, you need a dedicated power-on reset chip.
Sorry, no "simple throw together" circuit will work. It may works a few times, or under a few conditions.
And yes, my code will work as long as someone hits the button between at a rate of every 1->5 seconds.
However, if the button is hit every 6 seconds, or every 1/2 second, the code will blow, create a black hole, and destroy the universe. :-O
FWIW, a real analysis of just a simple RC circuit is 10-20++ pages.
For something quick, easy, cheap, check out:
http://www.maximinte...dex.mvp/id/1472
http://datasheets.ma...X698-MAX699.pdf
Comes in DIP, there's one on ebay for ~$5.
Cheap easy reset circuits all depends on the application. IMHO, use a proper power-on reset chip. Or, plan on allowing for seconds between power-off/power-on.
Good Luck!
#7
Posted 04 June 2013 - 11:03 PM
That's a really nice one, seems to have a watch dog too but not exactly the cheapest thing around...
Hmm...I suddenly have a notion as of why various vendors of consumer electronics require you to wait for 5+ seconds when power cycling before plugging the cord back in. If D-link can't afford the MAX698, how can I?
Are you saying the MAX698 would remedy the 20 ms lingering voltage problem?
#8
Posted 04 June 2013 - 11:52 PM
It depends on the voltage, QUANTITY, etc.
IMHO, for a few parts, be smart, do it easy and simple.
Or, waste a LOT of time and money screwing around.
IMHO, unless someone knows why it would take many pages to do an analysis of just a simple RC circuit, they will likely be wasting massive amounts of time and money in trying to do a fast reset/power-down/brown-out circuit. :-)
For low cost, check out TI tlv810s series: (~$0.50)
http://www.ti.com/product/tlv810s
They also have a development board for $20.
For easy, DIP, and 3.3v:
MAX793, MAX793R, MAX793S, MAX793T, MAX794, MAX795, MAX795R, MAX795S, MAX795T
3.0V/3.3V Adjustable Microprocessor Supervisory Circuits
http://www.maximinte...dex.mvp/id/1189
(About $10 for DIP package on ebay)
#9
Posted 05 June 2013 - 01:10 AM
It depends on the voltage, QUANTITY, etc.
IMHO, for a few parts, be smart, do it easy and simple.
Or, waste a LOT of time and money screwing around.
Yes, you are right of course.
For low cost, check out TI tlv810s series: (~$0.50)
http://www.ti.com/product/tlv810s
They also have a development board for $20.
Interesting, I'll have a closer look at that one.
Thanks!
#10
Posted 05 June 2013 - 03:14 AM
Hmm well glad your problem was not reset related, but I'm not sure about your test results:
* the voltage at /reset /must/ drive towards Vdd (assuming an infinite input impedance at the /reset pin). quiescing at 0.5v (unless that is a typo) is much too low. must be on the wrong pin or perhaps something is driving that line.
* the Vih for /reset is ~ .8 * Vdd as per device spec, so ~ 4v. you could adjust R or C to alter time.
* the /reset is a schmidt trigger according to specs, so you should be immune to rise time concerns on the /reset line, so really the RC circuit should do just fine in this case. I myself have used it manymany times, though these days yes the chips handle it themselves (yay, save on discretes)
but at any rate, good that your problem was not reset related after all.
#11
Posted 05 June 2013 - 09:37 AM
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users