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

 
 
> Stratix II + Ethernet, Need help!
Azatot
сообщение Jan 30 2015, 06:07
Сообщение #1


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

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
6 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 82)
doom13
сообщение Jan 30 2015, 06:28
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 09:07) *
На плате стоит PHY/MAC SMSC LAN91C111, вроде у Альтеры есть компонент в qsys для интерфейса с ним. Но найти там не могу и как прикрутить не понимаю.

Более ранние версии Quartus-a смотрите, в новых этого компонента уже нет (в Q13.0 и Q14.0 точно). Не помню как в Qsys, а в SOPC данное IP точно было.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 06:34
Сообщение #3


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Более ранние версии Quartus-a смотрите, в новых этого компонента уже нет (в Q13.0 и Q14.0 точно). Не помню как в Qsys, а в SOPC данное IP точно было.

У меня Quartus 11. Там в SOPC Builder есть такой компонент, а в Qsys он чем то заменяется, но чем не очень понятно.
Плата досталась от предыдущего "владельца" так сказать, поэтому никаких примеров к ней нет. Да и на сайте Альтеры ничего путного для этого кита найти не могу.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 07:07
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 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-контроллер.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 07:10
Сообщение #5


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Думаю, Вам надо сделать простейший переходник на Avalon MM (возможно просто выкинуть шину Avalon наружу) и подключить к нему LAN91C111 и сможете читать/писать его регистры и fifo.

Т.е. надо вывести шину, как порты ввода/вывода (как, например, поморгать светодиодами)?
И, соответственно, по datasheet на LAN91C111 смотреть куда что писать?
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 07:24
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 07:40
Сообщение #7


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Только, наверное, не просто вывести наружу, а сделать своё ядро avalon_to_lan_bridge. Для него интерфейс со стороны Qsys-системы - Avalon MM Slave, с другой - интерфейс LAN91C111. И там и там есть шина адреса и шина данных, их в своём блоке кидаете "напрямую", а вот для вспомогательных сигналов интерфейсов, возможно, надо будет какую-то логику навернуть. Полученный переходник/контроллер включаете в свою Qsys-систему и из Ниоса видите регистры LAN91C111. Посмотрите на SDRAM-контроллер в Qsys, не утверждаю, но возможно получится им читать/писать регистры LAN.

Мда, задача усложнилась еще больше! smile3046.gif Надо еще будет разобраться как ядра свои в Qsys делать, если SDRAM контроллер не подойдет.
А ПО для Niosa, которое может UDP пакеты формировать, можно где-нибудь раздобыть?

Цитата
Ничем не заменяется, его просто выкинули.

Посмотрел, вроде, в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111.
Может этот контроллер и подойдет?
Только, что бы проверить, нужна реализация на Nios.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 07:47
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 10:32) *
Мда, задача усложнилась еще больше! smile3046.gif Надо еще будет разобраться как ядра свои в Qsys делать, если SDRAM контроллер не подойдет.
А ПО для Niosa, которое может UDP пакеты формировать, можно где-нибудь раздобыть?

С построением ядра у Вас всё будет просто, нужно только внутреннюю логику/железо описать (логику "переходника"), далее в Qsys создаёте новый компонент, а ему подсовываете verilog/vhdl - файл.
Да если такой компонент есть в SOPC - сгенерируйте его, если исходники железа окажутся открытыми (а это должно быть так) сделайте на их основе свой компонент для Qsys.


Цитата(Azatot @ Jan 30 2015, 10:40) *
Посмотрел, вроде, в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111.
Может этот контроллер и подойдет?

Не знал, раз есть - должен подойти. Ставте и пробуйте посмотреть регистры LAN.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 07:50
Сообщение #9


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Не знал, раз есть, должен подойти. Ставте и пробуйте посмотреть регистры LAN.

Регистры смотреть через Nios?
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 07:58
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 10:50) *
Регистры смотреть через Nios?

Да, для Ниос он - внешняя память, должно быть доступно через Memory Monitor в Eclipse.
Go to the top of the page
 
+Quote Post
krux
сообщение Jan 30 2015, 08:01
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата(Azatot @ Jan 30 2015, 10:40) *
в Qsys есть такой компонент Generic Tri-State Controller. В его настройках можно выбрать LAN91C111.
Может этот контроллер и подойдет?
Только, что бы проверить, нужна реализация на Nios.

подойдёт.
у меня на циклоне-3 такой вариант работал.
единственный момент - нужно иметь возможность дергать аппаратный ресет у LAN91C111 через GPIO из nios.


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 08:11
Сообщение #12


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
подойдёт.
у меня на циклоне-3 такой вариант работал.
единственный момент - нужно иметь возможность дергать аппаратный ресет у LAN91C111 через GPIO из nios.

Я так понимаю, что Generic Tri-State Controller нужно еще подключать к Tristate Conduit Bridge, а уже с него выходы на LAN91C111 назначать (а ресет LANа, соответственно, вообще отдельным пином)?
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 08:16
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 11:11) *
Я так понимаю, что Generic Tri-State Controller нужно еще подключать к Tristate Conduit Bridge, а уже с него выходы на LAN91C111 назначать (а ресет LANа, соответственно, вообще отдельным пином)?

Да, надо.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 08:29
Сообщение #14


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Да, надо.

Да, это я уже понял, в datasheete Альтеровском вычитал.
Но, самое забавное, что количество сигналов на выходе Tristate Conduit Bridge не соответствует количеству сигналов в LAN.
И длина адреса LAN 20 бит, а Generic Tri-State Controller формирует только 16 бит. Можно в ручную, конечно, поправить на 20, но будет ли работать.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 08:40
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 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]), так что всё нормально.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 08:56
Сообщение #16


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Адрес там 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]), так что всё нормально.

