А тот пакет, который принимается в начале - в нем что содержится?
@aveal Супер, спасибо! Сейчас попробую как раз!
Вот что вывел в отладчике со *.elf файлом который у меня получился. Поставил на ПК непрерывные ARP запросы на IP 10.31.36.33. Я правильно понимаю, у меня с ENC как-кой то мусор сыпется? И еще вопрос. Не могу понять, почему в структуре encFrame uint8_t data[ENC28J60_FRAME_DATA_MAX] выводится массивом в столбик, а вот в в структуре ethFrame uint8_t data [] уже просто одной стройкой прописывается, хотя тоже массив. Спасибо, что помогаете. Не так быстро получается разобраться, как хотелось бы)
Да, похоже на мусор... Настройки SPI итд все без изменений? А кабель сейчас перекрестный или обычный?
@aveal Мы разобрались!!! Не хватало тока. Только плата ENC хавает больше 100 мА. А у меня источник выдавал где то 80 мА на всю схему вместе с bluepill. Я сразу и не догадался проверить. Ну и SPI запускался... Тоже не смотрел в эту сторону. Взял второй такой же модуль ENC(покупал два). Его подсоединил, а он даже и не запустился по SPI. Стал уже было думать, что китайские ENC не рабочие. А потом решил питание проверить)))
Фух. Ну теперь UTP осталось протестить. Ну что же... Опыт! Спасибо огромное за помощь!!!
@aveal Мы разобрались!!! Не хватало тока. Только плата ENC хавает больше 100 мА. А у меня источник выдавал где то 80 мА на всю схему вместе с bluepill. Я сразу и не догадался проверить. Ну и SPI запускался... Тоже не смотрел в эту сторону. Взял второй такой же модуль ENC(покупал два). Его подсоединил, а он даже и не запустился по SPI. Стал уже было думать, что китайские ENC не рабочие. А потом решил питание проверить)))
Фух. Ну теперь UTP осталось протестить. Ну что же... Опыт! Спасибо огромное за помощь!!!
Отлично! Да, на питание подозрение вообще не падало, хорошо, что обнаружили )
Добрый день!
В попытках с пользой применить STMку в сетевом взаимодействии выявил такой баг:
иногда устройство отвечает на приходящие ей фреймы с большой задержкой.
Лечится переинициализацией со сбросом ENC28J60.
В приложенной картинке видно, что на ICMP запросы с ПК 10.31.36.32, устройство 10.31.36.33 отвечает с сильной задержкой. По времени более 3 секунд. Пингую я через win cmd. Так вот он уже ответы не видит. Превышено время ожидания. Так же видно ARP ответы устройства с MAC адресом. Ранее, тут не видно, я пинговал и ПК не занл его MAC адреса. Слал ARP запросы, но они пришли тоже с сильной задержкой. Я стал разбираться. Выяснил, что STM не зависает, стабильно выполняет ETH_Process(&frame); в бесконечном цикле. Обращаюсь к более опытным програмерам за помощью. Как можно отладить этот баг и в чем он может быть? Спасибо!!!
@remontovich приветствую! Можно для начала посмотреть под отладчиком, откуда берется задержка - по сути, либо запрос принимается на устройстве уже с задержкой, либо есть пауза на устройстве между приемом запроса и отправкой ответа.
@aveal Спасибо! Вот думаю как это организовать) Это происходит не каждый раз. В WireShark запросы ARP и ICMP от ПК я вижу сразу, как только из cmd запускаю ping. На плате вывел светодиод, которой в бесконечном цикле вместе с ETH_Process, с понижающим по времени коэффициентом мигает через Toggle_Pin. Обработку ICMP фрейма тоже контролирую через еще один светодиод. Он едва мигает, когда проходит обработка ICMP. По интервалам мигания светодиода, задержки обработки ETH_Process нет. Секундные задержки было бы видно сразу. Может ли архитектура самой сети задерживать запросы? При этом ответные пакеты от платы появляются в Wire Shark сразу же после обработки ICMP фрейма. Вижу это по миганию светодиода.
@remontovich Приветствую! Уезжал на пару дней, какие на текущий момент новости по проблеме?
@aveal купил новую платку c ENC28J60 на озоне, чтоб исключить аппаратные баги.
Проблема повторилась и с новой платой enc. Думал дело в свитче. Исключил свич. Наблюдал за работой напрямую между ПК и ENC. Все так же. Пингую с терминала. Плата отвечает, но с задержкой в 10 секунд. Причем задержка эта не меняется. Перезапускаю контроллер ресетом на плате BluePill - происходит реинициализация ENC и все работает хорошо, ping 1 мс.






