Jump to content

    

STM32F407VG + LAN8720 ETH BOARD (Waveshare)

On 7/5/2019 at 7:53 PM, haker_fox said:

Кстати, эта прога помогла мне настроить стэк: в нём стояла опция аппаратного расчёта контрольных сумм.

+1

У меня в комментах:

Quote

Новый Lwip-2.0.3. Опять нарвался на CHECKSUM_GEN_ICMP == 1 в opt.h, надо
CHECKSUM_GEN_ICMP == 0.

 

Share this post


Link to post
Share on other sites
CubeMX генерирует драйвер не для LAN8720. Смотрите работу с PHY_SR.

Share this post


Link to post
Share on other sites

В общем копался копался и вот к чему пришел:
Скачал готовые примеры udp и http сервера с сайта stm, правда конкретно для дискавери их нету, поэтому пришлось переконфигурировать их. За основу брал вот эту тему т.к. разбирается как раз мой случай.
После прошивки контроллера подключил плату напрямую к контроллеру и если раньше разъем Rj45 просто горел зеленым, то после прямого подключения загорается оранжевый светодиод, а зеленый начинает хаотично мигать.
Пробую пинговать - результата нет, пробую через браузер зайти на http сервер - аналогично.
Залил в контроллер программу udp клиента, который должен посылать echo сообщения на статический ip адрес. Настраиваю его на ПК и указываю его в программе. Запускаю wireshark и вот что он выдает:

2001 2086.482021000 192.168.0.10 192.168.0.255 NBNS 92 Name query NB MSCDC1.ZGHR.RU<00>
2002 2344.964991000 192.168.0.10 192.168.0.255 NBNS 92 Name query NB MSCTMG<00>
2003 2347.958454000 AsustekC_a8:15:63 Broadcast ARP 42 Who has 192.168.0.1? Tell 192.168.0.10

И дальше по сути эти пакеты повторяются в хаотичной последовательности. Если фильтровать по ip платы, то от неё никаких пакетов не поступает, ping через командную строку тоже не работает.
В связи с чем появился вопрос - т.к. компьютер рабочий, то вероятно в нем есть какие-то сетевые настройки предназначенные для защиты, т.к. MSCDC1.ZGHR.RU это название организации, помимо этого вне зависимости подключен ли ПК к интернету или напрямую к плате, он постоянно посылает вот эти Name query NB на последний ip в сети (т.е. первые три цифры могут меняться в зависимости от задаваемых настроек ххх.ххх.ххх но последняя всегда остается 255 на которую и идут все эти запросы).
Т.е. может быть такое что именно из-за этой защиты плата не может быть увидена и пропингована ПК?

Share this post


Link to post
Share on other sites
1 час назад, remixx сказал:

но последняя всегда остается 255 на которую и идут все эти запросы

Это широковещательный запрос, ничего он портить не должен.

Адрес вашей платы 192.168.0.1? Она не отвечает на запросы ARP, поэтому комп просто не знает, куда слать все остальное. Разбирайтесь, что ваш пример делает с принятыми пакетами - получает ли он их вообще от LAN8720 и если получает - почему не отвечает. Если у вас LAN8720 тактируется от собственного кварца, то она вполне может работать сама по себе на своих настройках по-умолчанию и вы видите это на светодиодах, а код в процессоре до общения с ней вообще может не доходить. MAC в STM32 начинает работать только после получения тактирования на вход REF_CLK - туда должны приходить 50 МГц от физики или внешнего источника при работе в режиме RMII. Если частоты на этом входе нет (предположим, что все остальное в вашей программе правильно), то надо искать, куда она потерялась. Может перемычку какую надо накинуть или запаять.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now