Es ist mal wieder soweit..... =(
ich habe eine Anwendung, die mit einem Ethernetshield tadellos funktioniert. Nun hat mich aber das Ethernet-Modul http://imall.iteadstudio.com/m120525007.html so fasziniert, dass ich wissen wollte, ob es das Ethernetshield ersetzen kann (ist ja auch wesentlich preiswerter).
Ergebnis: Die Zeile Ethernet.begin(mac); führt schon nicht zum Erfolg. :0
Ich vermute dass ich mit dem RST (neg) noch was machen muss. Was kann der Pin eigentlich machen?
CS habe ich nochmal extra definiert, da ich nicht weiß, ob Pin10 in der Library der Default-Wert ist.
Wer har Erfahrung mit dem Modul und kann helfen?
Gruß
Eberhard
Kenne ich zwar so nicht und kann jetzt betreff Code nicht weiterhelfen, aber:
Wenn man mal in das ladbare Schaltbild schaut ist extern NSS mit CSS vom Chip verbunden.
Überstrichenes RST bedeutet "Reset negativ aktiv" - d.h. leg den Pin mal definiert auf +5V. Vielleicht hilft das ja schon. Oder auf irgendeinen freien Pin und setz den auf HIGH. Ansonsten sieht die Beschaltung für den UNO so weit korrekt aus.
Lt. Schaltbild liegt der RST schon über einen 10K an 3,3V - man könnte den via eines freien Pins dann nach Masse ziehen und Reset auslösen. Muss aber nicht.
Also muss der überstrichene NSS-/CSS-Pin nach Masse, damit der Select aktiv ist !
Noch was:
Ich hab zwar nix mit W5100 hier, aber einen ENC28J60 mit Doku.
Die Beschaltung ist da gleich und /CS ist auch als negativ aktiv definiert (ebenfalls mit 10K nach Vcc).
Also m.E.n. eine übliche Beschaltung, die auch so funzen sollte.
Es geht nicht!
Ich habe mal spaßeshalber das Shield mit Kabeln genauso angeschlossen - Ergebnis: geht auch nicht!! Ist das wirklich so ok? Die LED flackern genauso wie beim Shield, für den Arduino kommt nix lesbares offensichtlich an.... Das Shield wieder huckepack - und alles läuft tadellos.
Werden für das Ethernetshield wirklich nur 5V, GND, CS, MOSI,MISO und SCK verwendet?????
Gruß Eberhard
Edit:
Das Shield läuft inzwischen mit Verbindungen über Kabel. Alle Anschlüsse werden über den ISP-Buchsensockel übernommen. Davon ausgeschlossen ist lediglich der CSS. Der wird an PIN D10 erwartet. Das Modul läuft immer noch nicht!!!!!
eberduino:
Unterschied zwischen Ethernetshield und Ethernet Modul?
Der Unterschied ist der:
Das Ethernet-Shield ist sowohl "Arduino-kompatibel" als auch "DAU-kompatibel".
Jeder (oder fast jeder) DAU kann das Ding auf einen Arduino draufstöpseln und es ist dann automatisch richtig beschaltet zur Verwendung mit einem Arduino.
Das "Modul" ist im wesentlichen ein W5100 mit einem 3.3V Spannungswandler auf einem Breakout-Board, das so in der Form nicht Arduino-kompatibel zu den auf 5V laufenden Arduinos ist.
Der 3.3V Spannungswandler passt zwar eine Vin Eingangsspannung von 5V auf ein verträgliches Maß an Spannungsversorgung für den W5100 Chip an. Aber die Datenleitungen werden natürlich nicht an 5V Logikpegel angepaßt, denn auf dem Breakout-Board ist gar kein Pegelwandler als Bauteil verbaut.
Beim Verkäufer steht im Angebotstext auch nirgendwo "Arduino-kompatibel" oder sowas dabei, hat Dich das kein bisschen stutzig gemacht?
Du benötigst zum Anpassen der Logikpegel noch zusätzlich einen "Pegelwandler" Baustein zwischen dem Arduino und dem Breakout-Board. Eventuell funktioniert es auch mit einigen Widerständen als Spannungsteiler.
Außerdem darfst Du den Reset-Pin des W5100 nicht unbeschaltet lassen, der muß natürlich auch verbunden sein und darf nicht frei in der Luft hängen gelassen werden.
BTW: Billige Arduino-kompatible Ethernet-Shields als China-Nachbauten (funktionsfähig mit den typischen kleinen Macken) gibt es bei Versand aus Deutschland ab ca. 11 EUR (z.B. ebay 200944614818) oder bei Versand aus China ab ca. 8 EUR (z.B. ebay 400537642189).
Dein "Modul" müßtest Du jedenfalls mit zusätzlicher externer Beschaltung für die Anpassung der Pegel auf der Reset- und den Datenleitungen erstmal "Arduino-kompatibel" machen, bevor Du es mit einem Arduino verwenden kannst. In der Form "so wie es ist" hast Du wohl beste Chancen, das Modul auf einem Arduino-DUE zu verwenden: Der DUE läuft nämlich standardmäßig mit 3.3V.
Das würde ich so nicht unterschreiben.
Sagt doch das Datenblatt des W5100, das alle Input "5,5V-tolerant" sind.
Die Out's geben jedoch nur max Vcc / 3,6V von sich.
Es bliebe die Frage, wo liegt bei einem Arduino - in diesem Fall ein UNO - die definitive Schalthysterese zwischen Low und High ?
Nach meinen bescheidenen Elektroniker-Kenntnissen liegt die meist so bei 1,5V. Manchmal etwas drunter, manchmal etwas drüber.
Das Datenblatt des W5100 gibt für MINIMAL Vout nun 2,0V an - das könnte logo etwas haarig werden, wenn der Dino dagegen gleichzeitig arg unsensibel an den Eingängen ist.
Glaub ich allerdings zunächst mal nicht wirklich dran - bliebe aber im Auge zu behalten !
Ich tippe vielmehr auf eine falsche Pin-Zuweisung in der LIB-Initialsierung. Obwohl so was eigentlich ganz offensichtlich scheint, habe ich mich da auch schon mal ne Weile selbst mit veräppelt, als die gleiche Lib (nicht LAN) nun vom laufenden Mega auf nem UNO laufen sollte ....
ich habe 5 von den dingern hier herumliegen und auch zwei davon mit einfachem programm zum schalten einer led über weboberfläche ausprobiert. gab kein problem.
Eisebaer:
ich habe 5 von den dingern hier herumliegen und auch zwei davon mit einfachem programm zum schalten einer led über weboberfläche ausprobiert. gab kein problem.
Reset vom Modul einfach mit Reset vom Arduino-Board verbunden?
Auch mal mit einem MEGA getestet?
Btw: Ich hatte vorhin noch mal bei meinen NRF24-Sachen geguckt. Die RF24-Lib arbeitet ja auch mit der SPI-Lib.
SPI erkennt ja an gesetzten defines, welches Board aktuell ist und schiebt SCK,MOSI und MISO passend auf die PINs.
Allerdings muss man schon definiert angeben, welche Pins (bei RF25) die CE UND CS sind - das ist ja freibleibend.
Ich würde da einfach noch mal genau in den Code gucken .....
(Das war das, wo ich mich w.o. stundenlang selbst vereimert habe)
hier noch der testsketch. die beiden oberen buttons schalten die led.
EDIT: die seite ist für mobiles optimiert. geht mit neuen browsern auch, aber da muß man oft 2 oder 3mal drücken.
aufruf mit: (bei mir) 192.168.2.153/rgb
Eisebaer:
hab's jetzt mit mega aufgebaut und getestet.
...
reset verbunden und nichtverbunden probiert, bei verbunden kann ich keinen sketch hochladen.
OK, dann ist mein Beitrag von weiter oben hinfällig.
Arduino-Kompatibilität ist gegeben, da die Eingänge auch tolerant gegenüber 5V I/O-Pegeln sind und keine Pegelwandler notwendig sind.
Und Du hast getestet, dass das Modul ohne verbundenen Reset funktionsfähig ist.
Was bleibt übrig? Vielleicht ist sein Modul mal runtergefallen und nun ist der Schwingquarz defekt?
Das müßte man wohl anhand der Status-LEDs erkennen können?
Bei nicht angeschlossenem Netzwerkkabel dürfte nur die Power-LED leuchten.
Und mit eingestöpseltem Netzwerkkabel sollten weitere LEDs angehen.
@eberduino: Gehen LEDs beim Einstöpseln des Netzwerkkabels an?
Wenn ja, wie sind sie auf der Platine beschriftet?
Nochmal ein BTW:
Was hat der /RS-Pin (aktiv low) des Modul mit dem RESET (aktiv high - wenn ich das richtig weiß) des Arduino zu tun ?
Wie ich oben schon schrieb, ist der /RS-Pin des Moduls auf seinem Bord mit 10K an Vcc (dort 3,3V)
Steck man die beiden zusammen, was passiert dann wohl ?
Denk ....
Denk ....
Denk ....
Rischtisch ! Der Dino sitzt dauerhaft auf RESET.
Sozusagen eine AUTO-NO-GO-Schaltung. ]
beide active low. drum muß man ja reset an V+ hängen, damit der atmega läuft. oder mit pullup an V+, damit man ihn bei bedarf nach gnd ziehen kann.
die hier beschriebene kombi läuft auch problemlos mit verbundenen resets, nur kann man keinen sketch aufspielen.
beschreibung:
kein netzwerkkabel: nur 1. led leuchtet PWR
netzwerkkabel dran: die ersten vier leuchten, unregelmäßig blinkt RX kurz auf, zugleich geht LINK kurz aus. ca. alle 1 bis 1,5 sekunden.
signal kommt: RX und TX blinken auf, LINK kurz aus.
@eberduino: Gehen LEDs beim Einstöpseln des Netzwerkkabels an?
Wenn ja, wie sind sie auf der Platine beschriftet?
Wenn der Arduino mit USB verbunden wird, leuchtet PWR immer (das ist schon mal gut so).
FDX blinkt 5 x langsam (sieht aus wie Polling) danach gehen LINK, SPD;FDX und die Rx,Tx -Leds 2 - 3 mal als Antwort auf und danach ist bis auf die PWR alles dunkel. Die LED COL bleibt dunkel.
Wenn ich CS auf 3V3 lege leuchten PWR, LINK,SPD und FDX, Wenn Rx bzw Tx leuchten geht Led LINK währenddessen aus. Deutlich aktiver als die obige Variant, bei der CS auf Pin10 des Uno liegt. Auch hier bleibt COL dunkel.
.... deswegen noch mal konkret die Frage:
Wo genau ist in deinem Code exakt definiert, das Pin 10 und sonst kein andere der /CS für SPI ist ?
Setzt du den Pin vielleicht schon ganz am Anfang und "irgendwas" kommt im Laufe der weiteren Initialisierung daher und setzt dir den Pin - weil dort in einer LIB oder sonstwas nicht definiert - auf irgendwelche Default-Werte ?
wenn strom da ist und das netzwerkkabel dran, leuchtet nur PWR? da sind bei mir die ersten vier an, rx blinkt mit gleichzeitigem aus von link.
wenn ich NSS vom pin 10 abziehe, ändert das nichts.
COL ist immer dunkel bei mir.
Deine variante mit NSS auf 3.3V scheint so auszusehen wie bei mir, wenn alles in ordnung ist. funktioniert dann das modul mit meinem sketch?
pin10 als CS ist in der library definiert, nicht im code vom ihm. aber das modul sollte ja bei ständig hochgezogenem CS funktionieren, hast Du das probiert? also NSS (=CS, =SS) auf 3,3V.