Azatot 0 January 30, 2015 Posted January 30, 2015 (edited) · Report post Всем доброго времени суток! Имеется отладочная плата SII-DSP-2S60, нужно сделать передачу данных через Ethernet. С Альтерой только начал работать, раньше не приходилось, как и с ethernet. Nios II вставить удалось, портами подергать через него. На плате стоит PHY/MAC SMSC LAN91C111, вроде у Альтеры есть компонент в qsys для интерфейса с ним. Но найти там не могу и как прикрутить не понимаю. Вообщем скачал кучу документации, но чем дальше читаю, тем больше запутываюсь. Про lwIP и NicheStack посмотрел, но они, я так понимаю, под операционкой управляются. А хотелось бы для начала без ОС обойтись. Да и вообще просто бы эхо сервер для начала сварганить. Прошу помощи в создании такого проекта. Может кто документацию какую посоветует, где доходчиво объяснено что и как, для таких как я. Или проект есть, который можно изучить и поколупать. Заранее благодарю откликнувшихся! Edited January 30, 2015 by Azatot Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 30, 2015 Posted January 30, 2015 · Report post На плате стоит PHY/MAC SMSC LAN91C111, вроде у Альтеры есть компонент в qsys для интерфейса с ним. Но найти там не могу и как прикрутить не понимаю. Более ранние версии Quartus-a смотрите, в новых этого компонента уже нет (в Q13.0 и Q14.0 точно). Не помню как в Qsys, а в SOPC данное IP точно было. Quote Share this post Link to post Share on other sites More sharing options...
Azatot 0 January 30, 2015 Posted January 30, 2015 · Report post Более ранние версии Quartus-a смотрите, в новых этого компонента уже нет (в Q13.0 и Q14.0 точно). Не помню как в Qsys, а в SOPC данное IP точно было. У меня Quartus 11. Там в SOPC Builder есть такой компонент, а в Qsys он чем то заменяется, но чем не очень понятно. Плата досталась от предыдущего "владельца" так сказать, поэтому никаких примеров к ней нет. Да и на сайте Альтеры ничего путного для этого кита найти не могу. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 30, 2015 Posted January 30, 2015 · Report post У меня Quartus 11. Там в SOPC Builder есть такой компонент, а в Qsys он чем то заменяется, но чем не очень понятно. Плата досталась от предыдущего "владельца" так сказать, поэтому никаких примеров к ней нет. Да и на сайте Альтеры ничего путного для этого кита найти не могу. Ничем не заменяется, его просто выкинули. Но там Host Bus Interface - интерфейс SRAM-памяти (будет виден Nios, как внешняя память, если всё правильно прикрутить), для записи регистров пишем по определённым адресам (у нас LAN91C111 был подключен к DSP от TI по XINT). Думаю, Вам надо сделать простейший переходник на Avalon MM (возможно просто выкинуть шину Avalon наружу) и подключить к нему LAN91C111 и сможете читать/писать его регистры и fifo. Возможно, получится приспособить под эти цели SDRAM-контроллер. Quote Share this post Link to post Share on other sites More sharing options...
Azatot 0 January 30, 2015 Posted January 30, 2015 · Report post Думаю, Вам надо сделать простейший переходник на Avalon MM (возможно просто выкинуть шину Avalon наружу) и подключить к нему LAN91C111 и сможете читать/писать его регистры и fifo. Т.е. надо вывести шину, как порты ввода/вывода (как, например, поморгать светодиодами)? И, соответственно, по datasheet на LAN91C111 смотреть куда что писать? Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 30, 2015 Posted January 30, 2015 · Report post Т.е. надо вывести шину, как порты ввода/вывода (как, например, поморгать светодиодами)? И, соответственно, по datasheet на LAN91C111 смотреть куда что писать? Только, наверное, не просто вывести наружу, а сделать своё ядро avalon_to_lan_bridge. Для него интерфейс со стороны Qsys-системы - Avalon MM Slave, с другой - интерфейс LAN91C111. И там и там есть шина адреса и шина данных, их в своём блоке кидаете "напрямую", а вот для вспомогательных сигналов интерфейсов, возможно, надо будет какую-то логику навернуть. Полученный переходник/контроллер включаете в свою Qsys-систему и из Ниоса видите регистры LAN91C111. Посмотрите на SDRAM-контроллер в Qsys, не утверждаю, но возможно получится им читать/писать регистры LAN. Quote Share this post Link to post Share on other sites More sharing options...
Azatot 0 January 30, 2015 Posted January 30, 2015 · Report post Только, наверное, не просто вывести наружу, а сделать своё ядро avalon_to_lan_bridge. Для него интерфейс со стороны Qsys-системы - Avalon MM Slave, с другой - интерфейс LAN91C111. И там и там есть шина адреса и шина данных, их в своём блоке кидаете "напрямую", а вот для вспомогательных сигналов интерфейсов, возможно, надо будет какую-то логику навернуть. Полученный переходник/контроллер включаете в свою Qsys-систему и из Ниоса видите регистры LAN91C111. Посмотрите на SDRAM-контроллер в Qsys, не утверждаю, но возможно получится им читать/писать регистры LAN. Мда, задача усложнилась еще больше! :smile3046: Надо еще будет разобраться как ядра свои в Qsys делать, если SDRAM контроллер не подойдет. А ПО для Niosa, которое может UDP пакеты формировать, можно где-нибудь раздобыть? Ничем не заменяется, его просто выкинули. Посмотрел, вроде, в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111. Может этот контроллер и подойдет? Только, что бы проверить, нужна реализация на Nios. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 30, 2015 Posted January 30, 2015 · Report post Мда, задача усложнилась еще больше! :smile3046: Надо еще будет разобраться как ядра свои в Qsys делать, если SDRAM контроллер не подойдет. А ПО для Niosa, которое может UDP пакеты формировать, можно где-нибудь раздобыть? С построением ядра у Вас всё будет просто, нужно только внутреннюю логику/железо описать (логику "переходника"), далее в Qsys создаёте новый компонент, а ему подсовываете verilog/vhdl - файл. Да если такой компонент есть в SOPC - сгенерируйте его, если исходники железа окажутся открытыми (а это должно быть так) сделайте на их основе свой компонент для Qsys. Посмотрел, вроде, в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111. Может этот контроллер и подойдет? Не знал, раз есть - должен подойти. Ставте и пробуйте посмотреть регистры LAN. Quote Share this post Link to post Share on other sites More sharing options...
Azatot 0 January 30, 2015 Posted January 30, 2015 · Report post Не знал, раз есть, должен подойти. Ставте и пробуйте посмотреть регистры LAN. Регистры смотреть через Nios? Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 30, 2015 Posted January 30, 2015 · Report post Регистры смотреть через Nios? Да, для Ниос он - внешняя память, должно быть доступно через Memory Monitor в Eclipse. Quote Share this post Link to post Share on other sites More sharing options...
krux 9 January 30, 2015 Posted January 30, 2015 · Report post в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111. Может этот контроллер и подойдет? Только, что бы проверить, нужна реализация на Nios. подойдёт. у меня на циклоне-3 такой вариант работал. единственный момент - нужно иметь возможность дергать аппаратный ресет у LAN91C111 через GPIO из nios. Quote Share this post Link to post Share on other sites More sharing options...
Azatot 0 January 30, 2015 Posted January 30, 2015 · Report post подойдёт. у меня на циклоне-3 такой вариант работал. единственный момент - нужно иметь возможность дергать аппаратный ресет у LAN91C111 через GPIO из nios. Я так понимаю, что Generic Tri-State Controller нужно еще подключать к Tristate Conduit Bridge, а уже с него выходы на LAN91C111 назначать (а ресет LANа, соответственно, вообще отдельным пином)? Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 30, 2015 Posted January 30, 2015 · Report post Я так понимаю, что Generic Tri-State Controller нужно еще подключать к Tristate Conduit Bridge, а уже с него выходы на LAN91C111 назначать (а ресет LANа, соответственно, вообще отдельным пином)? Да, надо. Quote Share this post Link to post Share on other sites More sharing options...
Azatot 0 January 30, 2015 Posted January 30, 2015 · Report post Да, надо. Да, это я уже понял, в datasheete Альтеровском вычитал. Но, самое забавное, что количество сигналов на выходе Tristate Conduit Bridge не соответствует количеству сигналов в LAN. И длина адреса LAN 20 бит, а Generic Tri-State Controller формирует только 16 бит. Можно в ручную, конечно, поправить на 20, но будет ли работать. Quote Share this post Link to post Share on other sites More sharing options...
doom13 0 January 30, 2015 Posted January 30, 2015 · Report post Да, это я уже понял, в datasheete Альтеровском вычитал. Но, самое забавное, что количество сигналов на выходе Tristate Conduit Bridge не соответствует количеству сигналов в LAN. И длина адреса LAN 20 бит, а Generic Tri-State Controller формирует только 16 бит. Можно в ручную, конечно, поправить на 20, но будет ли работать. Адрес там A15-A1 (tristate_conduit_bridge_tcm_address_out[15:1]), AEN (tristate_conduit_bridge_tcm_address_out[0]), nBE3-nBE0 (tristate_conduit_bridge_tcm_byteenable_n_out[3:0]), так что всё нормально. Quote Share this post Link to post Share on other sites More sharing options...