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! :-[
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.
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.
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??
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.
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.