W5500 и dhcp_time_handler()

Тема в разделе "Arduino & Shields", создана пользователем Михаил123, 13 фев 2023.

  1. на разных ресурсах пишут про необходимость вызывать функцию DHCP_time_handler() при работе с w5500. насколько это необходимо?
     
  2. SergeiL

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

    Если IP адрес получен по DHCP то нужно периодически вызывать функцию,
    Код (C++):
    Ethernet.maintain();
    и продлевать аренду IP адреса.
    Пишут, что можно каждую секунду, она проверит время, если не прошло половины срока аренды ничего делать не будет.
    Иначе DHCP сервер отдаст данный IP адрес и в сети будет два устройства отвечающие на 1 IP адрес.
    Я DHCP_time_handler() не вызываю, устройства работают уже много лет, глюков нет.
    Поискал, у меня нет ее в Ethernet2
     
    Михаил123 нравится это.
  3. Andycat

    Andycat Нерд

    она есть в примерах родной библиотеки WizNET
     
  4. SergeiL

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

    Да, я уже посмотрел.
    Я использую Ethernet2 с самого начала. Про Ethernet.maintain(); узнал, когда начал разбираться с глюками в сети.
    В примерах Ethernet2 Ethernet.maintain(); нет, что честно говоря очень удивило.
    А так LeonardoETH и амперковские меги с шилдом на W5500 работают очень надежно, ни разу не подвисли.
    На первую LeonardoETH поставил аппаратный вочдог на тиньке, потому что Ethernet иногда отваливался при заливке кода в плату. Но как выяснил потом, связано это именно с заливкой кода.
    За пять лет вочдог ни разу не сработал.
    Когда проверял, срабатывал сразу после отключения свитча, к которому подключена LeonardoETH.