Понадобилось вывести STMку в сеть. Заодно решил и для себя разобраться в сетевой архитектуре передачи данных.
Я использую cubeide. Создал новый проект. Взял *.c и *.h файлы из проекта Aveal. Подключение - все один в один: SPI1, чипселект на PB3.
Собрал на бредборде. Подрубаю к ПК и не пропинговаться. Брал обычный Ethrnet кабель и перекрестный кабель. Логическим анализатором проверил - обмен данными по SPI - он идет. После подачи питания обмен идет активно, потом, через некоторое время, - запрос 0x19 и в ответ нули. На винде, в утилите Ping делаю запрос, пишет: "Заданный узел не доступен". Светодиоды на ENC не мигают. (хотя после подачи питания на ENC оба диода мигают какоет-то время). Попытался схитрить. Поставил IP адрес шлюза и предпочтительный DNS сервер - IP адрес ENC. На WireShark смотрю ARP запросы от сетевой карты - они идут. Ответа нет.
Попробовал отдебажить, через IDE.
Ставлю брейкпоинт внутри функции ETH_Process на развилке if (requestSize > 0). Не заходит в нее. Как я понимаю - в переменную requestSize ничего не попадает.
Или может я не правильно отлаживаю... Подскажите пожалуйста, что может быть не так? Может я проект не так перенес? У Aveal он под IAR как я порнял.
При перезапуске ENC и STM в requestSize что то все таки залетает. Возможно это свич видит новое устройство и пытается опознать его. Но что для меня странно, что нет реакции светодиодов на Ping. Может просто я на ПК сеть не правильно настраиваю и в этом дело? Как я писал, я пытался ENC и на прямую соединять c ПК через кроссовер и через прямой кабель. Все происходит примерно так же, светодиоды мигнут и тишина.
На да, по настройкам все четко выглядит. Если напрямую, то тоже пакет принимается только при запуске, а дальше requestSize в 0? Надо посмотреть этот правильно принимаемый пакет на предмет - к чему он относится.
Еще момент. Проект создается без ошибок, но есть несколько варнунгов. Res я вроде бы действительно не видел, чтоб использовался, а вот ReadPhyReg. Хотя вряд ли в них дело, но все же.
Еще момент. Проект создается без ошибок, но есть несколько варнунгов. Res я вроде бы действительно не видел, чтоб использовался, а вот ReadPhyReg. Хотя вряд ли в них дело, но все же.
Просто заложено для универсальности, но конкретно в демо-примере не используется, норм.
@aveal36.1 это шлюз (свич и маршрутизатор). Он его по дефолту ищет всегда. Но я напрямую сейчас ENC подрубаю к ПК. А то что нет ни ARP ни ICMP на 36.33 - это мне не понятно. При этом я пингую в сети другие ПК - все запросы вижу. Привел пример пинга 36.8
На этом сайте используются файлы cookie, что позволяет нам обеспечить наилучшее качество обслуживания пользователей. Информация о файлах cookie хранится в вашем браузере и выполняет такие функции, как распознавание вас при возвращении на наш сайт и помощь нашей команде в понимании того, какие разделы сайта вы считаете наиболее интересными и полезными.
Строго необходимые файлы cookie
Строго необходимые файлы cookie должны быть всегда включены, чтобы мы могли сохранить ваши предпочтения для настроек файлов cookie.
Если вы отключите этот файл cookie, мы не сможем сохранить ваши предпочтения. Это означает, что при каждом посещении данного сайта вам придется заново включать или отключать файлы cookie.