Uno Netzwerkkarte erst nach Reset funtkional o0

Hallo,

ich habe einen Arduino Uno Clone und ein Ethernet Board clone zusammengebsatelt. Mein Code funktioniert soweit, allerdings erlebe ich das Phänomen, dass die beiden LED´s an der RJ 45 Buchse für das Netzwerkkabel nur leuchten, wenn ich das Konstrukt nach dem initialen einschalten einmal per druck auf den Reset Knopf resette. Ansonsten leuchtet nur die gelbe LED und eine Netzwerkkommunikation ist nicht möglich. Nun kann ich leider nicht immer erst auf den Reset Knopf drücken, mein Konstrukt soll später verbaut werden und dann komme ich nicht mehr dran... Einen Code Fehler schließe ich einfach mal aus, denn sonst würde er ja generell nicht funktionieren und nicht erst nach einem reset.

Kann sich und vorallem mir das einer erklären? Ich bitte um Hilfe, lamentiere damit schon wirklich lange rum und komme einfach nicht weiter. Danke! :-[

Einen Code Fehler schließe ich einfach mal aus, denn sonst würde er ja generell nicht funktionieren und nicht erst nach einem reset.

Ohne den zu sehen, kann man das ganze nicht ausschließen!!

Dein Problem wird sein, dass zuerst der Arduino mit Strom versorgt wird und dann erst das LAN-Kabel eingesteckt wird.

naja, das LAN KAbel steckt ja die ganze Zeit drin, aber ich vermute Du meinst das Ethernet Modul!?

Irgend eine Idee wie ich das Problem beheben kann? Delay?

Tipp in's Grüne: wird evtl. ein haarscharfes Timingproblem sein, bei der Initialisierung kann's haken.

Aber ohne Hard-/SW-Infos eben nur ein Tipp.

OK das hört sich interessant an. Welche Info wird genau benötigt und wie könnte ich dieses Problem beheben?

Gruß

Welche Info benötigt Ihr noch?
Es handelt sich um eine DccEle DCCduino Uno und ein Uno Kompatibles Ethernet Shield mit Wiznet W5100 Chip.

Siod:
DccEle DCCduino Uno

Uhh, was ist das denn? ???

Und lies einfach nochmal die erste Antwort :frowning:

Siod:
Welche Info benötigt Ihr noch?

Tritt das Problem nur mit dem von Dir geschriebenen Code auf?

Oder tritt das Problem auch mit den Beispielprogrammen zum Ethernet-Shield auf, z.B. WebClient oder WebServer?

Und woher bekommt Dein Board seine Betriebsspannung:

  • über die USB-Buchse?
  • über die Netzteilbuchse?
  • oder direkt über den 5V Pin?

Eventuell findest Du hier nähere Informationen:

Ich würde wohl ggf. mal die Lösung mit dem zusätzlichen Kondensator zwischen GND und RESET am Ethernet-Shield ausprobieren. Wert ca. 10nF bis 100nF.

Im optimalen Fall soll dann sowohl das Ethernet-Shield ohne den extra Reset starten, als auch der Auto-Reset am Arduino-Board noch funktionieren, so dass neue Sketche automatisch hochgeladen werden können.

Klaus_ww:
Uhh, was ist das denn? ???

Und lies einfach nochmal die erste Antwort :frowning:

ich habe einen Arduino Uno Clone und ein Ethernet Board clone

Mit "Clon" meinst Du eigentlich Fälschungen (platinen die Arduino sein wollen aber es von der herkunft nicht sind)?

Mir scheint das ein Problem mit dem Reset beim Einschalten zu sein. Ich weiß aber keine Lösung.

Grüße Uwe

Hallo und Danke für Eure Antworten!

Ich habe auch nochmal ein wenig (ok, sehr viel) gegooglet und es handelt sich hierbei um ein bekanntes Problem des W5100 Chips. Kurzum: der Uno bootet schneller als das Ethernet Shield, somit kommt es nicht hinterher und ist erst nach einem Reset Einsatzbereit. Das mag für den einen oder anderen Einsatzzweck ok sein, da ich das Gerät aber nur sporadisch eisnchalte habe ich hier weiter nach einer Lösung gesucht, leider hat aber keiner der Lösungsansätze funktioniert.
@jurs ich habe zur Zeit keinen Kondensator zur Hand, ich suche mir mal einen und teste Deinen Vorschlag.

Verstehe ich jetzt nicht so ganz, aber wenn es so wäre müsstest du nur im setup() an erster Stelle ein delay einfügen und dein Problem wäre gelöst/umgangen. Probiers einfach mal aus.

Gruß

@Scherheinz

Das habe ich mir auch gedacht und getestet, hat aber leider auch nicht funktioniert :8

@jurs

Mit einem 10 nf Kondensator hat es nun endlich geklappt, vielen Dank dafür!

Da ich ja ein Elektrotechnik Noob bin: was passiert da eigentlich? Verstehe ich es so richtig:

Uno und Netzwerk Shield booten, der Kondensator lädt sich auf, gibt seine Ladung frei und resettet somit das Netzwerkshield welches darauf hin erneut bootet?

Oder was passiert da genau nachdem ich den Kondensator eingelötet habe??

Gruß und Danke nochmal!

Der Kondensator zwischen Reset und Masse des Ethernetshields lädt sich beim Einschalten über den Pullupwiderstand auf. Dadurch bleibt der Reseteingang wtwas auf LOW. Das sind dann zwar nur Bruchteile von Sekunden aber das genügt um den Ethernetcontroller etwas länger in Reset zu halten bis die Stromversorgung stabil ist und so den Ethernetcontroller zuverlässig starten zu lassen.

Grüße Uwe

Siod:
Oder was passiert da genau nachdem ich den Kondensator eingelötet habe??

Ich bin eigentlich eher Spezialist fürs Programmieren als für Hardware. Aber ich versuche mal eine Erklärung

Der W5100 Chip macht keinen automatischen "Power-On-Reset" beim Anlegen der Stromversorgung. Sondern dieser Chip braucht erst eine ausreichende Stromversorgung zum Starten, und dann danach den definierten Reset von Low nach High einen winzigen Sekundenbruchteil später.

Die teuren Arduino Original-Boards haben dazu heute auf den aktuellen originalen Ethernet-Shields einen eigenen Reset-Controller, der dafür zuständig ist.

Die China-Klone sind allesamt billigere Nachbauten eines älteren Original-Designs, ohne diesen Reset-Controller auf dem Ethernet Shield. Und je nach Bauteiletoleranzen auf dem Nachbau-Board mit dem Nachbau-Shield kann dann das Timing geringfügig falsch sein, so dass es mit dem Reset des W5100 nicht klappt. Und dann kannst Du mit zusätzlichen Kondensatoren am Timing so herumpfuschen, dass es dann auch mit Deiner Kombination aus Clone-Board und Clone-Shield funktioniert, ohne das teure Original Ethernet-Shield mit Reset-Controller für den W5100 zu benötigen.