Hallo, ich habe eine PCB mit dem Atmega2560 und dem Ethernet Chip W5500 entwickelt. Nun ist es ja so, daß der 2560 mit 5V und der W5500 mit 3.3V versorgt werden. Laut Datenblatt des W5500 soll dieser 5V tolerante IOs haben und bis 5.5V(Absolute Maximum Ratings) aushalten können. Ich habe den SPI Bus direkt vom µC zum W5500 angeschlossen, also 5V Pegel. Die Schaltung funktioniert ohne Probleme. {Bei einem der billigen TFT Displays lief anfangs nix, bis ich MOSI,SCK und CS mit Spannungsteilern (1K0/1K8) versehen hatte.} Meine Frage nun: Hat jemand schonmal Probleme bekommen wenn die SPI nicht 3.3V sondern 5V Pegel hat? (nur i.V. mit dem W5500 und 5VµC!)
Wolfram F. schrieb: > Hallo, > ich habe eine PCB mit dem Atmega2560 und dem Ethernet Chip W5500 > entwickelt. Nun ist es ja so, daß der 2560 mit 5V und der W5500 mit 3.3V > versorgt werden. > Laut Datenblatt des W5500 soll dieser 5V tolerante IOs haben und bis > 5.5V(Absolute Maximum Ratings) aushalten können. > Ich habe den SPI Bus direkt vom µC zum W5500 angeschlossen, also 5V > Pegel. > Die Schaltung funktioniert ohne Probleme. > {Bei einem der billigen TFT Displays lief anfangs nix, bis ich MOSI,SCK > und CS mit Spannungsteilern (1K0/1K8) versehen hatte.} > Meine Frage nun: > Hat jemand schonmal Probleme bekommen wenn die SPI nicht 3.3V sondern 5V > Pegel hat? (nur i.V. mit dem W5500 und 5VµC!) Kann funktionieren, ist aber nicht durch die Datenblätter garantiert (uC LOW output max 0.9V - W5500 LOW input max 0.8V, W5500 HIGH output min 2,4V - uC HIGH input min 0.6VCC = 3V). Auch beachten: VCC W5500 max 3.6V. LG, Sebastian
Wolfram F. schrieb: > Laut Datenblatt des W5500 soll dieser 5V tolerante IOs haben und bis > 5.5V(Absolute Maximum Ratings) aushalten können. Tun sie auch, auch nach meinen Erfahrungen. Die Designer der verschiedenen W5x00 Module sehen zwar auf der Seite der 5V zum Chip (SCLK, MOSI, CS) immer noch Buffer vom Typ 74LVC125 vor (das muss man sich erklären!), das dient aber dazu eine eventuell angeschlossene SD Karte zu schützen. Die MISO Ausgänge der W5x00 Module und SD Karten (die ja 3.3V sind) gehen immer "blank" direkt auf den 5V Megaxxxx Controller. Wolfram F. schrieb: > Hat jemand schonmal Probleme bekommen wenn die SPI nicht 3.3V sondern 5V > Pegel hat? Ich nicht, und ich habe schon einiges mit den W5500 Modulen im Zusammenspiel mit Mega328p und Mega2560 gemacht. Siehe Beitrag "Re: TCP Server ATmega328" Besonders das Kombi-Modul (3. Foto, Arduino 328p und W5500) macht es auch nicht anders, d.h. 3.3V MISO geht auf den 5V Mega328p. Hier eines meiner Testaufbauten mit Arduino Mega2560 mit dem ich sowohl mit W5100 als auch mit W5500 Modulen arbeite: Beitrag "Re: TCP Server ATmega328" Wolfram F. schrieb: > {Bei einem der billigen TFT Displays lief anfangs nix, bis ich MOSI,SCK > und CS mit Spannungsteilern (1K0/1K8) versehen hatte.} Ja bei den Displays ist alles anders, wir haben da auch schlechte Erfahrungen gemacht. Obwohl 5V Toleranz angepriesen wird. Sebastian schrieb: > W5500 HIGH output min > 2,4V - uC HIGH input min 0.6VCC = 3V). So hab ich auch lang argumentiert, und rechnerisch klappt es demnach also nicht wenn man alle Specs pingelig einhalten möchte. Aber die Praxis (wo meist keine Extrem-Toleranzen ausgefahren werden) zeigt dass es meist problemlos funktioniert.
Na dann bin ich ja beruhigt und werde SPI so lassen. Ich hoffe daß die bestellte RJ45 Buchse mit integrierten Übertrager bald kommt, solange kann ich noch nicht richtig testen. Was mich noch etwas stutzig macht: Da die Buchse noch fehlt, müsste da nicht beim Beispiel-Sketch eine Fehlermeldung "Ethernet cable is not connected" kommen?
1 | |
2 | if (Ethernet.hardwareStatus() == EthernetNoHardware) |
3 | { |
4 | Serial.print(F("NO Ethernet Hardware!\n")); |
5 | } |
6 | if (Ethernet.linkStatus() == LinkOFF) |
7 | { |
8 | Serial.print(F("Ethernet cable is not connected.\n")); |
9 | } |
10 | Serial.println(Ethernet.localIP()); |
es kommt die vorher eingestellte IP-Adresse. "Denkt" der W5500 ohne angeschlossenem Übertrager vielleicht, er hat eine Verbindung? Oder ist der Schaltplan nicht korrekt?
Wolfram F. schrieb: > es kommt die vorher eingestellte IP-Adresse Was sollte die Software auch sonst machen wenn sie keine andere IP Adresse von aussen bekommt (bekommen kann)? Wolfram F. schrieb: > "Denkt" der W5500 ohne angeschlossenem Übertrager vielleicht, er hat > eine Verbindung? Was die Arduino-Software im Einzelnen macht weiss ich auch nicht, ich schreibe meine Treiber selbst nach meinen Bedürfnissen. Wolfram F. schrieb: > Oder ist der Schaltplan nicht korrekt? Das herauszufinden ist dir selbst überlassen. Du kannst deinen Schaltplan ja ganz einfach mit den Referenz-Designs vergleichen. Die Schaltpläne der verschiedenen Module sind ja frei verfügbar.
Wolfram F. schrieb: > Die Schaltung funktioniert ohne Probleme. Wolfram F. schrieb: > Da die Buchse noch fehlt, müsste da nicht beim Beispiel-Sketch eine > Fehlermeldung "Ethernet cable is not connected" kommen? Ich sehe da eine gewisse Diskrepanz zwischen deinen beiden Aussagen. Wie kannst du behaupten "funktioniert ohne Probleme" wenn du noch kein einziges Byte bzw. Paket übertragen hast? Bleibt zu hoffen dass du in deinem Layout deines Designs auch alles richtig gemacht hast.
das bezog sich auf den SPI Bus und das grundsätzliche Ansprechen des Chips.
Wolfram F. schrieb: > das bezog sich auf den SPI Bus und das grundsätzliche Ansprechen des > Chips. Wolfram F. schrieb: > Die Schaltung funktioniert ohne Probleme. Wenn du sonst auch so genau mit deinen Annahmen bist dann kann ja fast nichts mehr schiefgehen. Der SPI Bus funktioniert erst dann korrekt wenn du Millionen von Bytes fehlerfrei übertragen hast. Viele Leute schreiben ein Byte in ein Register, lesen das Register zurück und freuen sich einmal dass sie genau das zurück- bekommen was sie geschrieben haben. Ein richtiger Härtetest auf Heimlabor-Basis sollte zumindest einen LoopBack Test über mehrere Millionen Bytes in verschiedenen Werte-Kombinationen durchführen und keine Fehler finden.
Stimmt. Dann muss ich mich in Geduld wälzen und auf die RJ45 Buchse warten und dann ausgiebig testen. Danke erstmal !
:
Bearbeitet durch User
Wolfram F. schrieb: > Stimmt. Ja. Wolfram F. schrieb: > Dann muss ich mich in Geduld wälzen und auf die RJ45 Buchs > warten ..... Nein. Denn einen LoopBack Test kann man auch ohne RJ45 Buchse durchführen. Aber du bist insofern im Nachteil dass du dir die Arduino-Library erst anschauen und erweitern müsstest. Denn einfach so mal auf das SPI Datenregister des Mega2560 schreiben und lesen hilft nicht. Daher sage ich mal voraus dass du diesen Test nicht machen wirst, denn du hast dir mit Verwendung der Arduino-Library das Leben schon mal (sehr) leicht gemacht. Im Schweisse seines Angesichts programmieren ist anders ....
Mit dem DMM im Diodenbereich kann man testen, ob zwischen dem IO-Pin und VCC eine Schutzdiode ist. Bei 5V toleranten Eingängen ist keine solche Schutzdiode vorhanden, sondern eine Z-Diode gegen GND.
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.