hd44780 0 5 февраля, 2014 Опубликовано 5 февраля, 2014 · Жалоба Привет. Кто-то работал с этой микрухой? Я нашёл на офф сайте драйвер и пример реализации DHCP. Переписал под F4 (поправив некоторые ошибки на мой взгляд) - не работает. Не может получить IP-адрес. Роутер показывает, что он увидел какое-то устройство, но MAC совсем не тот, который я посылаю. Когда я задаю микросхеме статический IP, пинг с компа на неё проходит. Но это ж "некошерно". У кого-нибудь есть примерчик поделиться? Спасибо. PS. Сейчас буду пробовать простенький сервер набабахать хоть на статическом IP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 6 февраля, 2014 Опубликовано 6 февраля, 2014 · Жалоба Мудохался с ним целый день. DHCP пока убрал, задал статический адрес, слал на комп UDP пакеты. Смотрю Wirashark-ом Пакеты приходят, адреса (и MAC, и IP) в них нормальные (те, что я задал), а в области данных (13 байт) бред собачий ... Кста. Нарыл тему про проблемы с UDP - http://electronix.ru/forum/index.php?showtopic=62111 Народ там ничего путного не придумал. Сокет закрываю-открываю на каждую отправку. Попробую TCP, пишут, там этих проблем нет. Лично мне UDP на фиг не нужен, но DHCP накрывается медным тазом, а без него как-то некошерно :( . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 6 февраля, 2014 Опубликовано 6 февраля, 2014 · Жалоба На TCP чего-то после передачи не взводится бит завершения передачи SEND_OK в IR .... Сервер на компе ничего не ловит, Wireshark ничего не показывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 7 февраля, 2014 Опубликовано 7 февраля, 2014 · Жалоба Зачем вы вообще к STM32F4 цепляете W5100. Надо было по человечи делать через MII и PHY Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 7 февраля, 2014 Опубликовано 7 февраля, 2014 · Жалоба Кто-то работал с этой микрухой?Работал. Писал все с нуля читая даташит. Правильно сказали, если у вас STM32 - цепляйте внешний phy и используйте программный стек. Эта микросхема хорошо работает порка вы запускаете на ней примеры производителя. Шаг вправо, шаг влево - и понимаете, что в ее стеке просто не реализована нужная вам функция. Не считая описанных в errata ошибок. То есть чтобы сделать то, что нужно именно вам, нужно будет опуститься на MAC-уровень. То есть сделать то же самое, что и с обычным phy. Так зачем цеплять большую дорогую микросхему? Навскидку из того, на что нарвался я: - работаю по UDP. Устройство шлет сообщения на фиксированный адрес. Получатель находится за маршрутизатором (gateway). Включили, все работает. Через несколько месяцев провайдер по какой-то причине заменил маршрутизатор. А W5100 при первой посылке сделала ARP-запрос и все остальные посылки тупо долбит на MAC-адрес почившего маршрутизатора. Команды "обновить таблицу ARP", которую я мог бы послать при пропадании ответных посылок, у нее нет. Приходится в такой ситуации посылать фиктивную посылку на несуществующий адрес. Поскольку у микросхемы таблица ровно на один адрес, она при смене адреса назначения генерит новый ARP-запрос. - тот же UDP. Устройство часто шлет короткие сообщения из одного сокета на один или по очереди на несколько разных адресов. Поскольку у микросхемы ARP-таблица ровно на один адрес, то перед каждым сообщением микросхема посылает ARP-запрос и ждет ответа. Итог - если получателей больше одного, то катастрофическое падение скорости. - тот же UDP. Бага, описанная в эррате в 2012 году. А у меня устройство выпускается с 2006г и я все это время не мог понять, какого черта оно при некоторых условиях работает криво. А сколько там еще неописанных? Естетственно все это можно было бы обойти если бы стек был программный. Но в те времена поставить готовую черную коробочку казалось более легким. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MTh 0 7 февраля, 2014 Опубликовано 7 февраля, 2014 · Жалоба Мудохался с ним целый день. DHCP пока убрал, задал статический адрес, слал на комп UDP пакеты. Смотрю Wirashark-ом Пакеты приходят, адреса (и MAC, и IP) в них нормальные (те, что я задал), а в области данных (13 байт) бред собачий ... Не работал с 5100, но помудохался со стеком для ENC28J для AVR выложенный на we.easyelectronics. Плотно работал с wireshark и сильно полопатил код. Основные проблемы были с big-little endian и нумерацией пакетов. Причем это не у всех было... Посмотрите в эту сторону. Может поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 7 февраля, 2014 Опубликовано 7 февраля, 2014 · Жалоба uriy, W5100 был выбран человеком, которому я помогаю. Как наиболее простой способ добавить LAN в уже имеющееся у него устройство. С ENC28 я проуродовался 2 недели, но так и не смог добиться от него ни одного байта в ответ. Даже номер ревизии чипа ... Не говоря уж о каких-то более серъёзных вещах. Плюнул на неё. Я не думаю, что проблема в little/big-endian. Иначе б пакеты вообще не доходили бы ... Порченная только область данных. Может я где-то с перекачкой данных в проге намутил.. Да и если б у меня были попарно байты данных переставлены я бы это глазом в Wireshark увидел бы. Сергей Борщ, спасибо. Передам тому человеку. Вообще, пока планируется ставить это по одну сторону от роутера. TCP завёлся, коннектится нормально, проблема только в порче области данных. Вчера я тупо забыл дать микрухе команду CONNECT Может у меня где-то одни и те же грабли и в UDP и в TCP. Буду разбираться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 7 февраля, 2014 Опубликовано 7 февраля, 2014 · Жалоба Наверное я что-то с буферами сокетов намутил. Вычислил, что 1-й байт данных передаётся правильно, остальные - бред. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 9 февраля, 2014 Опубликовано 9 февраля, 2014 · Жалоба Всё, заработала шарманка :) TCP, UDP клиенты и DHCP заработали. Косяк был в том, что перед посылкой любой четвёрки "атомарных" байт - 0x0F/0xF0, 2 байта адреса, байт данных (0xFF для чтения) неоходимо делать nCS:=0, а после их отправки ОБЯЗАТЕЛЬНО возвращать в 1. Я же при отправке данных (массив байт) решил немного "пооптимизировать" и опускал/поднимал nCS до и после всего цикла отправки данных. Видимо, входной буфер микросхемы использует перепад nCS 0->1 для пропихивания данных куда-то дальше в недра микросхемы, а т.к. я этого не обеспечил, он находился в некоем "ступоре" и не воспринимал все остальные данные. Теперь приступаю к главному - TCP-сервер на проце. Всем спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 9 февраля, 2014 Опубликовано 9 февраля, 2014 · Жалоба А в каком формате приходят данные через spi в мк? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 9 февраля, 2014 Опубликовано 9 февраля, 2014 · Жалоба Не понял вопроса. Вот это: uint16_t wiz_read_buf ( uint16_t addr, uint8_t* buf, uint16_t len ) { uint16_t idx = 0; for ( idx=0; idx<len; idx ++ ) { buf [ idx ] = IINCHIP_READ ( addr ); addr ++; } // for return len; } // wiz_read_buf нормально забивает указанный буфер указанным кол-вом байт из W5100. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergeyVas 0 10 февраля, 2014 Опубликовано 10 февраля, 2014 · Жалоба Не совсем корректно написал вопрос. Имею ввиду например несколько пк подключились к w5100 и шлют данные на разные порты что будет на выходе spi как отличать что от кого пришло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 10 февраля, 2014 Опубликовано 10 февраля, 2014 · Жалоба В микросхеме 4 двунаправленных сокета. Поэтому максимум 4 клиента. У каждого сокета свои флажки типа "данные пришли" и прочее. По ним и различать. Все 4 сокета независимы. Вы можете читать/писать любой сокет. Естественно, по очереди. Каждый сокет, так сказать, однопоточный. Пока к нему кто-то подключён, другой уже не подключится. По крайней мере, на данном этапе своего развития, я так всё это понимаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 11 февраля, 2014 Опубликовано 11 февраля, 2014 · Жалоба hd44780 У вас есть вот эти исходники? Wiznet.rar Там есть исходники веб сервера. Это готовый TCP сервер для вас. На их основе я когда-то тоже делал веб сервер. Столкнулся с такой проблемой: Браузер в запросе на сервер всегда дает кучу информации. Обычно это прядка килобайта. Но почему-то explorer дает инфу заметно больше (больше размера MTU). В итоге на wiznet от explorer приходило два фрагментированных пакета. Вторая часть пакета куда-то терялась, я так и не смог ее достать из wiznet. В итоге клиентам не рекомендовали пользоваться explorer'ом. По поводу ENC28 она тоже нормально работает. Сам не применял, но дома использую IP телефон siemens C470IP. Она там стоит, был очень удивлен найдя там эту микросхему у немцев. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 11 февраля, 2014 Опубликовано 11 февраля, 2014 · Жалоба Спасибо. Скачал, посмотрю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться