Есть проблема. Есть MEGA 2560 и сетевая W5500. бывает, что обмен данными застревает, и надо все перезапустить. программный перезапуск ардуины не помогает - только перезапуск по питанию. как это можно решить?
Вы бы получше объяснили суть явления, "обмен данными застревает" - как-то многозначно. Витая пара перегревается и электроны не пускает, w5500 не реагирует на раздражители, ардуино зависает в воздухе...
Leonardo ETH, где стоит ATMEGA32U4 и W5500 работает очень надежно. У меня три штуки стоят далеко от дома, работают уже много лет без единого сбоя и перезапуска. На первой сделал аппаратный watchdog на Тини 13, так как пока отлаживался были проблемы с подключением к LAN. В какой то момент замечал, что в монитор порта данные идут, Мега не зависла, но W5500 подключиться к LAN не может. Если нажать на Reset, или выключить/включить питание - W5500 успешнно подключался к LAN. Если нет подключения к домашнему MQTT серверу - перестаю инверировать выход на watchdog и он ресетит и мегу и W5500. Перед этим инкриментирую количество рестартов по watchdog, и сохраняю значение в EEPROM Почему watchdog на Тини 13, потому что не нашел watchdog на длительный интервал (у меня 30 секунд), чтобы не срабатывал в момент загрузки. Так вот, после установки первой ETH на даче, watchdog ни разу не сработал за уже несколько лет непрерывной работы. Выяснил, что сбои с подключением W5500 были связаны с загрузкой скетча через загрузчик. W5500 переставал подключаться к серверу MQTT после загрузки скетча в Мегу. А без загрузок скетча все рвботае очень стабильно, ни разу watchdog не сработал за все эти годы.
вот у меня такая же фигня "Мега не зависла, но W5500 подключиться к LAN не может" по ресету ардуины - не исправляется, а при перезапуске ардуины по питанию - начинает работать
W5500 - это бутерброд с ардуиной? Если мега не висит, можно ли отдельно перегрузить по питанию W5500? Заводится в таком случае? Что мешает Ардуине перегружать по питанию W5500? Давно-давно-давно с какой-то сетевой платой-бутербродом отгинал ногу и питал ее через ключ. Михаил, ну вам же нужно - чего вас клещами тянуть?
некоторые работают без проблем, а некоторые не могут какую ногу отгибал? пробовал, вроде, ардуиной убирать питание с сетевой, а потом перезапускать ардуину. не получилось. только все вместе, что странно. но, надо еще попробовать. точно, пытался ресетить w5500, но не вышло. может, неправильно делал. для ресета надо подавать вольты на ресет?
А что мешает это сделать? Ну смотри, логика простая. Проверяем мегой соединение, нет - перегружаем по питанию, знаем сколько надо выждать времени и проводим инициализацию. Где проблема?
и какая разница? Отключил на сколько надо времени, и тут же перезапустил всю систему. чего то, пока , не зависает, что бы проверить алгоритм