|
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
|
|
|
|
|
 |
Ответов
(1 - 82)
|
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]), так что всё нормально.
|
|
|
|
|
Jan 30 2015, 08:56
|
Частый гость
 
Группа: Участник
Сообщений: 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?
|
|
|
|
|
Jan 30 2015, 09:11
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Jan 30 2015, 09:14
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Да, для Ниос он - внешняя память, должно быть доступно через Memory Monitor в Eclipse. Пины назначил, скомпилил проект, залил. Зашел в Эклипс, создал проект, который диодами дергает, залил. Во вкладке memory ничего нет. Цитата Да, только в моей доке на LAN они nRD, nWR называются. У меня pdf с назначением ног Stratix и там сигналы, видимо, не так как в datasheet на LAN называются. Есть еще ENET_SRDY_N и ENET_W_R_N, это и они вполне могут быть!
|
|
|
|
|
Jan 30 2015, 09:19
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Что значит ничего нет, а другие адреса смотрели (On-Chip Memory)? В этой вкладе надо добавить адреса, которые в Qsys присваивались?
|
|
|
|
|
Jan 30 2015, 09:25
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Да, конечно. Можете попробовать из Ниос писать/читать заданный адрес, должно работать. Спасибо, понял. В адресах LAN 0xFFFFFFFF лежат. После них прошивка идет. Попробовать записать что-нибудь в регистры LAN нужно?
|
|
|
|
|
Jan 30 2015, 09:32
|
Профессионал
    
Группа: Свой
Сообщений: 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 на неё повесить  ).
|
|
|
|
|
Jan 30 2015, 09:48
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата 0xFFFFFFFF это не есть хорошо, что-то не прочитало оно, но попробуйте. Возможно, что всетаки с сигналами напутано. Попробую переназначить и посмотреть, что получится. Цитата Если и так не работает, тогда смотрите, что там не так с интерфейсом получилось. Сброс от PIO заведите, при запуске программы Ниос сбрасывайте. Даже при выборе для Generic Tri-State Controller опции LAN91C111 есть ещё куча настроек. По идее он автоматом эти настройки расставляет, когда LAN выбираешь.
Сообщение отредактировал Azatot - Jan 30 2015, 09:50
|
|
|
|
|
Jan 30 2015, 09:54
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Сброс от PIO заведите, при запуске программы Ниос сбрасывайте Тут еще ситуация какая: В pdf с констрейнами ресет enet_RESET_n на fpga не заведен! Там пусто.
|
|
|
|
|
Jan 30 2015, 10:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Azatot @ Jan 30 2015, 12:54)  Тут еще ситуация какая: В pdf с констрейнами ресет enet_RESET_n на fpga не заведен! Там пусто. Сброс микросхемы LAN91C111 висит в воздухе? Но, думаю, пока reset не главная проблема. Там есть ещё и программный сброс, им можно будет обойтись. Не помню, чтобы у нас были проблемы с данной микросхемой в плане сброса. UP Проверяйте все подключения и сам контроллер (осциллом, SignalTap-ом).
|
|
|
|
|
Jan 30 2015, 10:05
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Попробуйте через указатель память LAN писать/читать. Есть же, наверное, функция по чтению/записи памяти по адресу в добавленных исходниках альтеровских.
|
|
|
|
|
Jan 30 2015, 10:24
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Jan 30 2015, 10:50
|
Частый гость
 
Группа: Участник
Сообщений: 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 вообще нет!
|
|
|
|
|
Jan 30 2015, 10:59
|
Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Jan 30 2015, 11:00
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Регистры LAN пишете через указатель А как это сделать? совсем уже не соображаю!
|
|
|
|
|
Jan 30 2015, 11:18
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Но пока в Memory видите FFFFFF - не прокатит, смотрите, что писал выше. В описании платы сигналы все эти есть и заведены на LAN. Вообщем, посижу, спокойно поразбираюсь с документацией, а то путаница какая то! И программатор отобрали до понедельника. В любом случае, огромное спасибо за потраченное время на меня! В понедельник отпишусь о результатах.
|
|
|
|
|
Jan 30 2015, 12:30
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата У меня был Ethernet-100 на Stratix-II и LAN91C111, что на DK-NIOS-2S60N, работал нормально. Усеченный стек TCP/IP на NiosII был свой А какие-нибудь исходники не сохранились у Вас? А то все ссылки, которые в темах не активны. Видимо никто особо уже не пользуется такими микросхемами.
|
|
|
|
|
Jan 30 2015, 13: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-контроллер ПЛИС к самой микросхеме?
|
|
|
|
|
Jan 30 2015, 15:16
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Jan 30 2015, 17:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Golikov A. @ Jan 30 2015, 20:15)  Балаболка вы ... Куда уж мне до Вас (все аргументы см. в других темах).  Да ещё, я зашёл в эту тему, т.к. в одном нашем старом, но пока ещё живом, проекте используется именно LAN91C111 и я имел с ней дело (правда, там она висит на XINTF-е TI-шного проца). А ещё работал с похожим драйвером LAN9211, который тоже висит на XINTF-е другого TI-шного проца. А Вы так, как всегда, язык почесать
|
|
|
|
|
Jan 31 2015, 06:06
|
Знающий
   