А сигналы tristate_conduit_bridge_0_out_tcm_read_n_out и tristate_conduit_bridge_0_out_tcm_write_n_out в Nios это ENET_IOR_N и ENET_IOW_N соответственно в LAN?
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 09:11
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 11:56) *
А сигналы tristate_conduit_bridge_0_out_tcm_read_n_out и tristate_conduit_bridge_0_out_tcm_write_n_out в Nios это ENET_IOR_N и ENET_IOW_N соответственно в LAN?

Да, только в моей доке на LAN они nRD, nWR называются.

UPP
Сигнал сброса там уже присутствует, но это будет сброс совместный со всей Qsys системой. Поэтому на ногу LAN, как и писали выше, лучше завести сброс от PIO.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 09:14
Сообщение #18


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Да, для Ниос он - внешняя память, должно быть доступно через Memory Monitor в Eclipse.

Пины назначил, скомпилил проект, залил. Зашел в Эклипс, создал проект, который диодами дергает, залил.
Во вкладке memory ничего нет.

Цитата
Да, только в моей доке на LAN они nRD, nWR называются.

У меня pdf с назначением ног Stratix и там сигналы, видимо, не так как в datasheet на LAN называются.
Есть еще ENET_SRDY_N и ENET_W_R_N, это и они вполне могут быть!
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 09:17
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 12:14) *
Пины назначил, скомпилил проект, залил. Зашел в Эклипс, создал проект, который диодами дергает, залил.
Во вкладке memory ничего нет.

Что значит ничего нет, а другие адреса смотрели (On-Chip Memory)?
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 09:19
Сообщение #20


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Что значит ничего нет, а другие адреса смотрели (On-Chip Memory)?

В этой вкладе надо добавить адреса, которые в Qsys присваивались?
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 09:20
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 12:19) *
В этой вкладе надо добавить адреса, которые в Qsys присваивались?

Да, конечно. Можете попробовать из Ниос писать/читать заданный адрес, должно работать.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 09:25
Сообщение #22


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Да, конечно. Можете попробовать из Ниос писать/читать заданный адрес, должно работать.

Спасибо, понял.
В адресах LAN 0xFFFFFFFF лежат. После них прошивка идет.
Попробовать записать что-нибудь в регистры LAN нужно?
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 09:32
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 12:25) *
Спасибо, понял.
В адресах LAN 0xFFFFFFFF лежат. После них прошивка идет.
Попробовать записать что-нибудь в регистры LAN нужно?

0xFFFFFFFF это не есть хорошо, что-то не прочитало оно, но попробуйте.

UP
Может быть окно Memory глючит с этим контроллером, но, вроде, не должно.
Попробуйте через указатель память LAN писать/читать.

UPP
Если и так не работает, тогда смотрите, что там не так с интерфейсом получилось. Сброс от PIO заведите, при запуске программы Ниос сбрасывайте микросхему. Даже при выборе для Generic Tri-State Controller опции LAN91C111 есть ещё куча настроек.
Если всё будет правильно - LAN для Ниос - это память (в Qsys есть возможность даже Reset Vector на неё повесить sm.gif ).
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 09:48
Сообщение #24


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
0xFFFFFFFF это не есть хорошо, что-то не прочитало оно, но попробуйте.

Возможно, что всетаки с сигналами напутано.
Попробую переназначить и посмотреть, что получится.
Цитата
Если и так не работает, тогда смотрите, что там не так с интерфейсом получилось. Сброс от PIO заведите, при запуске программы Ниос сбрасывайте. Даже при выборе для Generic Tri-State Controller опции LAN91C111 есть ещё куча настроек.

По идее он автоматом эти настройки расставляет, когда LAN выбираешь.

Сообщение отредактировал Azatot - Jan 30 2015, 09:50
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 09:54
Сообщение #25


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 12:48) *
По идее он автоматом эти настройки расставляет, когда LAN выбираешь.

Да, но, возможно, LAN в них что-то не нравится или подключили что-то не так.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 09:54
Сообщение #26


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Сброс от PIO заведите, при запуске программы Ниос сбрасывайте

Тут еще ситуация какая: В pdf с констрейнами ресет enet_RESET_n на fpga не заведен! Там пусто.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 10:03
Сообщение #27


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 12:54) *
Тут еще ситуация какая: В pdf с констрейнами ресет enet_RESET_n на fpga не заведен! Там пусто.

Сброс микросхемы LAN91C111 висит в воздухе? Но, думаю, пока reset не главная проблема. Там есть ещё и программный сброс, им можно будет обойтись. Не помню, чтобы у нас были проблемы с данной микросхемой в плане сброса.

UP
Проверяйте все подключения и сам контроллер (осциллом, SignalTap-ом).
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 10:05
Сообщение #28


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Попробуйте через указатель память LAN писать/читать.

Есть же, наверное, функция по чтению/записи памяти по адресу в добавленных исходниках альтеровских.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 10:24
Сообщение #29


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 13:05) *
Есть же, наверное, функция по чтению/записи памяти по адресу в добавленных исходниках альтеровских.

Если предполагается что проц будет видеть микросхему как внешнюю память, то в BSP не будет никаких драйверов, но надо проверить.

UP
Проверил, так и есть, для Вас - это внешняя память и никаких драйверов в BSP нет. Регистры LAN пишете через указатель.

Смотрите ещё сигналы из группы System Control Bus в описании микросхемы. Если использовать generic_tristate_controller + tristate_conduit_bridge, то для "половины" из них нет соответствия в Qsys системе, надо думать, что подавать на данные пины LAN.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 10:50
Сообщение #30


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Смотрите ещё сигналы из группы System Control Bus в описании микросхемы. Если использовать generic_tristate_controller + tristate_conduit_bridge, то для "половины" из них нет соответствия в Qsys системе, надо думать, что подавать на данные пины LAN.

Часть сигналов, которые не генерит Qsys по pdf должны подключаться к пинам, которые у плис заведены на GND и VCC.
Суть в том, что у меня pdf на кит с ep2s180, а сам кит на ep2s60. Корпуса у них одинаковые. Флэш память, диоды и прочее работает по тем констрейнам, что в pdf. А вот с LAN ерунда какая то. В pdf на мой кит констрейнов на LAN вообще нет!
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 10:59
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(doom13 @ Jan 30 2015, 11:40) *
Адрес там 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]), так что всё нормально.

Тут всё же немного неправильно. Надо так:

lan91c111 ---> Nios

A15-A1 ---> tristate_conduit_bridge_tcm_address_out[14:0] (возможно, tristate_conduit_bridge_tcm_address_out[15:1])
AEN ---> тут надо CS вывести и подключить, в настройках ядра галка не стоит
nBE3-nBE0 ---> tristate_conduit_bridge_tcm_byteenable_n_out[3:0]
nRD ---> tristate_conduit_bridge_tcm_read_n_out
nWR ---> tristate_conduit_bridge_tcm_write_n_out

У нас на схеме ещё ARDY задействован (там сигнал nXREADY от XINTF подключен), что тут к нему коннектить не знаю.
И смотрите, что ещё с ПЛИС на LAN идёт, возможно, не так, как в нашей схеме.

UP
Ещё INTR0 заведено.

nADS ---> 0 (сидит на земле)

nCYCLE, WnR, LCLK, nRDYRTN ---> 1
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 11:00
Сообщение #32


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Регистры LAN пишете через указатель

А как это сделать? совсем уже не соображаю! krapula.gif
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 11:03
Сообщение #33


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Jan 30 2015, 14:00) *
А как это сделать? совсем уже не соображаю! krapula.gif


Код
int *lan_reg = (int *) LAN_BASE_ADDRESS; // LAN_BASE_ADDRESS - адрес в Qsys
int reg;

reg = *lan_reg; // чтение
*lan_reg = reg; // запись

Но пока в Memory видите FFFFFF - не прокатит, смотрите, что писал выше.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 11:18
Сообщение #34


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Но пока в Memory видите FFFFFF - не прокатит, смотрите, что писал выше.

В описании платы сигналы все эти есть и заведены на LAN.
Вообщем, посижу, спокойно поразбираюсь с документацией, а то путаница какая то!
И программатор отобрали до понедельника. sad.gif
В любом случае, огромное спасибо за потраченное время на меня! rolleyes.gif
В понедельник отпишусь о результатах.
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jan 30 2015, 12:09
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(Azatot @ Jan 30 2015, 09:07) *
...На плате стоит PHY/MAC SMSC LAN91C111, вроде у Альтеры есть компонент в qsys для интерфейса с ним. Но найти там не могу и как прикрутить не понимаю.....
Может это поможет, там были легкие советы по Ethernet с чипом LAN91C111:
http://electronix.ru/forum/index.php?showtopic=70682&hl=
http://electronix.ru/forum/index.php?showtopic=37680&hl=
http://electronix.ru/forum/index.php?showtopic=66839&hl=
http://electronix.ru/forum/index.php?showtopic=62982&hl=
http://electronix.ru/forum/index.php?showtopic=62964&hl=

У меня был Ethernet-100 на Stratix-II и LAN91C111, что на DK-NIOS-2S60N, работал нормально. Усеченный стек TCP/IP на NiosII был свой.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Jan 30 2015, 12:30
Сообщение #36


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
У меня был Ethernet-100 на Stratix-II и LAN91C111, что на DK-NIOS-2S60N, работал нормально. Усеченный стек TCP/IP на NiosII был свой

А какие-нибудь исходники не сохранились у Вас? А то все ссылки, которые в темах не активны. Видимо никто особо уже не пользуется такими микросхемами. rolleyes.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 30 2015, 12:55
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Сброс микросхемы LAN91C111 висит в воздухе? Но, думаю, пока reset не главная проблема. Там есть ещё и программный сброс, им можно будет обойтись


Стесняюсь спросить, но все же: неужели нога ресета висящая в воздухе и теоретически способная ловя наводки переодически сбрасывать микросхему действительно не проблема и можно по этому поводу не переживать?
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jan 30 2015, 13:08
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(Azatot @ Jan 30 2015, 16:30) *
А какие-нибудь исходники не сохранились у Вас? А то все ссылки, которые в темах не активны. Видимо никто особо уже не пользуется такими микросхемами. rolleyes.gif
Исходный проект на DK-NIOS-2S60N и тексты для NiosII от 2009 года в среде QII-7.2 имеются.
Там был реализован процессор первичной обработки для гражданского берегового радара. Процессор принимал коды с частотой 25МГц от АЦП в 12 разрядов, и выполнял небольшую первичную, в том числе и пороговую обработку. На проходе упаковывал данные в UDP-пакеты и через LAN91C111 выдавал их по Ethernet-100 в индустриальные ПК для последующей вторичной обработки...
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 13:39
Сообщение #39


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Golikov A. @ Jan 30 2015, 15:55) *
Стесняюсь спросить, но все же: неужели нога ресета висящая в воздухе и теоретически способная ловя наводки переодически сбрасывать микросхему действительно не проблема и можно по этому поводу не переживать?

Не стесняйтесь, спрашивайте. Не висит она в воздухе, просто ТС не ответил, куда она подключена. А пост был к тому, что на данном этапе проблема не в ресете, а втом, что интерфейс Ниоса неправильно подключен к интерфейсу микросхемы.

Цитата(Serhiy_UA @ Jan 30 2015, 15:09) *
У меня был Ethernet-100 на Stratix-II и LAN91C111, что на DK-NIOS-2S60N, работал нормально. Усеченный стек TCP/IP на NiosII был свой.

Расскажите, как правильно подключить LAN91c111-контроллер ПЛИС к самой микросхеме?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 30 2015, 14:58
Сообщение #40


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Тогда я спрошу,
а что если она не в воздухе, а подключен не на тот уровень и микросхема постоянно в ресете? То есть пин что шел на ресет, взяли да заземлили как ненужный. Микруха в ресете и все запросы в ее область возвращают FFFFF - высокий импеданс...

ну хотя... да причем тут ресет....
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 15:16
Сообщение #41


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Golikov A. @ Jan 30 2015, 17:58) *
Тогда я спрошу,
а что если она не в воздухе, а подключен не на тот уровень и микросхема постоянно в ресете? То есть пин что шел на ресет, взяли да заземлили как ненужный. Микруха в ресете и все запросы в ее область возвращают FFFFF - высокий импеданс...

ну хотя... да причем тут ресет....

Т.к. это девборда, то там по определению всё в порядке. Не засоряйте тему, читайте внимательно, это был риторический вопрос...
Чтобы Вам было более понятно
Цитата(Azatot @ Jan 30 2015, 12:54) *
Тут еще ситуация какая: В pdf с констрейнами ресет enet_RESET_n на fpga не заведен! Там пусто.

вопрс был направлен на то, чтобы ТС ещё раз более внимательно посмотрел, куда подключен сброс микросхемы LAN91C111.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 16:21
Сообщение #42


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Актуальным пока остаётся ответ на это
Цитата(doom13 @ Jan 30 2015, 16:39) *
Цитата(Serhiy_UA @ Jan 30 2015, 15:09) *
У меня был Ethernet-100 на Stratix-II и LAN91C111, что на DK-NIOS-2S60N, работал нормально. Усеченный стек TCP/IP на NiosII был свой.

Расскажите, как правильно подключить LAN91c111-контроллер ПЛИС к самой микросхеме?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jan 30 2015, 17:15
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Балаболка вы doom13... ладно не буду мешать, упивайтесь...
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 30 2015, 17:39
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Golikov A. @ Jan 30 2015, 20:15) *
Балаболка вы ...

Куда уж мне до Вас (все аргументы см. в других темах). smile3009.gif

Да ещё, я зашёл в эту тему, т.к. в одном нашем старом, но пока ещё живом, проекте используется именно LAN91C111 и я имел с ней дело (правда, там она висит на XINTF-е TI-шного проца). А ещё работал с похожим драйвером LAN9211, который тоже висит на XINTF-е другого TI-шного проца.
А Вы так, как всегда, язык почесать 08.gif
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jan 31 2015, 06:06
Сообщение #45


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(doom13 @ Jan 30 2015, 16:39) *
Расскажите, как правильно подключить LAN91c111-контроллер ПЛИС к самой микросхеме?
В приложении скрин структуры моего проекта в SOPC Builder.
Там видно подключение к проекту самого чипа LAN91c111.
Здесь за основу здесь был взят проект NiosII_stratixII_2s60_RoHS_small, который входил в комплект примеров с LAN91c111. Примеры поставляются вместе китом DK-NIOS-2S60N и с софтом на QII-7.2. Далее исходный пример был расширен и адаптирован под мою задачу.
Думаю, аналогичный пример должен быть и на кит, что у Azatot.

Еще одна ссылка на ресурсы по LAN91c111:
http://www.microchip.com/wwwproducts/Devic...oduct=LAN91C111
Прикрепленные файлы
Прикрепленный файл  Ethernet_100_LAN91c111.rar ( 167.9 килобайт ) Кол-во скачиваний: 9
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Jan 31 2015, 19:16
Сообщение #46


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Serhiy_UA @ Jan 31 2015, 09:06) *

Не совсем то, что хотелось увидеть. ЕстьSOPC/Qsys-система с контроллером LAN91C111, покажите как порты контроллера LAN91C111 SOPC-системы подключаются к самой микросхеме LAN91C111.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 2 2015, 04:42
Сообщение #47


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Не висит она в воздухе, просто ТС не ответил, куда она подключена.

Приветствую!
Да, она, естественно, не висит в воздухе. Посмотрел по схеме кита, ресет висит на конфигурационной CPLD EPM7256AETC144. Соответственно доступ к нему просто так не получишь. На ней, похоже, все ресеты от переферии висят.
Цитата
AEN ---> тут надо CS вывести и подключить, в настройках ядра галка не стоит

Как Вы и писали ранее, AEN это tristate_conduit_bridge_tcm_address_out[0], посмотрел в схематике кита, а так же:
ENET_DATACS_N - VCC
ENET_IOCHRDY - VCC
ENET_LDEV_N - GND
ENET_SRDY_N - GND
ENET_W_R_N - VCC
Цитата
В приложении скрин структуры моего проекта в SOPC Builder.
Там видно подключение к проекту самого чипа LAN91c111.

В SOPC Builder есть такой компонент LAN91c111, и может быть он там и подключается правильно автоматически. А при переходе в Qsys может Альтера что то и упустила и надо руками допиливать.
Цитата
Думаю, аналогичный пример должен быть и на кит, что у Azatot.

Я уже писал, что кит достался от предыдущего "обладателя", и вся документация, примеры и вообще все, кроме платы пропало.

Сообщение отредактировал Azatot - Feb 2 2015, 04:47
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 2 2015, 06:29
Сообщение #48


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Feb 2 2015, 07:42) *
В SOPC Builder есть такой компонент LAN91c111, и может быть он там и подключается правильно автоматически. А при переходе в Qsys может Альтера что то и упустила и надо руками допиливать.

Автоматически он не мог подключаться, SOPC не может знать, на каких ногах FPGA висит микросхема LAN91C111.

Цитата(Azatot @ Feb 2 2015, 07:42) *
Да, она, естественно, не висит в воздухе. Посмотрел по схеме кита, ресет висит на конфигурационной CPLD EPM7256AETC144. Соответственно доступ к нему просто так не получишь. На ней, похоже, все ресеты от переферии висят.

Т.е. при включении она сформирует ресет, как надо. Далее после правильного подключения LAN91C111 будет возможность сделать программный сброс.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 2 2015, 06:31
Сообщение #49


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Автоматически он не мог подключаться, SOPC не может знать, на каких ногах FPGA висит микросхема LAN91C111.

Я имел ввиду, что в SOPC может быть интерфейс Nios с LAN прописан лучше (все сигналы выведены).
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Feb 2 2015, 06:42
Сообщение #50


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



doom13, Вы писали "Не совсем то, что хотелось увидеть. ЕстьSOPC/Qsys-система с контроллером LAN91C111, покажите как порты контроллера LAN91C111 SOPC-системы подключаются к самой микросхеме LAN91C111."

Я работаю с QII-7.2 или QII-8.1, там используется SOPC, что вполне достаточно для Stratix II и Cyclone III. Предполагаю, что в Qsys аналогично, хотя могу и ошибаться. Теперь кратко по шагам.
1. В QII вручную создается начальная версия модуля верхнего уровня, например, main.v, после чего он компилируется.
2. В SOPC Builder создается система NiosII со всеми нужными нам компонентами, в том числе и с компонентом LAN91C111. Только там будет не сам контроллер LAN91C111, а его внешний интерфейсный канал (шины адреса, данных и управление).
3. Теперь в SOPC Builder генерируется система, после чего этот сгенерированный модуль, уже как большой черный ящик, включается в модуль main.v.
4. Для выполнения этого в сгенерированном файле *_sopc.v находится строка *_sopc DUT (обычно она в конце файла), после которой перечисляются все сигналы сгенерированной SOPC Builder системы (большого черного ящика). Все перечисление копируется в main.v и там создается подчиненный модуль. В файле main.v. сигналы от LAN91C111, логически выводятся на внешние выводы ПЛИС.
5. Далее main.v опять компилируется. После компиляции выходные сигналы ПЛИС увязываются с физическими контактами.
6. Теперь из SOPC Builder переходим в Nios II IDE и там создается программный проект для NiosII. При этом там задается ссылка на исходный *_sopc.sopc, чтобы все соответствовало друг-другу. Далее пишется и компилируется программа на С++. При этом надо учитывать то, что после каждой компиляции проекта в QII нужно выполнять процедуру Refresh в Nios II IDE.
7. Загрузка программы для тестирования системы и уже готовой прошивки в EPCS, тоже отдельная тема.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 2 2015, 06:49
Сообщение #51


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Теперь кратко по шагам.

Порядок действий нам известен. rolleyes.gif
Вопрос как у Вас подключена FPGA к LAN, физически какие контакты куда идут?
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 2 2015, 06:50
Сообщение #52


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Serhiy_UA @ Feb 2 2015, 09:42) *
В файле main.v. сигналы от LAN91C111, логически выводятся на внешние выводы ПЛИС.

Вот про это логическое подключение подробнее и расскажите. Какие порты для LAN должны быть в SOPC-системе и как они подключаются к физическим ногам микросхемы LAN91C111.

Со стандартными настройками компонента LAN91C111 в Qsys получаем только следующие порты для SOPC (есть возможность включить дополнительные сигналы):
Код
output wire [15:0] tristate_conduit_bridge_tcm_address_out,      // tristate_conduit_bridge.tcm_address_out
output wire [3:0]  tristate_conduit_bridge_tcm_byteenable_n_out, //                        .tcm_byteenable_n_out
output wire [0:0]  tristate_conduit_bridge_tcm_read_n_out,       //                        .tcm_read_n_out
output wire [0:0]  tristate_conduit_bridge_tcm_write_n_out,      //                        .tcm_write_n_out
output wire [0:0]  tristate_conduit_bridge_tcm_reset_out,        //                        .tcm_reset_out
inout  wire [31:0] tristate_conduit_bridge_tcm_data_out          //                        .tcm_data_out
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Feb 2 2015, 07:21
Сообщение #53


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(Azatot @ Feb 2 2015, 09:49) *
Вопрос как у Вас подключена FPGA к LAN, физически какие контакты куда идут?
Все делать согласно принципиальной схеме на плату. Если Вы её не имеете, то это плохо...

Цитата(doom13 @ Feb 2 2015, 09:49) *
Вот про это логическое подключение подробнее и расскажите. Какие порты для LAN должны быть в SOPC-системе и как они подключаются к физическим ногам микросхемы LAN91C111.
Компонент LAN91C111 должен быть доступен из/в SOPC Buider, иначе он не будет сгенерирован и для него не создастся интерфейсный канал, т.е. не будет автоматом созданы цепи и они не будут увязаны с тактовой частотой NiosII, для корректного обращения к LAN91C111. Вручную это сделать не удастся...
По поводу логики подключения, здесь нужно знать про построение иерархических проектов из главного и подчиненных модулей, а так же, уже вручную, увязывать все по названиям цепи из модуля NiosII (подчиненный) и главного модуля проекта.
В части физического подключения - нужна принципиальная схема на ПЛИС и LAN91C111 и также ручная увязка контактов. Все делать с учетом названия цепей...
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 2 2015, 07:24
Сообщение #54


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Все делать согласно принципиальной схеме на плату. Если Вы её не имеете, то это плохо...

Это все понятно, схема есть.
Вопрос в том, какие сигналы в Вашем проекте создал SOPC для связи с LAN91C111?
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 2 2015, 07:28
Сообщение #55


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Serhiy_UA @ Feb 2 2015, 10:21) *

Похоже, мы на разных языках разговариваем

Цитата(Serhiy_UA @ Feb 2 2015, 10:21) *
В части физического подключения - нужна принципиальная схема на ПЛИС и LAN91C111 и также ручная увязка контактов. Все делать с учетом названия цепей...

Где-то названия совпадают, а есть и такие пины на микросхеме, которых нет в сгенерированной SOPC системе.
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Feb 2 2015, 07:48
Сообщение #56


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(Azatot @ Feb 2 2015, 10:24) *
Вопрос в том, какие сигналы в Вашем проекте создал SOPC для связи с LAN91C111?

Откройте прилагаемый файл, там почти в конце есть строка:
NiosII_stratixII_2s60_RoHS_small_sopc DUT
После неё все сигналы большого черного ящика, что создал SOPC, в том числе для работы с LAN91C111.
Это и есть та заготовка для подчиненного модуля, что вставляется в модуль верхнего уровня. Теперь нужные Вам сигналы перетягиваются на выход ПЛИС, а не нужные используются внутри главного модуля...

