Liebe Leute, ich hab hier ein Problem und würde von euch gerne hören wie ihr weiter vorgehen würdet. Ich plane eine kleine Leiterplatte mit Atmega1284P, W5500, MagJack HR911102A und Stromversorgung über Mikro-USB. Der Schaltplan ist im Anhang und folgt dem Referenzdesign von WizNet. Die Lieferung von OshPark (http://oshpark.com/shared_projects/AyGGbXqq) ist in der Post und wird wohl in ein bis zwei WOchen eintrudeln. Ich habe diese Schaltung jetzt mal fast vollständig zur Probe aufgebaut, siehe Fotos im Anhang. Die Kommunikation über SPI funktioniert. Es wurde auch tatsächlich ein Link aufgebaut und ich konnte Daten versenden. Allerdings wurde der Datenempfang im Laufe einer halben Stunde oder so immer erratischer. Als ich dann noch eine fehlende Verbindung (Buchsenabschirmung zu GND) hinzugefügt habe, habe ich keinen Link mehr aufbauen können. Ich habe dann die kritischen Verbindungen zwischen W5500 und MagJack (war auf Breadboard) auf der Platine verlötet. Das hat nichts gebracht. Drei der Kondensatoren stammten aus Altbeständen, die habe ich durch neue ersetzt (SMD 0603, mein erstes Mal, was ne fisselei), auch kein Erfolg. Der aktuelle Zustand ist auf den Fotos erkennbar. Ich sehe am Oszi sowohl an MagJack 1/2 als auch auf Kabelpaar 1/2 (TX) am Stecker zum Switch die Linkimpulse des W5500. Ich sehe sowohl an MagJack 7/8 als auch an W5500 Pins 5/6 die Linkimpulse des Switches (machen allerdings einen etwas kurzen Eindruck, so etwa 50ns statt 100ns). Ich hab schon die meisten Kontakte und Komponenten noch einmal durchgemessen, ohne Erfolg. Ich habe dem W5500 einen eigenständigen 3.3V-Linearregler spendiert. Ich habe die Spule gebrückt. Der TOCAP-Elko hat nachgemessen 5uF, der EXRES1-Widerstand 12.4k. Die SPI-Kommunikation steht perfekt, aber ich erhalte keinen Link. Wie würdet ihr weiter vorgehen? Auf die Boards warten, bestücken und Daumen drücken? Quarz et al, TOCAP und EXRES1 auf die Platine löten? W5500 auslöten und ersetzen (wenn ich das schaffe ...)? Ich wüsste halt gern, warum die Probeschaltung erst lief und jetzt nicht mehr funktioniert. LG, Sebastian
Es war der Quarz! Jetzt sitzt er nicht mehr im Steckbrett, sondern ist mit seinen Resonanzkondensatoren nahe am W5500 angelötet, und alles funktioniert bestens und ohne Datenverlust! LG, Sebastian
Hallo Sebastian, ich habe auch mit der Schaltung so meine Probleme gehabt und gelöst. Will mich jetzt mal an das Programmieren ran wagen vom W5500. Kannst du da weitere Infos zur verfügung stellen. Verwende einen ATMega32. Gruß Alex
Alex schrieb: > Hallo Sebastian, > ich habe auch mit der Schaltung so meine Probleme gehabt und gelöst. > Will mich jetzt mal an das Programmieren ran wagen vom W5500. Kannst du > da weitere Infos zur verfügung stellen. Verwende einen ATMega32. > Gruß Alex Hallo Alex, ich werde bedenkenlos die von WizNet für den W5500 angepasste Arduino-Ethernet-Bibliothek verwenden, und mir die Mühe sparen, alles neu zu entwickeln. LG, Sebastian
Hallo Sebastian, das Arduino Shield war doch für den W5100. Hab den W5500 mal an das Arduino-Board angeschlossen. Der W5000 lief damit aber nicht bei mir. Gruß Alex
Hi >das Arduino Shield war doch für den W5100. >Hab den W5500 mal an das Arduino-Board angeschlossen. >Der W5000 lief damit aber nicht bei mir. Kann auch nicht. Vergleich mal die Datenblätter. MfG Spess
Alex schrieb: > das Arduino Shield war doch für den W5100. > Hab den W5500 mal an das Arduino-Board angeschlossen. > Der W5000 lief damit aber nicht bei mir. Hallo Alex, du brauchst die von WizNet modifizierte Arduino-Ethernet-Bibliothek (http://github.com/Wiznet/WIZ_Ethernet_Library). Damit sollte es funktionieren. LG, Sebastian
Hi >du brauchst die von WizNet modifizierte Arduino-Ethernet-Bibliothek >(http://github.com/Wiznet/WIZ_Ethernet_Library). Damit sollte es >funktionieren. Adding function to read / write W5500 PHY configuration register : 4 December 2013 Den W5500 gibt es schon eine ganze Weile. Brauchen die Arduino-Jungs für jede kleine Änderung so lange? Da ist man ja mit Assembler schneller. MfG Spess
spess53 schrieb: > Adding function to read / write W5500 PHY configuration register : 4 > December 2013 > > Den W5500 gibt es schon eine ganze Weile. Brauchen die Arduino-Jungs für > jede kleine Änderung so lange? Da ist man ja mit Assembler schneller. Die Bibliothek ist ja in C++, damit ist man von Anfang an (14-Aug) so fehlerlos dass nur noch von Zeit zu Zeit kleine feature requests nachgepflegt werden müssen ... ;) Aber ernsthaft: Ich finde, WizNet gibt sich mit der Bereitstellung dieser und anderer Bibliotheken grosse Mühe. Nicht jeder Hersteller liefert gleich soviel Quellcode für seine Produkte mit. Schau mal unter http://wizwiki.net. Da gibt es Treiber für den W5500 für Arduino, BSD und CooCox, und Projekte mit dem MSP430 Launchpad und dem Parallax Propeller. Die Geschwindigkeit der Arduino-Jungs selbst ist eine andere Sache. Das ist zum Teil wirklich ein Trauerspiel. LG, Sebastian
Hallo Sebastian, ja das kingt gut eine fertige Bibliothek zu verwenden. Danke für den Link. Habe mir mal die C++ und die Header-Datei erstellt. Habe jetzt zwischen den Jahren Frei und möchte mich damit jetzt weiter beschäftigen. Hoffentlich bekomme ich es hin. An der Stelle schon mal vielen Dank für eure Unterstützung. Habe die beiden Dateien für die Verwendung von Atmel Studio 6 unter C:\Program Files\Atmel\Atmel Studio 6.0\extensions\Atmel\AVRGCC\3.4.1.95\AVRToolchain\avr\include abgelegt und das Projekt neu erstellt. Würden die Dateien dort richtig liegen oder geht das auch im Projektordner? Habe im Projekt dann die Bibliothek mit #icnclude <w5500.h> aufgerufen. Auf jeden fall bekomme ich dann einige "unknown type name 'class' Fehlermeldungen. Kann es sein das man für die Komunikation noch eine SPI.h braucht. Die würde mir dann auch noch fehlen für den ATMega32. Gruß Alex
Hallo Leute, kann denn jemand weiterhelfen bei der Verwendung der Bibliothek? Danke
Hallo ich beschäftige mich auch mit W5500 und versuche derzeit das Example von Codevision von W5200 auf W5500 abzuändern und zwar auf einem Xmega. Derzeit kann ich aber nur über die SPI schreiben (IP ändern etc.). Kann mir Jemand helfen wie man die Driver von der Wiznetseite so ändert das sie auch für andere Plattformen und Mikrocontroller funktionieren. Villeicht hat Jemand ein kleines Beispielprogramm mit einem Webserver der mit einem W5500 von Wiznet läuft.
tobi müller schrieb: > Hallo ich beschäftige mich auch mit W5500 und versuche derzeit das > Example von Codevision von W5200 auf W5500 abzuändern und zwar auf einem > Xmega. Derzeit kann ich aber nur über die SPI schreiben (IP ändern > etc.). Kann mir Jemand helfen wie man die Driver von der Wiznetseite so > ändert das sie auch für andere Plattformen und Mikrocontroller > funktionieren. Villeicht hat Jemand ein kleines Beispielprogramm mit > einem Webserver der mit einem W5500 von Wiznet läuft. Im Endeffekt sind die Unterschiede zwischen W5200 und W5500 nicht so viele. Sobald du auf multi-byte SPI, die leicht unterschiedlichen Adressen einiger Register und die etwas andere Speicherverwaltung umgestellt hast sollte schon einiges funktionieren. Die Wiznet-Arduino-Ethernetbiblithek unterstützt ja W5100, W5200 und W5500 aus einem Source heraus (natürlich mit #ifdef's für die verschiedenen Chips), da kann man die Unterschiede gut erkennen. LG, Sebastian
Hallo, hab gerade die W5500 Platine von eHaJo.de am laufen, momentan schaufel ich nur 80kBit/s durch den Chip aber das geht ganz gut. Ich nutze dafür die Socket Libary von Wiznet und der Hardware SPI von nem Mega644p, macht was es soll, und bis auf einen kleinen aber ärgerlichen Bug in der Lib von Wiznet bin hellauf begeistert. mfg CalM
was war das für ein Fehler in der Wiznet Lib.? Will auch in Kürze mit dem 5500 und der Lib anfangen... Gruss und Danke Peter
Hallo Peter, in der Version 1.0.2 (sollte die aktuelle auf der Homepage sein) wird in der wiz_recive_data und wiz_send_data ein implizieter cast verwendet, der einen Überlauf eines uint16_t nach einem Shift erzeugt. Der Entwickler des Treibers hat vor zwei Tagen einen Bugreport bekommen + Fix erhalten und einen aktualisierten Teiber in aussicht gestellt. In der zwischenzeit kann ich dir einen gepatchten Treiber bereit stellen. Dieser ist aber nur mit dem W5500 Board von eHaJo.de getestet. Ich könnte dort mal fragen ob ich den gepatchten Treiber inkl. AVR Studio 6 Projekt ins Wiki von eHaJo.de hochladen kann. Wenn sollte das ganze dann heute Nacht online sein und ich würde dann dreister weise den Link in den Thread hier packen :-) mfg CalM
Hallo CalM, vielen Dank für die Info. Dieses Problem gab es durch meine vorsorgliche "Performance-"Anpassung der Lib schon nicht mehr :-). Da ich von einem W5100 mit einem ATMega2560 (wo der W5500 den W5100 ersetzen soll) komme und das max. an Performance erreichen möchte, habe ich die WIZCHIP_WRITE_BUF(...), WIZCHIP_READ_BUF(...), wiz_send_data(...), wiz_recv_data(...) und alles was sonst noch den 32bittigen "addrsel" (der eigentlich ja nur 24bit ist) nutzt schon auf einen Pointer auf eine 24bit Union umgestellt, da die Umsetzung mit dem 32bittigen "call by value" addrsel (und sogar echtem shiften beim Senden auf den SPI) auf einem AVR mit 8bit doch einiges an Zyklen kostet und den Durchsatz schmälern könnte. Mal sehen was mit dem besseren SPI des W5500 geht. Derzeit erreiche ich mit dem W5100 und optimiertem Treiber so um die 200-210kByte/s in meiner Applikation. Ich hoffe mal wenigstens in die Nähe des theoretischen Faktors ~3.9 durch den Blockmode des SPI und die einfachere Speicherverwaltung vom W5500 zu kommen... Gruss und Danke Peter
Hallo Sebastian, ich bin gerade dabei ein Board mit Xmega und dem W550io zum Laufen zu bringen. Bis jetzt konnte ich zumindest die grundlegenden Sachen wie IP-Adresse usw. einstellen und das Modul antwortet auch auf dieser IP. Meine Schwierigkeit ist momentan, das Modul zur Ausgabe eines Interrupts bei eintreffenden Daten zu bewegen, damit der Xmega datauf reagieren kann. Kannst du mir ein wenig auf die Sprünge helfen, welche Register ich ansprechen muss? Gruß und Danke Daggi
Hallo Daggi, Dankmar Schmidt schrieb: > Meine Schwierigkeit ist momentan, das Modul zur Ausgabe eines Interrupts > bei eintreffenden Daten zu bewegen, damit der Xmega datauf reagieren > kann. Nein, das hab ich auch noch nicht probiert. Ich würde mich est einmal stur an dem Datenblatt des W5500 orientieren. Es gibt wohl auch von WizNet ein Tutorial (für den W5100) dass die Zustände und Zustandsübergänge der verschiedenen Typen von Sockets erklärt. Eventuell sind dort auch die Interrupts eingeordnet. Wer das mal hat oder wieder findet: Ich würde mich sehr über die URL freuen! Ansonsten habe ich eine erste Version eines Internet-Bootloaders für Atmega1284P und W5500 am laufen, siehe Beitrag "Atmega Eeprom/Flash andauernde Schreibfehler"! LG, Sebastian
Guten Abend Sebastian, das Tutorial wird sich doch finden lassen, oder? Wegen des Bootloaders kann ich nur den von U.Radig empfehlen. Für den 1284p mit ENC28J60 hab ich ihn schon im Einsatz. Vielleicht findest du dort einige Anregungen. LG, Daggi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.