Группа: Свой
Сообщений: 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
|
|
|
|
|
Feb 2 2015, 04:42
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Feb 2 2015, 06:29
|
Профессионал
    
Группа: Свой
Сообщений: 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 будет возможность сделать программный сброс.
|
|
|
|
|
Feb 2 2015, 06:31
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Автоматически он не мог подключаться, SOPC не может знать, на каких ногах FPGA висит микросхема LAN91C111. Я имел ввиду, что в SOPC может быть интерфейс Nios с LAN прописан лучше (все сигналы выведены).
|
|
|
|
|
Feb 2 2015, 06:42
|
Знающий
   
Группа: Свой
Сообщений: 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, тоже отдельная тема.
|
|
|
|
|
Feb 2 2015, 06:49
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Теперь кратко по шагам. Порядок действий нам известен. Вопрос как у Вас подключена FPGA к LAN, физически какие контакты куда идут?
|
|
|
|
|
Feb 2 2015, 06:50
|
Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Feb 2 2015, 07:21
|
Знающий
   
Группа: Свой
Сообщений: 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 и также ручная увязка контактов. Все делать с учетом названия цепей...
|
|
|
|
|
Feb 2 2015, 07:24
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Все делать согласно принципиальной схеме на плату. Если Вы её не имеете, то это плохо... Это все понятно, схема есть. Вопрос в том, какие сигналы в Вашем проекте создал SOPC для связи с LAN91C111?
|
|
|
|
|
Feb 2 2015, 07:28
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Serhiy_UA @ Feb 2 2015, 10:21)  Похоже, мы на разных языках разговариваем Цитата(Serhiy_UA @ Feb 2 2015, 10:21)  В части физического подключения - нужна принципиальная схема на ПЛИС и LAN91C111 и также ручная увязка контактов. Все делать с учетом названия цепей... Где-то названия совпадают, а есть и такие пины на микросхеме, которых нет в сгенерированной SOPC системе.
|
|
|
|
|
Feb 2 2015, 07:48
|
Знающий
   
Группа: Свой
Сообщений: 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 системе. Бывыет, здесь надо разбираться... Просто в моем случае, на готовом ките, все заработало... В приложении схема кита.
|
|
|
|
|
Feb 2 2015, 07:48
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Откройте прилагаемый файл, там почти в конце есть строка: NiosII_stratixII_2s60_RoHS_small_sopc DUT Получается, что сигналы все те же, только irq(видимо прерывание с LAN) добавился.
|
|
|
|
|
Feb 2 2015, 08:33
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Проверил, так и есть, для Вас - это внешняя память и никаких драйверов в BSP нет. Регистры LAN пишете через указатель. Кстати, драйвера то в BSP LAN91C111 есть таки. altera_avalon_lan91c111_regs.h и altera_avalon_lan91c111.h.
|
|
|
|
|
Feb 2 2015, 08:43
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Azatot @ Feb 2 2015, 10:48)  Получается, что сигналы все те же, только irq(видимо прерывание с LAN) добавился. Получили, что все ножки LAN91C111 заведены на FPGA. В получаемой Qsys-системе ног меньше (если смотреть на описание шин, с которыми может работать LAN91С111, то для любой из них сигналов в Qsys-системе должно быть намного больше). Из приведённого примера не понятно, что делать с остальными ножками микросхемы. Пробуйте на оставшиеся повесить '0' или '1' (что подходит, смотрите по даташиту).
|
|
|
|
|
Feb 2 2015, 08:48
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Из приведённого примера не понятно, что делать с остальными ножками микросхемы. Пробуйте на оставшиеся повесить '0' или '1' (что подходит, смотрите по даташиту). Да, в принципе, так уже и сделал. Жду пока программатор вернут, и буду пробовать.
|
|
|
|
|
Feb 2 2015, 08:54
|
Профессионал
    
