Цитата(hd44780 @ Feb 5 2014, 17:01)

Кто-то работал с этой микрухой?
Работал. Писал все с нуля читая даташит. Правильно сказали, если у вас STM32 - цепляйте внешний phy и используйте программный стек. Эта микросхема хорошо работает порка вы запускаете на ней примеры производителя. Шаг вправо, шаг влево - и понимаете, что в ее стеке просто не реализована нужная вам функция. Не считая описанных в errata ошибок. То есть чтобы сделать то, что нужно именно вам, нужно будет опуститься на MAC-уровень. То есть сделать то же самое, что и с обычным phy. Так зачем цеплять большую дорогую микросхему?
Навскидку из того, на что нарвался я:
- работаю по UDP. Устройство шлет сообщения на фиксированный адрес. Получатель находится за маршрутизатором (gateway). Включили, все работает. Через несколько месяцев провайдер по какой-то причине заменил маршрутизатор. А W5100 при первой посылке сделала ARP-запрос и все остальные посылки тупо долбит на MAC-адрес почившего маршрутизатора. Команды "обновить таблицу ARP", которую я мог бы послать при пропадании ответных посылок, у нее нет. Приходится в такой ситуации посылать фиктивную посылку на несуществующий адрес. Поскольку у микросхемы таблица ровно на один адрес, она при смене адреса назначения генерит новый ARP-запрос.
- тот же UDP. Устройство часто шлет короткие сообщения из одного сокета на один или по очереди на несколько разных адресов. Поскольку у микросхемы ARP-таблица ровно на один адрес, то перед каждым сообщением микросхема посылает ARP-запрос и ждет ответа. Итог - если получателей больше одного, то катастрофическое падение скорости.
- тот же UDP. Бага, описанная в эррате в 2012 году. А у меня устройство выпускается с 2006г и я все это время не мог понять, какого черта оно при некоторых условиях работает криво. А сколько там еще неописанных?
Естетственно все это можно было бы обойти если бы стек был программный. Но в те времена поставить готовую черную коробочку казалось более легким.