Цитата(doom13 @ Feb 2 2015, 10:28) *
Где-то названия совпадают, а есть и такие пины на микросхеме, которых нет в сгенерированной SOPC системе.

Бывыет, здесь надо разбираться...
Просто в моем случае, на готовом ките, все заработало...
В приложении схема кита.

Прикрепленные файлы
Прикрепленный файл  NiosII_stratixII_2s60_RoHS_small_sopc.rar ( 30.78 килобайт ) Кол-во скачиваний: 11
Прикрепленный файл  StratixII_NiosII_2S60_DB_Rev01_SCH.rar ( 413.32 килобайт ) Кол-во скачиваний: 32
 
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 2 2015, 07:48
Сообщение #57


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Откройте прилагаемый файл, там почти в конце есть строка:
NiosII_stratixII_2s60_RoHS_small_sopc DUT

Получается, что сигналы все те же, только irq(видимо прерывание с LAN) добавился.
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Feb 2 2015, 08:05
Сообщение #58


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(Azatot @ Feb 2 2015, 11:48) *
Получается, что сигналы все те же, только irq(видимо прерывание с LAN) добавился.

В моей программе прерывание от LAN, я не обрабатывал. Просто периодически опрашивал буфер LAN. Времени хватало. Хотя с прерыванием было бы лучше...
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 2 2015, 08:33
Сообщение #59


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Проверил, так и есть, для Вас - это внешняя память и никаких драйверов в BSP нет. Регистры LAN пишете через указатель.

Кстати, драйвера то в BSP LAN91C111 есть таки. altera_avalon_lan91c111_regs.h и altera_avalon_lan91c111.h.
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 2 2015, 08:43
Сообщение #60


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Feb 2 2015, 10:48) *
Получается, что сигналы все те же, только irq(видимо прерывание с LAN) добавился.

Получили, что все ножки LAN91C111 заведены на FPGA. В получаемой Qsys-системе ног меньше (если смотреть на описание шин, с которыми может работать LAN91С111, то для любой из них сигналов в Qsys-системе должно быть намного больше). Из приведённого примера не понятно, что делать с остальными ножками микросхемы. Пробуйте на оставшиеся повесить '0' или '1' (что подходит, смотрите по даташиту).
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 2 2015, 08:48
Сообщение #61


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Из приведённого примера не понятно, что делать с остальными ножками микросхемы. Пробуйте на оставшиеся повесить '0' или '1' (что подходит, смотрите по даташиту).

Да, в принципе, так уже и сделал. Жду пока программатор вернут, и буду пробовать.
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 2 2015, 08:54
Сообщение #62


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Feb 2 2015, 11:33) *
Кстати, драйвера то в BSP LAN91C111 есть таки. altera_avalon_lan91c111_regs.h и altera_avalon_lan91c111.h.

Да есть, я что-то не туда смотрел. Можете, когда всё подключите, попробовать читать/писать регистры с помощью макросов. Но, думаю, через указатель тут тоже должно всё работать.
На рисунке - используемые ножки в нашей схеме. AEN (если доку смотреть) - не ADDR0, а больше похож на чип-селект. С адресом смотрите, как там будет правильно.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 2 2015, 09:08
Сообщение #63


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
AEN (если доку смотреть) - не ADDR0, а больше похож на чип-селект

Просто, тогда странно, что делать с ADDR0.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 3 2015, 06:22
Сообщение #64


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Но пока в Memory видите FFFFFF - не прокатит, смотрите, что писал выше.

А Nios точно должен распознать LAN, как память и видеть, что в регистрах через вкладку Memory в Eclipse?
Там все время FF, а если пишу через IOWR_ALTERA_AVALON_LAN91C111_BSR, а потом читаю IORD_ALTERA_AVALON_LAN91C111_BSR, то в переменной лежит, то что писал. Но, может это и не работает на самом деле.
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 3 2015, 06:26
Сообщение #65


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Feb 3 2015, 09:22) *
А Nios точно должен распознать LAN, как память и видеть, что в регистрах через вкладку Memory в Eclipse?
Там все время FF, а если пишу через IOWR_ALTERA_AVALON_LAN91C111_BSR, а потом читаю IORD_ALTERA_AVALON_LAN91C111_BSR, то в переменной лежит, то что писал. Но, может это и не работает на самом деле.

Думал, что да. Но если через макросы работает, значит ошибаюсь.
А если попробовать писать/читать через указатель?
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 3 2015, 06:39
Сообщение #66


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Думал, что да. Но если через макросы работает, значит ошибаюсь.
А если попробовать писать/читать через указатель?

Да, похоже, что не работает и макросами, либо я что то не так делаю.
Через указатель пишу, потом читаю, во вкладке Variables в переменной reg показывает то, что писал. А в lan_reg (откуда считываю) всеравно лежит FF.
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 3 2015, 06:42
Сообщение #67


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Feb 3 2015, 09:39) *
Да, похоже, что не работает и макросами, либо я что то не так делаю.

Т.е. прочитать значение регистра с помощью макроса всё же не работает?
А куда повесили AEN?
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 3 2015, 06:51
Сообщение #68


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Т.е. прочитать значение регистра с помощью макроса всё же не работает?

Да тут похоже, всетаки с сигналами что то не так.
AEN и на ADR0 вешал и CS на выводил. Потом смотрю осциллографом AEN, а он как стоит в 1, так и не шелохнется.
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 3 2015, 07:00
Сообщение #69


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Покажите, что и куда подключаете (все ножки микросхемы).
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 3 2015, 07:09
Сообщение #70


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Потом смотрю осциллографом AEN, а он как стоит в 1

Даже не в 1, а TriState.
Цитата
Покажите, что и куда подключаете (все ножки микросхемы).

