Проблема загрузки WIZnet LAN

Tonick2001

✩✩✩✩✩✩✩
22 Дек 2023
1
0
Добрый день! Направьте в правильную сторону. Есть Arduino Uno + Shild WIZnet, загружаю скетч, и вроде все работает, сеть появляется, но при отключении питания и заново подачи шилд не поднимается, сети нет, причем физически нет линка. Помогает только кнопка резет на плате или включение Монитора порта в VSCode, после чего все начинает работать и сеть поднимается....


C++:
void setup() {
  delay(10000);
 
 
  Serial.begin(9600);
  // dht.begin();
    // настройка выводов
  pinMode(gpioRelay1, OUTPUT);
  // Сброс реле в исходное состояние
  digitalWrite(gpioRelay1, lvlReleayOff);
  // Ethernet.begin(mac, ip, myDns, gateway, subnet);
  // Проверка, подключен ли кабель сети
  if (Ethernet.linkStatus() == LinkOFF) {
    Serial.println("Ethernet cable is not connected.");
  }
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP, using static IP");
    Ethernet.begin(mac, ip, myDns, gateway, subnet);
  }
  // else{
  //   delay(5000);
  //   Ethernet.begin(mac);
  // }
  digitalWrite(gpioRelay1, 0x1);
  delay(2000);
  digitalWrite(gpioRelay1, 0x0);


  Serial.print("Server address:");
  Serial.println(Ethernet.localIP()); 
}
void loop() {
  if (Ethernet.hardwareStatus() == EthernetNoHardware) {
    Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");
    // while (true) {
    //   delay(1); 
    // }
    asm volatile ("  jmp 0");
  }
 
  if (mqttConnected())
  {
    mqttClient.loop();
  };
 
  relayControl();
  //  Чтение температуры и отправка в mqtt
  static unsigned long lastTempRead = 0;
  if ((millis() - lastTempRead) >= 10000)
  {
    lastTempRead = millis();
    GetSensorsToPublishMqtt();
  }
}