|
|
  |
Stratix II + Ethernet, Need help! |
|
|
|
Jan 30 2015, 06:07
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Всем доброго времени суток! Имеется отладочная плата SII-DSP-2S60, нужно сделать передачу данных через Ethernet. С Альтерой только начал работать, раньше не приходилось, как и с ethernet. Nios II вставить удалось, портами подергать через него. На плате стоит PHY/MAC SMSC LAN91C111, вроде у Альтеры есть компонент в qsys для интерфейса с ним. Но найти там не могу и как прикрутить не понимаю. Вообщем скачал кучу документации, но чем дальше читаю, тем больше запутываюсь. Про lwIP и NicheStack посмотрел, но они, я так понимаю, под операционкой управляются. А хотелось бы для начала без ОС обойтись. Да и вообще просто бы эхо сервер для начала сварганить. Прошу помощи в создании такого проекта. Может кто документацию какую посоветует, где доходчиво объяснено что и как, для таких как я. Или проект есть, который можно изучить и поколупать. Заранее благодарю откликнувшихся!
Сообщение отредактировал Azatot - Jan 30 2015, 06:08
|
|
|
|
|
Jan 30 2015, 06:34
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Более ранние версии Quartus-a смотрите, в новых этого компонента уже нет (в Q13.0 и Q14.0 точно). Не помню как в Qsys, а в SOPC данное IP точно было. У меня Quartus 11. Там в SOPC Builder есть такой компонент, а в Qsys он чем то заменяется, но чем не очень понятно. Плата досталась от предыдущего "владельца" так сказать, поэтому никаких примеров к ней нет. Да и на сайте Альтеры ничего путного для этого кита найти не могу.
|
|
|
|
|
Jan 30 2015, 07:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Azatot @ Jan 30 2015, 09:34)  У меня Quartus 11. Там в SOPC Builder есть такой компонент, а в Qsys он чем то заменяется, но чем не очень понятно. Плата досталась от предыдущего "владельца" так сказать, поэтому никаких примеров к ней нет. Да и на сайте Альтеры ничего путного для этого кита найти не могу. Ничем не заменяется, его просто выкинули. Но там Host Bus Interface - интерфейс SRAM-памяти (будет виден Nios, как внешняя память, если всё правильно прикрутить), для записи регистров пишем по определённым адресам (у нас LAN91C111 был подключен к DSP от TI по XINT). Думаю, Вам надо сделать простейший переходник на Avalon MM (возможно просто выкинуть шину Avalon наружу) и подключить к нему LAN91C111 и сможете читать/писать его регистры и fifo. Возможно, получится приспособить под эти цели SDRAM-контроллер.
|
|
|
|
|
Jan 30 2015, 07:10
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Думаю, Вам надо сделать простейший переходник на Avalon MM (возможно просто выкинуть шину Avalon наружу) и подключить к нему LAN91C111 и сможете читать/писать его регистры и fifo. Т.е. надо вывести шину, как порты ввода/вывода (как, например, поморгать светодиодами)? И, соответственно, по datasheet на LAN91C111 смотреть куда что писать?
|
|
|
|
|
Jan 30 2015, 07:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Azatot @ Jan 30 2015, 10:10)  Т.е. надо вывести шину, как порты ввода/вывода (как, например, поморгать светодиодами)? И, соответственно, по datasheet на LAN91C111 смотреть куда что писать? Только, наверное, не просто вывести наружу, а сделать своё ядро avalon_to_lan_bridge. Для него интерфейс со стороны Qsys-системы - Avalon MM Slave, с другой - интерфейс LAN91C111. И там и там есть шина адреса и шина данных, их в своём блоке кидаете "напрямую", а вот для вспомогательных сигналов интерфейсов, возможно, надо будет какую-то логику навернуть. Полученный переходник/контроллер включаете в свою Qsys-систему и из Ниоса видите регистры LAN91C111. Посмотрите на SDRAM-контроллер в Qsys, не утверждаю, но возможно получится им читать/писать регистры LAN.
|
|
|
|
|
Jan 30 2015, 07:40
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Только, наверное, не просто вывести наружу, а сделать своё ядро avalon_to_lan_bridge. Для него интерфейс со стороны Qsys-системы - Avalon MM Slave, с другой - интерфейс LAN91C111. И там и там есть шина адреса и шина данных, их в своём блоке кидаете "напрямую", а вот для вспомогательных сигналов интерфейсов, возможно, надо будет какую-то логику навернуть. Полученный переходник/контроллер включаете в свою Qsys-систему и из Ниоса видите регистры LAN91C111. Посмотрите на SDRAM-контроллер в Qsys, не утверждаю, но возможно получится им читать/писать регистры LAN. Мда, задача усложнилась еще больше!  Надо еще будет разобраться как ядра свои в Qsys делать, если SDRAM контроллер не подойдет. А ПО для Niosa, которое может UDP пакеты формировать, можно где-нибудь раздобыть? Цитата Ничем не заменяется, его просто выкинули. Посмотрел, вроде, в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111. Может этот контроллер и подойдет? Только, что бы проверить, нужна реализация на Nios.
|
|
|
|
|
Jan 30 2015, 07:47
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Azatot @ Jan 30 2015, 10:32)  Мда, задача усложнилась еще больше!  Надо еще будет разобраться как ядра свои в Qsys делать, если SDRAM контроллер не подойдет. А ПО для Niosa, которое может UDP пакеты формировать, можно где-нибудь раздобыть? С построением ядра у Вас всё будет просто, нужно только внутреннюю логику/железо описать (логику "переходника"), далее в Qsys создаёте новый компонент, а ему подсовываете verilog/vhdl - файл. Да если такой компонент есть в SOPC - сгенерируйте его, если исходники железа окажутся открытыми (а это должно быть так) сделайте на их основе свой компонент для Qsys. Цитата(Azatot @ Jan 30 2015, 10:40)  Посмотрел, вроде, в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111. Может этот контроллер и подойдет? Не знал, раз есть - должен подойти. Ставте и пробуйте посмотреть регистры LAN.
|
|
|
|
|
Jan 30 2015, 07:50
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Не знал, раз есть, должен подойти. Ставте и пробуйте посмотреть регистры LAN. Регистры смотреть через Nios?
|
|
|
|
|
Jan 30 2015, 08:01
|
Профессионал
    
Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596