В приложении.
Прикрепленные файлы
Прикрепленный файл  PIN.txt ( 2.45 килобайт ) Кол-во скачиваний: 7
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 3 2015, 07:27
Сообщение #71


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Можно ещё подключение портов Nios к выводам FPGA (микросхемы LAN) и что на "лишних" ногах LAN.
Зачем используете двунаправленные порты там, где в этом нет необходимости (ADDR, AEN, BE[3:0],....)?
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 3 2015, 07:42
Сообщение #72


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Зачем используете двунаправленные порты там, где в этом нет необходимости (ADDR, AEN, BE[3:0],....)?

Так Qsys сгенерировал.
Цитата
Можно ещё подключение портов Nios к выводам FPGA (микросхемы LAN) и что на "лишних" ногах LAN.

В файле, что я выложил, эти сигналы идут от Nios к выводам FPGA:
LAN_data
LAN_adr
LAN_byte
LAN_read
LAN_irq
LAN_AEn
LAN_write
Остальные ноги LAN:
LAN_RDYRTN<='1';
LAN_CYCLE<='1';
LAN_VLBUS<='1';
LAN_LCLK<='1';
Эти ноги LAN сидят на жесткую (либо земля, либо питание):
DATA_CS<='1';
IOCHRDY<='1';
LDEV<='0';
SRDY<='0';
W_R_N<='1';
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 3 2015, 08:00
Сообщение #73


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Используйте inout только для шины DATA, всё остольное или input или output (не будет лишней возможности ошибиться).
Судя по pin-файлу LAN_AEn[0] вообще никуда не подключен.
LDEV<='0'; SRDY<='0'; вообще выходы микросхемы (если доку на LAN смотреть).
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 3 2015, 08:52
Сообщение #74


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Используйте inout только для шины DATA, всё остольное или input или output (не будет лишней возможности ошибиться).

Хорошо, поменяю. Меня это тоже насторожило, но подумал раз Qsys так генерит, значит так и надо.
Цитата
Судя по pin-файлу LAN_AEn[0] вообще никуда не подключен.

LAN_AEn[0] я ввел, когда cs вывел из компонента. А сейчас на ADR[0] подключено, поэтому LAN_AEn[0] остался голый.
Цитата
LDEV<='0'; SRDY<='0'; вообще выходы микросхемы (если доку на LAN смотреть).

Эти пины подключены к ногам ПЛИС, которые являются GND ногами.

Смотрю осциллографом:
WR и RD оба в 0 лежат.
По адресной шине что то проскакивает.
На данных вообще пила какая то.
AEn в третьем состоянии будто бы.
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 3 2015, 09:12
Сообщение #75


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Feb 3 2015, 11:52) *
Хорошо, поменяю. Меня это тоже насторожило, но подумал раз Qsys так генерит, значит так и надо.

Так Qsys генерит inout только для шины данных:
Код
output wire [15:0] tristate_conduit_bridge_tcm_address_out,      // tristate_conduit_bridge.tcm_address_out
output wire [3:0]  tristate_conduit_bridge_tcm_byteenable_n_out, //                        .tcm_byteenable_n_out
output wire [0:0]  tristate_conduit_bridge_tcm_read_n_out,       //                        .tcm_read_n_out
output wire [0:0]  tristate_conduit_bridge_tcm_write_n_out,      //                        .tcm_write_n_out
output wire [0:0]  tristate_conduit_bridge_tcm_reset_out,        //                        .tcm_reset_out
inout  wire [31:0] tristate_conduit_bridge_tcm_data_out          //                        .tcm_data_out

Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 3 2015, 09:17
Сообщение #76


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Так Qsys генерит inout только для шины данных:

Беру из вкладки HDL Example Qsys'а (в VHDL):
Код
component Nios1_proc is
        port (
            clk_0                                                            : in    std_logic                     := 'X';             -- clk
            reset_n                                                          : in    std_logic                     := 'X';             -- reset_n
            out_port_from_the_pio_0                                          : out   std_logic_vector(7 downto 0);                     -- export
            tri_state_bridge_0_bridge_0_out_select_n_to_the_cfi_flash_0      : inout std_logic_vector(0 downto 0)  := (others => 'X'); -- select_n_to_the_cfi_flash_0
            tri_state_bridge_0_bridge_0_out_write_n_to_the_cfi_flash_0       : inout std_logic_vector(0 downto 0)  := (others => 'X'); -- write_n_to_the_cfi_flash_0
            tri_state_bridge_0_bridge_0_out_read_n_to_the_cfi_flash_0        : inout std_logic_vector(0 downto 0)  := (others => 'X'); -- read_n_to_the_cfi_flash_0
            tri_state_bridge_0_bridge_0_out_data_to_and_from_the_cfi_flash_0 : inout std_logic_vector(7 downto 0)  := (others => 'X'); -- data_to_and_from_the_cfi_flash_0
            tri_state_bridge_0_bridge_0_out_address_to_the_cfi_flash_0       : inout std_logic_vector(23 downto 0) := (others => 'X'); -- address_to_the_cfi_flash_0
            tristate_conduit_bridge_0_out_tcm_byteenable_n_out               : inout std_logic_vector(3 downto 0)  := (others => 'X'); -- tcm_byteenable_n_out
            tristate_conduit_bridge_0_out_tcm_irq_in_in                      : in    std_logic_vector(0 downto 0)  := (others => 'X'); -- tcm_irq_in_in
            tristate_conduit_bridge_0_out_tcm_data_out                       : inout std_logic_vector(31 downto 0) := (others => 'X'); -- tcm_data_out
            tristate_conduit_bridge_0_out_tcm_write_n_out                    : inout std_logic_vector(0 downto 0)  := (others => 'X'); -- tcm_write_n_out
            tristate_conduit_bridge_0_out_tcm_reset_out                      : inout std_logic_vector(0 downto 0)  := (others => 'X'); -- tcm_reset_out
            tristate_conduit_bridge_0_out_tcm_chipselect_n_out               : inout std_logic_vector(0 downto 0)  := (others => 'X'); -- tcm_chipselect_n_out
            tristate_conduit_bridge_0_out_tcm_address_out                    : inout std_logic_vector(15 downto 0) := (others => 'X'); -- tcm_address_out
            tristate_conduit_bridge_0_out_tcm_read_n_out                     : inout std_logic_vector(0 downto 0)  := (others => 'X')  -- tcm_read_n_out
        );
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 3 2015, 12:05
Сообщение #77


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Взято с форума Альтеры:
Цитата
Connect pins #BE0, #BE1 to the same named module port pins.
Connect pins A1,A2,A3 to module pins A2,A3,A4.
Tie pins A8,A9 high, all remaining address pins low.
IRQ and Reset connected to obvious pins.
#IOR, #IOW to #RD,#WR.
#ADS, AEN low, LCLK, #BE2,#BE3 high.

