Go Down

Topic: Reset - EN should be implemented as a jumper (Read 4803 times) previous topic - next topic

Mark_H_Harris

Greetings, I am irritated under some conditions because the Uno board resets when I attach from minicom (gnu/linux) over usb connection.

I have reviewed the doc (and schematic) and found the 'Reset - EN' on the board which may be 'cut' to stop the automatic reset (alternately it may be re-soldered to get it back!

The 'Reset - EN' should be implemented as a jumper ('on' auto-reset,  'off' no reset).

That's all.

Thanks !

Kind regards,  I love my Uno!

marcus
 :D

Coding Badly


In the meantime a 10uF capacitor can be used to disable auto reset.


Mark_H_Harris

In the meantime a 10uF capacitor can be used to disable auto reset.


That's nice, where do I put it... better yet, where can I go to read about it?  I've been looking but can't find it.



myggle

#5
May 14, 2015, 12:57 pm Last Edit: May 14, 2015, 12:58 pm by myggle
I was having similar issues in that everytime I open a serial monitor while my sketch was looping, the board would reset.  So I cut the Reset-en trace on my Mega2650r3 and serial reset was no more.  Only problem then was that I could no longer upload new or edited versions of my sketch.  I knew I needed reset-en back, but I also knew I would want it cut again as well so I bought a tiny toggle switch from radioshack and soldered about 8" leads to it with a twisted pair of ethernet wires.  I then soldered the other end of the twisted pair right to the reset-en pads on the Mega. 

Initially, my fix didn't work right away.  Careful inspection of my solder joints revealed that;

A) the solder blobs contacted each other, and
B) the soldered wires were laying down and contacting the surface mount LED right next to the reset-en pads.

To remedy this, I carefully dug out some solder between the pads with a razor knife, and I also tugged at each of the twisted pair in such a way that my leads are pulled away from possibly touching anything else or each other.  I also routed the wires in such a way that they also do not touch each other so there is little chance that the soldered wires will ever try to connect each other again.

My board now works as I want it to.  I can ENable reset to upload the sketch, then disable it to make seamless serial connections.  My project is not all that technical, but it can't tolerate any power losses for any reasons either.






myggle

I am now having issues on my EtherMega board by Freetronics in that I can't get a good solder joint on the RST-EN pads.  I believe this is because on the EM board, there are a few other components very close by making it extremely difficult to get my iron in there in just the right way.  I wish the Mega and subsequent EtherMega would have come outfitted with a 2 pin header on those pads with a jumper affixed.  This would enable to user of the boards to choose the functionality without possibly damaging the board or nearby components.

http://forum.freetronics.com/viewtopic.php?f=25&t=6297

Isaac96

A good way to switch auto-reset on and off would be a single DIP switch.
http://www.digikey.com/short/700tjp
Do not PM me for help. I will delete immediately.
CONNECT THE GROUNDS!

After Tuesday, even the calendar goes W T F

westfw

at ~$1 apiece, it would be one of the most expensive components on the board :-)

Isaac96

The cheapest is 43 cents if you buy 5,000.  ;D :smiley-mr-green:
Do not PM me for help. I will delete immediately.
CONNECT THE GROUNDS!

After Tuesday, even the calendar goes W T F

westfw

if you buy 5000 of everything, $0.43 is still one of the most expensive components on the board.

Isaac96

Do not PM me for help. I will delete immediately.
CONNECT THE GROUNDS!

After Tuesday, even the calendar goes W T F

westfw

Atmega328p DIP is $1.85 in q5000; that's less than 5x the price.
Now, what would be free (or nearly free, anyway) would be to lay out the PCB for a jumper or switch, and then not populate it.  (Just make the existing "smt jumper" much bigger. (and it IS much bigger.  The pad spacing would be similar to the crystal on on the 16u2...))


Isaac96

Do not PM me for help. I will delete immediately.
CONNECT THE GROUNDS!

After Tuesday, even the calendar goes W T F

bperrybap

#14
Jun 14, 2015, 02:49 am Last Edit: Jun 14, 2015, 02:54 am by bperrybap
There is a zero cost option.
On the layout, instead of solder pads make them actual through hole pads with .1" space connected by a small trace.
That way those that want a switch/jumper can simply cut the trace and solder in a 2 pin header and have a nice easy way to enable/disable auto-reset and those that don't won't see any difference to what they have now.


I have seen this used on other products and I think it is a great compromise solution.


There is another solution for your specific situation that also wouldn't increase product part costs.

If RTS is used instead of DTR then the IDE and avrdude can still have full control over the auto-reset (since they know how to toggle RTS) and things like serial monitors would not reset the board when the serial port is opened since they wouldn't drive RTS.
The problem now is that DTR is being used to feed the "auto-reset" circuit which drives reset to the AVR and the OS controls the DTR signal prior to any application getting control of the serial port.


Changing to use RTS instead on the boards that use the 16U2 chip could actually save a small amount of money since
the auto-reset cap and protection diode could be removed.
The 16u2 pin would be directly connected to the AVR reset pin vs to a cap. The 16u2 would drive the pin low when RTS was active and the make the pin an input when it wasn't so the pullup would pull it high and not collide with other reset signal inputs.

I use "pro" boards that don't have any sort USB connection on them. When used with a real FTDI cable, RTS is used and not DTR. This is nice because you can open the serial port with a serial monitor and not reset the board but autoreset still works when uploading code with avrdude.
This is the same thing that would be possible if the arduino boards modified their layout and changed the 16u2 code to use RTS instead of DTR.


What would also be nice about using RTS instead of DTR is that the IDE could even have nice little button that could reset the board without having to disconnect from the serial port since all it has to do is toggle RTS vs when using DTR you have close the serial port and reopen it.

Another  advantage of using RTS vs DTR is that since the cap is removed, debugwire can be used. As it is today, the required cap for the DTR based auto-reset circuit screws up debugwire.


--- bill

Go Up