реклама на сайте
подробности

 
 
> STM32F107VCT6 + Ethernet (PHY), Странности с отправкой пакетов.
AlanDrakes
сообщение Jan 4 2016, 14:55
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 2-05-15
Из: Россия, Омск
Пользователь №: 86 474



Всем доброго времени суток.
Уже несколько дней старательно долблюсь лбом в одну и ту же точку мануала - в часть, посвящённую работе с Ethernet.
Есть кристалл STM32F107VCT6, код ревизии - Z, если кому интересно. К кристаллу подключен внешним PHY контроллер TLK105R (особой сути не имеет). Приём/Передача фреймов со случайными данными (не IP, а именно "шума") проходит отлично, они видятся в Wireshark'е. Приём данных от ПК так же работает. В качестве драйвера используется STM32 HAL. Точнее, его участки, отвечающие за инициализацию переферии (да и то далеко не все).
Суть в чём. ICMP проходит, ARP носится в обе стороны при необходимости, НО: при попытке отправить UDP пакет со стороны контроллера, в сеть он не вылетает. При этом, контроллер вежливо интересуется, есть ли в сети машина с IP адресом ПК, получает обратно ARP ответ, обрабатывает его, собирает UDP пакет до конца и... НИЧЕГО. Пакет не уходит. Повторная отправка и десяток отправок ничего не меняют.
Но теперь если изменить хоть один бит в ARP таблице, либо в буфере отправки непосредственно перед командой начала передачи - пакет чудесным образом вылетит в сеть. Пробовал отключать/включать автодобавление CRC в пакет - не помогает. Отключал вообще работу с CRC заголовками на уровне MAC контроллера - так же безрезультатно. Зато, если изменить данные в таблице ARP и отправить пакет обычным образом (пусть даже на соседний мак-адрес), пакет полетит. После можно вернуть бит обратно (в ARP) и пакеты начнут ходить как положено.

Кто-нибудь сталкивался с подобными замашками?
И, да, если сменить тип пакета с IP на нули - пакет уходит. Сменить IP назначения в пакете - уходит (по маку). Сменить мак (любой) - уходит. А правильно собраный пакет требует эдакого шаманства.

Опять же, описание состояния контроллера:
Кварц 8МГц. Системная частота 50МГц. Тактирование PHY - через MCO пин 25МГц.
Питание в пределах допуска - 3.0V.
Ёмкости в обвязке в порядке.

Сообщение отредактировал AlanDrakes - Jan 5 2016, 08:27
Go to the top of the page
 
+Quote Post



Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 02:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016