Pages: 1 2 [3] 4   Go Down
Author Topic: No TCP/IP link,without pressing the reset button  (Read 16662 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 14
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I soldered a 100nF cap between the Reset-Pin and GND and you were right, the external power up is now working without having to reset the ethernet shield.

But it's not possible to download sketches anymore when the ethernet shield is pluged on the arduino. I get the following error message:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x1e

It seems that the auto reset doesn't work anymore. I've got an Arduino Duemilanove. Do you have the same problem or any idea to solve it?

Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 13
Watterott electronic
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you solder a smaller Cap 20 - 47 nF between the switch.
I can not test it today, because I have no board in stock.

Best regards
Stephan Watterott

---------------------
Watterott electronic
www.watterott.com
« Last Edit: January 13, 2009, 03:53:55 am by Stephan_Watterott » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 14
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I tried it with 50nF (two 100nF capacitors in series) and it works. Now I can power the arduino external and the ethernet shield starts operating without a reset and the sketch upload is possible, too.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Add me to the list of people running into this problem, I'm pretty disappointed considering I just bought it, I thought perhaps they would have fixed it by now.

Can somebody post a picture (or diagram) of the cap workaround?  I tried soldering a 22nf cap between the legs of the reset switch on the ethernet shield and that doesn't seem to do it.

This is the last step to making my project complete, so I'd love any help!  Thanks!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 14
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Instead of soldering a SMD cap between the button's pins you can also plug a normal cap between the Reset and Ground pin. I used two 100nF in series (together 50nF). Maybe 22nF is too small.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

By the way I ended up just 'working around' this problem by instead using the LadyAda ethernet shield, which has the additional advantages of having the wiznet module on a daughterboard and allowing you to very easily independently reset it.

Plus you get to solder it together, which is always fun.

I would recommend that route for anybody who doesn't want the headache of mucking with the current 'official' ethernet shield.  Sad but true. smiley-sad
« Last Edit: February 28, 2009, 01:53:18 pm by nicpottier » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks all --

1.  To keep that reset line low for a while, you can stick pretty much any capacitor there.  I tried it with 22uF in the reset and ground lines of the stacking header.  Worked immediately.  (Thanks Stephan).

2.  AGT's technique of using an output pin is theoretically do-able with the hardware as it stands: the Atmega 168 can have the reset pin configured as an output (by changing the hfuse value).  Then you can use the power-on reset of the Atmega (or watchdog) and drive the reset line from the CPU to reset any other circuitry -- very nice.  BUT the reset line is used by all the ISP programmers, so unless you have a non-ISP programmer you won't be able to modify the bootloader code.  (Unless you get it right first time, you won't be able to reprogram the atmega.  Thankfully I have a few spare CPUs.)

Conclusion: do it with the capacitor.

J.
Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 55
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have tried tow 100 nf capacitors in sires and ti doesn't seem to work
by the way i am using NKC Ethernet Shield and Freeduino Serial v2.0
Logged

Italy
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Life gets harder the smarter you get, the more you know. - Katharine Hepburn
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello all,
I had 14 Arduinos, each equipped with ethernet shield and ID-12 RFID integrated reader and ONLY 6 of them experienced the "reset issue". Before reading this post I tried with 100nF cap (I had a lot of BAD RESET experience with Z80 and PICs) and it didn't work. I increased to 470nF and it was OK! I suggest to add a 1N4148 or similar diode from reset line (anode) to +5V (cathode) to fast discharge the capacitor when power goes off, otherwise it will discharge via the ESD diode inside the ATMEL and this is not really safe.
Hope this helps, have fun with the ETH shield + Arduino and HAPPY NEW YEAR.
Rino
« Last Edit: December 29, 2009, 06:48:34 pm by iz6bmp » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 12
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I did not manage to bring Ethernet Shield into stable operation. I always have to press reset. There must be a design problem. If Ethernet Shield needs a different Reset timing then it should have its own reset cuircit.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 7
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Is there a definitive solution to this now? Judging from the responses, it seems like a capacitor between reset and ground in the stack header looks the easiest solution. Would this be suitable?

http://www.maplin.co.uk/Module.aspx?ModuleNo=318 (JL01B or JL02C)
« Last Edit: March 23, 2010, 04:14:41 pm by gazoakley » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 14
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is my working solution:

1. don't connect the reset pin of ethernet shield to the arduino (bend it a little bit away)
2. connect the reset pin of ethernet shield to a digital pin of the arduino

use the following init code:
void init_ethernet()
{
  pinMode(DO_RESET_ETH_SHIELD, OUTPUT);      // sets the digital pin as output
  digitalWrite(DO_RESET_ETH_SHIELD, LOW);
  delay(1000);  //for ethernet chip to reset
  digitalWrite(DO_RESET_ETH_SHIELD, HIGH);
  delay(1000);  //for ethernet chip to reset
  pinMode(DO_RESET_ETH_SHIELD, INPUT);      // sets the digital pin input
  delay(1000);  //for ethernet chip to reset
  Ethernet.begin(mac,ip,gateway,subnet);
  delay(1000);  //for ethernet chip to reset
  Ethernet.begin(mac,ip,gateway,subnet);
  delay(1000);  //for ethernet chip to reset
}

another positive side effect:
it is possible to run init_ethernet() whenever the ethernet chip stops working correctly
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 7
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I can see how that would work, but I'm a bit hesitant to start cutting/bending pins on the ethernet shield smiley

Does the trick with the capacitor work? Would the previous component I linked to be suitable?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 14
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've had the capacitor solution before and was not satisfied.

Sometimes after power failures the Ethernet shield didn't come up again.
When it hangs, there is no possibility to make a automatic reset.

Don't worry about bending the reset pin, it just needs 2 millimeter to not plug into the arduino socket.
Logged

HOLLAND
Offline Offline
Full Member
***
Karma: 0
Posts: 178
HOLLAND!!!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

its wierd but i had the same problem.
untill set a gateway and subnet
Code:
// doesn't work
#include <Ethernet.h>
byte mac[]     = { 0x00, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[]      = { 192, 168, 2, 50 };
Server server(80);

Code:
// does work without reset or annything
#include <Ethernet.h>
byte mac[]     = { 0x00, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[]      = { 192, 168, 2, 50 };
byte gateway[] = { 192, 168, 2, 1 };
byte subnet[]  = { 255, 255, 255, 0 };
Server server(80);
Logged

Pages: 1 2 [3] 4   Go Up
Jump to: