Всем привет! Пытаюсь подружить UNO с модулем W5500. Подключил по схеме, задействовал rst ногу UNO (да что с ней что без нее, один фиг проблема) Написал простенький код Код (C++): //Подключение модуля W5500 //CSN -> 10 Uno //CLK -> 13 Uno //MISO -> 12 Uno //MOSI -> 11 Uno // #include <SPI.h> #include <Ethernet2.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xCC }; IPAddress s_ip(192,168,1,76); IPAddress g_subnet(255,255,255,0); IPAddress g_way(192,168,1,1); IPAddress g_dns(192,168,1,1); EthernetServer server(80); void setup() { Serial.begin(9600); Ethernet.begin(mac,s_ip); //Ethernet.begin(mac,s_ip,g_dns,g_way); server.begin(); Serial.print("Server is at "); Serial.println(Ethernet.localIP()); } void loop() { EthernetClient client = server.available(); if (client) { Serial.println("new client"); client.stop(); Serial.println("client disconnected"); delay(1000); } } На строке Serial.println(Ethernet.localIP()); результат отображает как 192.80.2.176 Каждый раз когда жму Reset на UNO, то адреса ваще какие-то рандомные выпадают: Server is at 192.80.2.176 Server is at 192.80.2.48 Server is at 192.80.2.48 Server is at 192.80.2.48 Server is at 192.80.2.176 Server is at 192.208.2.176 Server is at 192.80.2.48 Server is at 192.80.2.48 Не пойму, где косяк или в какую строну копнуть... Может кто сталкивался с подобным? Пробовал явно подать и ip и маску и шлюз, и все равно такая лажа получается... Пробовал задействовать библиотеку Ethernet, результат тот же... А еще прикол в том, что если я пингую адрес 192.168.1.76 когда модуль подключен - то он отвечает. Но при этом сервис в браузере не доступен, т.е шилда не видит подключений.
Таак! Вот это новость! Ща методом тыка поставил адрес 10.10.10.1 - он его съел все ок. Стал поднимать первую группу -192.10.10.1 он его съел, стал вторую группу поднимать 192.168.10.1 и тут пошли рандомы. Опустил до 127 вторую группу и заработал, как только поднимаю его выше 127 сыпется рандомы.... Это библиотека или шилд косячные?
А если получать адрес по DHCP и фиксировать его по MAC на роутере? Я так всегда делал и никаких проблем. Может 76 адрес уже есть? Если отключить ардуино и пингануть?
Это домашняя моя сеть ) там 5 устройств максимум и все они с адресом от 100 (по dhcp). 76 точно свободный. Методом тыка убедился, что максимальный диапазон сети он поддерживает 255.127.255.255, т.е. любой адрес из этого диапазона. Похоже на дырку в микросхеме/прошивке микросхемы. У меня есть другой модуль w5500 с этим же чипом, но более ранней серией выпуска, там этот же код отрабатывает успешно. Ща вот думаю написать производителю микросхемы, что подскажут интересно