с неё надо начинать…так смотришь общими усилиями и найдёте в чем косяк
re
Да, посмотрел на плате - так. Только запитан модуль от своего LDO на 3.3V, если это имеет значение.
в даташите написано от 500 микросекунд, откуда я взял 70 миллисекунд не помню
я на 5100 смотрел, значит что-то поменяли кардинально, 2 и 500 сильно большая разница
В общем протестировал. Намеренно словил “странный режим” и будучи в нём дёрнул за ногу reset w5500. После чего модуль вышел из странного режима (огоньки перестали бегать раз в 2 секунды, лампочки начали показывать нормальный линк) и затем после Ethernet.begin(mac, ip); модуль вошёл в нормальный режим работы.
Большое всем спасибо за подсказки !
Вопросик по модулю
Работаю с W5500 и ESP32
Периодически не работает модуль на гигабитном свиче. Лампочки Link не горят совсем. На 100Мб запускается без проблем
pmode все в ON (режим AUTO)
Если не AUTO, как узнать какой нужен режим модуля?
10 или 100, Full или Half duplex ?
100/Full на обоих концах, если на 100 работает устойчиво.
Да. Все так и вышло. PMODE2 посадил на землю и все стало работать и с 1Гб оборудованием
Здравствуйте!
тоже вопрос по W5500, только по шилду от Keystudio. Имел кто-нибудь дело с таким монстром?:
Проблема вот в чем, никак не пойму почему при инициализации сервера, а именно сразу после
Ethernet.begin(MACAddress, IPAddress);
на выводах D11 D12 устанавливается высокое состояние:
#include <SPI.h>
#include <Ethernet.h>
byte MACAddress[] = {0x4C, 0xD3, 0xAF, 0x1B, 0xF8, 0x99};
byte IPAddress [] = {192, 168, 0, 17}; // IP адрес
byte subnetMask[] = {255, 255, 255, 255}; //subnet mask
EthernetServer server(80);
void setup() {
Serial.begin(9600);
pinMode(7, OUTPUT);
digitalWrite(7, 0);
Ethernet.init(10);
Ethernet.begin(MACAddress, IPAddress);
Ethernet.setSubnetMask(subnetMask);
// Запустили сервер
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
Serial.print("dnsServerIP: ");
Serial.println(Ethernet.dnsServerIP());
Serial.print("subnetMask: ");
Serial.println(Ethernet.subnetMask());
Serial.print("gatewayIP: ");
Serial.println(Ethernet.gatewayIP());
}
void loop() {
}
подскажите в чем дело, можно ли использовать D11 и D12, или не трогать их вообще?
даташита по этой плате нет, с продавцом связывался - ничего конкретного не сказал, только скинул ссылку с примерами для этой платы где используется библиотека Ehternet55.h, которая есть в архиве, но с ней компилятор ругается и в ней нет проверки linkStatus:
ссылка
Потомушто D10…D13 - это SPI, по которому W5500 с МК судачит. Трогать их можно, но не нужно, если не знаешь, что делаешь.
на меге SPI это 50,51,52
Тогда трогай.
и чё так усложнять?
/*
Web Server
A simple web server that shows the value of the analog input pins.
using an Arduino Wiznet Ethernet shield.
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
* Analog inputs attached to pins A0 through A5 (optional)
created 18 Dec 2009
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
modified 12 Aug 2013
by Soohwan Kim
*/
примечательно, что такого на шилде w5100 нет
Ничего не мешает подключать без шильда.
Всё зависит от коивизны рук.
Сергей, а подскажите, в итоге на какое время дергали ресет? И если не сложно, можете показать код «дергания» и переинициализации w5500.
Я не экпериментировал с временными интервалами, не до этого пока, просто сделал так и проблема, про которую спрашивал, ушла.
void setup() {
delay(200);
pinMode (pinEthernetReset, INPUT);
digitalWrite(pinEthernetReset, LOW);
pinMode (pinEthernetReset, OUTPUT);
delay(700);
pinMode (pinEthernetReset, INPUT);
delay(100);
инициализация/переинициализация
Ethernet.begin(mac, ip);
Вопрос знатокам. W5500 может работать несколько суток нормально, а потом перестать откликаться на внешние запросы пока его не перезагрузишь. Из этого “состояния зависания” модуль может вывести просто строчка Ethernet.begin(mac, ip); Пока что я придумал только сделать таймер, который дёргает эту строчку раз в 5 минут. Но всё-равно я ловлю прибор на том что это “зависание модуля” случается в любой момент и приходится ждать пока отработает таймер со строчкой. Была ли у кого нибудь такая проблема?