Ethernet W5100 проверить подключение кабеля

sigma_shig
Offline
Зарегистрирован: 30.12.2016

Есть Mega + Ethernet W5100. Так складываются обстоятельства, что ethernet кабель может и не быть воткнут в плату. При старте я инициализирую соединение и проверяю результат

if (Ethernet.begin(Config.mac) == 0) {
// тут выполняю действия по отсутствию соединения
}

Проблема в том, что этот Ethernet.begin работает достаточно долго. А можно как-то быстренько проверить воткнут ли кабель в плату?

sadman41
Offline
Зарегистрирован: 19.10.2016

Штатно - нельзя. W5100 не поддерживает программные способы определения состояния линка. W5500, например, имеет регистр PHYCFGR, из которого можно читать бит LNK (Link Status). Но опять же - это потребует определенной сноровки при модификации библиотеки-драйвера.

Можно припаяться к выводу, который идет на светодиод в сетевом разъеме. Но проблема в том, что он мыргает при сетевой активности. Т.е. можно столкнуться с тем, что линк есть, а светодиод не горит.