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

 
 
6 страниц V  « < 4 5 6  
Reply to this topicStart new topic
> Stratix II + Ethernet, Need help!
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  « < 4 5 6
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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