Uno + w5500 получает левый ip

Тема в разделе "Arduino & Shields", создана пользователем Фархад, 14 авг 2021.

Метки:
  1. Фархад

    Фархад Нерд

    Всем привет! Пытаюсь подружить 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 когда модуль подключен - то он отвечает. Но при этом сервис в браузере не доступен, т.е шилда не видит подключений.
     
  2. Фархад

    Фархад Нерд

    Таак! Вот это новость! Ща методом тыка поставил адрес 10.10.10.1 - он его съел все ок. Стал поднимать первую группу -192.10.10.1 он его съел, стал вторую группу поднимать 192.168.10.1 и тут пошли рандомы. Опустил до 127 вторую группу и заработал, как только поднимаю его выше 127 сыпется рандомы.... Это библиотека или шилд косячные?
     
  3. Фархад

    Фархад Нерд

    Любопытно, прошивается ли модуль? Никто не пробовал?
     
  4. SergeiL

    SergeiL Оракул Модератор

    А если получать адрес по DHCP и фиксировать его по MAC на роутере? Я так всегда делал и никаких проблем.
    Может 76 адрес уже есть?
    Если отключить ардуино и пингануть?
     
  5. Фархад

    Фархад Нерд

    Это домашняя моя сеть ) там 5 устройств максимум и все они с адресом от 100 (по dhcp). 76 точно свободный. Методом тыка убедился, что максимальный диапазон сети он поддерживает 255.127.255.255, т.е. любой адрес из этого диапазона. Похоже на дырку в микросхеме/прошивке микросхемы. У меня есть другой модуль w5500 с этим же чипом, но более ранней серией выпуска, там этот же код отрабатывает успешно. Ща вот думаю написать производителю микросхемы, что подскажут интересно