Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

ЕNC28j60.. помогите выловить ошибку

Ср май 02, 2018 18:32:26

Добрый день!

Осваиваю этот чип, под управлением PIC18F. Стек взял с просторов Рунета, на основе этого:

http://we.easyelectronics.ru/electro-an ... -seti.html
Использую только UDP в режиме сервера и клиента.. Все довольно таки неплохо, поставленные задачи выполнил. Но обнаружилась одна пакость, причем не только в моем коде, но и в других изделиях на чипе ЕНЦ. По непонятной причине (что-то ловит), очень редко но метко отваливается связь. Причем в 2-х разных вариантах - или полностью, т.е и перестает отвечать на запросы, и отправлять запросы сам, так и частично - т.е только отправляет пакеты, но не принимает.

Вот сегодня глюканула локалка (распределенная беспроводка что-то словила - несколько офисов по городу) - зависло подобным образом и мое экспериментальное изделие и другие некоторые аппараты.

Помогает сброс по питанию. Как очевидно поможет и RESET за ногу чипа(хотел бы проверить... да не могу повторить).

Подобное явление происходит относительно регулярно. Чаще всего на грозу (полный отвал), или на пропадание питания антенны (частичное). Но вот сколько не бьюсь, повторить не могу.. скорее всего потому что не представляю куда копать. Можно ли повторить подобную пакость? М.б есть какая-нибудь флудилка, хотелось бы понять что с чипом, а чтобы научно подойти к вопросу (чтение регистров чипа и т.п) надо как-то воспроизвести хрень. Можно до опупения отправлять пакеты из нормальных программ. ему по всей вероятности на нормально упакованные пакеты пофигу... только пинг малость удлиняется.

В приведенном стеке есть место где отсекается прием за один цикл больше байт чем sizeof(net_buf)... такого тупого переполнения видимо не происходит.
Ответить