|
Цитата(Azatot @ Jan 30 2015, 10:40)  в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111. Может этот контроллер и подойдет? Только, что бы проверить, нужна реализация на Nios. подойдёт. у меня на циклоне-3 такой вариант работал. единственный момент - нужно иметь возможность дергать аппаратный ресет у LAN91C111 через GPIO из nios.
--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
|
|
|
|
|
Jan 30 2015, 08:11
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата подойдёт. у меня на циклоне-3 такой вариант работал. единственный момент - нужно иметь возможность дергать аппаратный ресет у LAN91C111 через GPIO из nios. Я так понимаю, что Generic Tri-State Controller нужно еще подключать к Tristate Conduit Bridge, а уже с него выходы на LAN91C111 назначать (а ресет LANа, соответственно, вообще отдельным пином)?
|
|
|
|
|
Jan 30 2015, 08:29
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Да, надо. Да, это я уже понял, в datasheete Альтеровском вычитал. Но, самое забавное, что количество сигналов на выходе Tristate Conduit Bridge не соответствует количеству сигналов в LAN. И длина адреса LAN 20 бит, а Generic Tri-State Controller формирует только 16 бит. Можно в ручную, конечно, поправить на 20, но будет ли работать.
|
|
|
|
|
Jan 30 2015, 08:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Azatot @ Jan 30 2015, 11:29)  Да, это я уже понял, в 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]), так что всё нормально.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|