With the address lines connected as described, your registers should be on 32bit boundaries: BASE+0,BASE+4,BASE+8,etc.

As a test try to read the BSR:
write 0x0003 to BASE+0xE, then you should read something like 0x339n from BASE+0xA. You may have to use 0x1C,0x14 instead of 0xE,0xA depending on if you have used any of the built-in macros to do the job. Once this works, you will know what kind of changes will be needed to the driver - mainly shift and mask.
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 3 2015, 13:13
Сообщение #78


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Взято с форума Альтеры:

Попробовал так.
Подключил, как написано, пишу 0х0003, читаю 0х3.
Ради интереса записал 0х0007 и 0х0123, прочитал 0х7 и 0х123. По моему, не работает.
А ссылку не кинете на тему альтеровского форума откуда взяли этот текст?
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 3 2015, 14:41
Сообщение #79


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Azatot @ Feb 3 2015, 16:13) *
А ссылку не кинете на тему альтеровского форума откуда взяли этот текст?

Тут смотрите.


Цитата(Azatot @ Feb 3 2015, 16:13) *
Попробовал так.
Подключил, как написано, пишу 0х0003, читаю 0х3.
Ради интереса записал 0х0007 и 0х0123, прочитал 0х7 и 0х123. По моему, не работает.

Что-то не понял, почему не работает, что записали то и прочитали. Что не так?
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 4 2015, 06:32
Сообщение #80


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Что-то не понял, почему не работает, что записали то и прочитали. Что не так?

Да что то не понятно мне.
Пишу:
Код
for(i=0;i<20;i++)
            {
                IOWR_16DIRECT(LAN_BASE_ADDRESS+0xE, 14, 0x0003);
                reg[i]=IORD_16DIRECT(LAN_BASE_ADDRESS+i, 14);
            }

Хочу записывая один регистр, посмотреть, что в других, включая и записанный.
В reg[] после выхода из for какая то ерунда лежит. В том числе и в BASE_ADR+0xA.
Пишу:
Код
   IOWR_16DIRECT(LAN_BASE_ADDRESS+0xE, 14, 0x0003);
            reg2=IORD_16DIRECT(LAN_BASE_ADDRESS+0xA, 14);

            IOWR_16DIRECT(LAN_BASE_ADDRESS+0xE, 14, 0x0003);
            reg3=IORD_16DIRECT(LAN_BASE_ADDRESS+0xB, 14);

            IOWR_16DIRECT(LAN_BASE_ADDRESS+0xE, 14, 0x0003);
            reg4=IORD_16DIRECT(LAN_BASE_ADDRESS+0xC, 14);

            IOWR_16DIRECT(LAN_BASE_ADDRESS+0xE, 14, 0x0003);
            reg5=IORD_16DIRECT(LAN_BASE_ADDRESS+0xD, 14);

Так же, по идее, как и с for, но в результате выдает:
reg2=0х3
reg3=0х300
reg4=0х3
reg5=0х0
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 4 2015, 11:43
Сообщение #81


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
Исходный проект на DK-NIOS-2S60N и тексты для NiosII от 2009 года в среде QII-7.2 имеются.

Serhiy_UA А Вы бы не могли поделиться этим проектом, если, конечно есть такая возможность.
Я бы попробовал проц в Qsys открыть и посмотреть что куда идет. Да и ethernet софт на Ниос тоже пригодился бы.
Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Feb 18 2015, 12:10
Сообщение #82


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(Azatot @ Feb 4 2015, 14:43) *
Serhiy_UA А Вы бы не могли поделиться этим проектом, если, конечно есть такая возможность.
Я бы попробовал проц в Qsys открыть и посмотреть что куда идет. Да и ethernet софт на Ниос тоже пригодился бы.


около года назад делал проект на аналогичной плате с ethernet'ом. Среда была насколько помню 9.1 для сборки системы использовал SOPC а не qsys.
С платой шли примеры для ethernet (tcp/ip и web). В качестве основы взял пример tcp/ip, в примере через командную строку можно было светодиоды зажигать на плате Далее в SOPC разобрал этот пример. Нашел функции записи/чтения буфера и отправления пакетов. Так собрал свой проект.
если еще актуально могу поднять проект и посмотреть

Сообщение отредактировал farbius - Feb 18 2015, 12:12
Go to the top of the page
 
+Quote Post
Azatot
сообщение Feb 26 2015, 04:10
Сообщение #83


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

Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633



Цитата
около года назад делал проект на аналогичной плате с ethernet'ом. Среда была насколько помню 9.1 для сборки системы использовал SOPC а не qsys.
С платой шли примеры для ethernet (tcp/ip и web). В качестве основы взял пример tcp/ip, в примере через командную строку можно было светодиоды зажигать на плате Далее в SOPC разобрал этот пример. Нашел функции записи/чтения буфера и отправления пакетов. Так собрал свой проект.
если еще актуально могу поднять проект и посмотреть

Был бы очень благодарен, если бы могли поднять проект. Просто примеров на плату у меня не было, а найти рабочий не получается.
Go to the top of the page
 
+Quote Post

6 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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