Группа: Свой
Сообщений: 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, а больше похож на чип-селект. С адресом смотрите, как там будет правильно.
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 2 2015, 09:08
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата AEN (если доку смотреть) - не ADDR0, а больше похож на чип-селект Просто, тогда странно, что делать с ADDR0.
|
|
|
|
|
Feb 3 2015, 06:22
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Но пока в Memory видите FFFFFF - не прокатит, смотрите, что писал выше. А Nios точно должен распознать LAN, как память и видеть, что в регистрах через вкладку Memory в Eclipse? Там все время FF, а если пишу через IOWR_ALTERA_AVALON_LAN91C111_BSR, а потом читаю IORD_ALTERA_AVALON_LAN91C111_BSR, то в переменной лежит, то что писал. Но, может это и не работает на самом деле.
|
|
|
|
|
Feb 3 2015, 06:26
|
Профессионал
    
Группа: Свой
Сообщений: 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, то в переменной лежит, то что писал. Но, может это и не работает на самом деле. Думал, что да. Но если через макросы работает, значит ошибаюсь. А если попробовать писать/читать через указатель?
|
|
|
|
|
Feb 3 2015, 06:39
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Думал, что да. Но если через макросы работает, значит ошибаюсь. А если попробовать писать/читать через указатель? Да, похоже, что не работает и макросами, либо я что то не так делаю. Через указатель пишу, потом читаю, во вкладке Variables в переменной reg показывает то, что писал. А в lan_reg (откуда считываю) всеравно лежит FF.
|
|
|
|
|
Feb 3 2015, 06:51
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Т.е. прочитать значение регистра с помощью макроса всё же не работает? Да тут похоже, всетаки с сигналами что то не так. AEN и на ADR0 вешал и CS на выводил. Потом смотрю осциллографом AEN, а он как стоит в 1, так и не шелохнется.
|
|
|
|
|
Feb 3 2015, 07:09
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Потом смотрю осциллографом AEN, а он как стоит в 1 Даже не в 1, а TriState. Цитата Покажите, что и куда подключаете (все ножки микросхемы). В приложении.
Прикрепленные файлы
PIN.txt ( 2.45 килобайт )
Кол-во скачиваний: 7
|
|
|
|
|
Feb 3 2015, 07:42
|
Частый гость
 
Группа: Участник
Сообщений: 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';
|
|
|
|
|
Feb 3 2015, 08:52
|
Частый гость
 
Группа: Участник
Сообщений: 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 в третьем состоянии будто бы.
|
|
|
|
|
Feb 3 2015, 09:12
|
Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Feb 3 2015, 09:17
|
Частый гость
 
Группа: Участник
Сообщений: 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 );
|
|
|
|
|
Feb 3 2015, 12:05
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
Feb 3 2015, 13:13
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Взято с форума Альтеры: Попробовал так. Подключил, как написано, пишу 0х0003, читаю 0х3. Ради интереса записал 0х0007 и 0х0123, прочитал 0х7 и 0х123. По моему, не работает. А ссылку не кинете на тему альтеровского форума откуда взяли этот текст?
|
|
|
|
|
Feb 3 2015, 14:41
|
Профессионал
    
Группа: Свой
Сообщений: 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. По моему, не работает. Что-то не понял, почему не работает, что записали то и прочитали. Что не так?
|
|
|
|
|
Feb 4 2015, 06:32
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Feb 4 2015, 11:43
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

|
Цитата Исходный проект на DK-NIOS-2S60N и тексты для NiosII от 2009 года в среде QII-7.2 имеются. Serhiy_UA А Вы бы не могли поделиться этим проектом, если, конечно есть такая возможность. Я бы попробовал проц в Qsys открыть и посмотреть что куда идет. Да и ethernet софт на Ниос тоже пригодился бы.
|
|
|
|
|
Feb 18 2015, 12:10
|
Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Feb 26 2015, 04:10
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 31-01-08
Из: Москва
Пользователь №: 34 633

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