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

 
 
> подключение lan91c111 для асинхронного режима
value
сообщение May 19 2009, 06:45
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190



С lan91c111 работаю в составе Nios Development Board, управление контроллером осуществляется со стороны ПЛИС ALTERA Stratix без использования самого NIOS II,EEPROM и M II интерфейс не подключены. Для работы выбран асинхронный режим и 16ти разрядная шина данных.Насколько я понимаю для работы в асинхронном режиме контроллер должен быть включен как для работы с шиной ISA, если я ошибаюсь, то поправьте меня.В моем случае контроллер подключен следующим образом:
1.LCLK - GND
2.nBE[3..2] - VCC
3.nBE[1..0] - GND
4.RDYRTN - VCC
5.nCYCLE - VCC
6.W/nR - VCC
7.nADS - GND

Может я упустил какой-то момент в подключении или ошибся?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 25)
Serhiy_UA
сообщение May 19 2009, 07:37
Сообщение #2


Знающий
****

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



Цитата(value @ May 19 2009, 09:45) *
... если я ошибаюсь, то поправьте меня....

1. Похоже у Вас тоже DK-NIOS-2S60N, на StratixII, так? Тогда Вы уже должны были бы подключиться к серверу, а также управлять светодиодами кита через Ethernet.
2. Один мой знакомый управлял lan91c111 или подобным чипом аппаратно от FPGA, то есть без процессора, как у Вас. Этот путь запредельной сложности, советую от него отказаться сразу.
3. Если у Вас есть Nios Development Board, то надо осилить сам NiosII, а дальше управлять lan91c111 от этого софт-процессора.
4. Выполнив пункт 3, появится возможность легко работать с протоколами TCP/IP. На аппаратном уровне это не достижимо, может, если только для группы из нескольких гениев....
Go to the top of the page
 
+Quote Post
value
сообщение May 19 2009, 07:53
Сообщение #3





Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190



Stratix первый там стоит.Задача состоит в том чтобы обеспечить обмен данными с ПЛИС через lan91c111.Полная поддержка протоколов TCP/IP думаю не требуется.

Сообщение отредактировал value - May 19 2009, 08:04
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 19 2009, 08:17
Сообщение #4


Знающий
****

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



Цитата(value @ May 19 2009, 10:53) *
...Задача состоит в том чтобы обеспечить обмен данными с ПЛИС через lan91c111...

Если это получится с lan91c111 на аппаратном уровне и без софт-процессора, то Вы специалист экстра класса.
Просто я знаю, как сложно настроить, управлять и обмениваться данными с lan91c111, хотя работает этот чип изумительно, и это так.
Удачи.
Go to the top of the page
 
+Quote Post
value
сообщение May 19 2009, 08:32
Сообщение #5





Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190



Возможно вы правы и мои попытки работы с lan91c111 потерпят фиаско, но тем не мение пока задача мне кажется выполнимой. А что касается подключения контроллера, я все правильно сделал?Есть предположения по каким причинам я вижу все FF при чтении регистров?
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 19 2009, 10:04
Сообщение #6


Знающий
****

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



Цитата(value @ May 19 2009, 11:32) *
А что касается подключения контроллера, я все правильно сделал?

Сравните с рис.3.2, все ли подключено правильно.
Go to the top of the page
 
+Quote Post
value
сообщение May 19 2009, 11:07
Сообщение #7





Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190



Да, спасибо, эти доки у меня есть.Подключено все верно (как в доке).Единственное что, нужно ли выполнять какие-либо манипуляции перед подачей адреса и команды чтения?Например записать "1" в 13й разряд POINTER REGISTER (READ = 1) или читать регистры можно без дополнительных манипуляций?
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 19 2009, 12:08
Сообщение #8


Знающий
****

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



1. Внутри чипа много регистров, которые сгруппированы в 4-х банках. Перед доступом к регистру, нужно предварительной записью задать номер банка, а потом обращаться к регистру внутри этого банка. В общем, все это в доках описано.
2. В состав чипа входят ФИФО выдачи и приема. К ним стандартный способ обращения, прямой или с авто увеличением адреса. Ваш вопрос касался видимо этого. Но здесь тоже нужно обращаться через банки, как описано в пункте 1.
3. Еще в чип входят группа регистров настройки и управления PHY. Обращение к данным регистрам осуществляется последовательным кодом, то есть нужно в один из разрядов регистров банка, последовательно записывать биты и выдавать их в PHY. Там циклы, и их много. Регистров с последовательным доступом тоже много...

Если на все это писать FSM, то это будет такое ФээСэМище, не позавидуешь…
Go to the top of the page
 
+Quote Post
value
сообщение May 19 2009, 12:29
Сообщение #9





Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190



Все это мне известно и понятно.Я не точно выразился: для начала я хочу прочесть содержимое регистра BSR (Bank Select Register) (базовый адрес 300 + смещение E) в старшем байте которого, как я понимаю, всегда лежит 0x33, но при чтении я вижу все FF. Получив правильное значение для этого регистра буду уже двигаться дальше.Для чтения BSR нужны дополнительные манипуляции или же нет?
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 19 2009, 13:10
Сообщение #10


Знающий
****

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



Цитата(value @ May 19 2009, 15:29) *
.Для чтения BSR нужны дополнительные манипуляции или же нет?

Не нужны. Регистр всегда доступен, считывается сразу. То есть, Вы бы уже должны его считать.

Чип нужно инициализировать перед работой. В приложении файл, где описана функции s91_reset() и s91_init(). А без этих функций дальше никак.

Сообщение отредактировал Serhiy_UA - May 19 2009, 13:14
Go to the top of the page
 
+Quote Post
value
сообщение May 19 2009, 13:22
Сообщение #11





Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190



Отлично.Думаю в этом зогвоздка.Спасибо большое!
Go to the top of the page
 
+Quote Post
racot-god
сообщение May 20 2009, 12:07
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



Плиз поведуйте мне немного об адресации памяти)))) я не догоняю))) Где именно хранятся регистры? как к ним обращаться? и как если у нас 8 килобайтный буффер мы его адресуем тремя пинами А1,A2,A3 ? это же всего 8 адресов? и ещё немного про эти смещения в регистрах кому не лень расскажите)))
Go to the top of the page
 
+Quote Post
value
сообщение May 25 2009, 15:00
Сообщение #13





Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190



Смещения относительно базового адреса (по умолчанию он 0x300h).
Go to the top of the page
 
+Quote Post
racot-god
сообщение May 26 2009, 07:21
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



А что такое базовый адресс?? и зачем нужна EEPROM??
Go to the top of the page
 
+Quote Post
racot-god
сообщение May 27 2009, 10:22
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



Ладно это я дотумкал)))) но я так и не понял вот что - если мы не ставим EEPROM то куда мы деваем все эти регистры??? и разве MAC адрес не внутри контроллера должен храниться???
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 27 2009, 10:51
Сообщение #16


Знающий
****

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



Цитата(racot-god @ May 27 2009, 13:22) *
...... и разве MAC адрес не внутри контроллера должен храниться???


После включения, базовый адрес (БА) всегда равен 0х0300.
Однако БА может быть загружен с EEPROM, то есть, при желании изменен. Менять адрес полезно, когда на шине ISA несколько чипов, а не один. Но я так не делал, у меня на шине ISA один чип LAN91C111, и все регистры доступны по адресам 0х0300. 0х0301 … 0х030E. То есть задаете адрес: получаете доступ…
Только не забывайте, что внутри чипа регистры рассредоточены по банкам. По этому, чтобы обратиться к произвольному регистру, необходимо заранее задать банк, в котором этот регистр находится. Делать это лучше всего с помощью любого программируемого микроконтроллера; я здесь об этом уже писал, что применяю NiosII. По другому - очень трудно...

Чип очень сложный для понимания, не пойму мотива, почему Вы его осваиваете. Есть другие чипы для Ethernet, попроще…. Это судя по Вашим вопросам.
Go to the top of the page
 
+Quote Post
racot-god
сообщение May 27 2009, 11:32
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



Спасибо))) это я уже более менее понял))) а насчёт EEPROM??? если я её не подвешу то что изменится??? куда эти регистры девать???

А насчёт почему этот контроллер - на работе сказали этот взять. вот я и взял... я человек подневольный))))
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение May 27 2009, 11:53
Сообщение #18


Знающий
****

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



Цитата(racot-god @ May 27 2009, 14:32) *
... а насчёт EEPROM??? если я её не подвешу то что изменится??? куда эти регистры девать???

EEPROM можно не ставить.
А регистров внутри много их нужно инициализировать, иначе lan91c111 работать не будет.
Текст программ инициализации был выложен в предыдущем посте. Но это только часть необходимых программ, нужно еще пять раз по столько же, других. В Интернете есть примеры программ, надо поискать...
Go to the top of the page
 
+Quote Post
racot-god
сообщение May 27 2009, 11:55
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



Спасибо) покапаюсь))

правдад не нашёл текстов инициализации(((

Сообщение отредактировал racot-god - May 27 2009, 12:01
Go to the top of the page
 
+Quote Post
racot-god
сообщение Jun 10 2009, 09:28
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



не могли бы вы поподробнее рассказать как обращаться к регистрам PHY?? по каким адресам?? я из даташита не понял (LAN91C111.pdf))) и ещё эти регистры просто вначале нужно проинициализировать и потом они меняться не будут??? или они их значение изменяется и нужно писать прогу для управления ими??? (заранее спасибо...очень нужно))

пытаюсь сам разобраться но мне не понятно((( наверно не хватает каких то знаний((((
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jun 10 2009, 10:42
Сообщение #21


Знающий
****

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



1. Какой микроконтроллер будет работать с LAN91C111?
2. Скорей всего Вы их состыкуете через шину ISA BUS и других чипов на этой шине не будет, так?
3. Если используется ISA BUS, то обращение к регистрам через адреса 0х0300. 0х0301 … 0х030E, об этом уже писалось. То есть других кодов адреса не будет, а только эти. Теперь на стр.56 перечислены все доступные регистры, но доступ к ним через задания номера банка, об этом тоже писал. Документ прилагается.
4. Теперь об регистрах PHY, их много и доступ к ним организован по особому, последовательным кодом, через регистр MGMT, см.страницу 77. Обычно эти регистры инициализируются один раз, а потом ничего там не меняют. Программу управления и инициализации ими, нужно писать обязательно. Почти все, что нужно есть в прилагаемом директории smsc91x. Правда, это относится к NiosII, который применен мною, но для других микроконтроллер все аналогично.

Сообщение отредактировал Serhiy_UA - Jun 10 2009, 10:47
Go to the top of the page
 
+Quote Post
racot-god
сообщение Jun 10 2009, 11:12
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



контроллер который будет работать с 91с111 - TMS320F28335. Подключение будет по асинхронному интерфейсу XINTF (встроенный в TMS для общения с внешней памятью и устройствами ввода- вывода).
Регистр MGMT на 67 стр.( вы наверно ошиблись). Я так и не особо понял на счёт адресации... Вот например к основным регистрам я обрщаюсь так - BASE ADDRESS + смещение... а там как???

.zip скачаю только вечером дома... на работе никак)) smile.gif
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jun 10 2009, 11:44
Сообщение #23


Знающий
****

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



Цитата(racot-god @ Jun 10 2009, 14:12) *
.. а там как???


1. Смотрите таблицу 9.1 на стр.82 (пока опираемся на мой документ). Там MII Serial Frame Structure и в поле PHY Addr задается адрес нужного регистра PHY. Сформировав фрейм, последовательно выталкиваем его через MGMT в регистры PHY. Я работал и с другими Ethernet-контроллерами, и этот способ мне более всего не нравится в LAN91C111, хотя в целом это очень милое существо… smile.gif
Остальное можно понять, изучив smsc_phy.c. Здесь я долго не мудрствовал, а просто взял С-код как есть… Хотя в остальном софте была адаптация. Кстати есть С-коды и для других микроконтроллеров.
2. По поводу TMS320F28335 – приятный чип.

Сообщение отредактировал Serhiy_UA - Jun 10 2009, 11:46
Go to the top of the page
 
+Quote Post
racot-god
сообщение Jun 10 2009, 12:31
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



А smsc_phy.c где взять? и какие нибудь примеры хотелось бы глянуть))))) smile.gif А адрес наверно всё таки задаётся в поле REG.Addr а не PHY Addr?? Хотя тогда что подразумевается под PHY ADDR - это когда несколько трансиверов??? И главное куда REG.ADDR записпть (в какой регистр)??? и тогда будет обращение к PHY регистрам BASE_ADRESS + REG.ADDR???

похоже без примеров мне не обойтись...

А такие глупые вопросы потому что только год как универ закончил и немного не по этой специальности)) а на работе запрягают))) вот у меня и много не поняток)))
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jun 10 2009, 13:07
Сообщение #25


Знающий
****

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



Цитата(racot-god @ Jun 10 2009, 15:31) *
А smsc_phy.c где взять? и какие нибудь примеры хотелось бы глянуть))))) smile.gif А адрес наверно всё таки задаётся в поле REG.Addr а не PHY Addr?? Хотя тогда что подразумевается под PHY ADDR - это когда несколько трансиверов??? И главное куда REG.ADDR записпть (в какой регистр)??? и тогда будет обращение к PHY регистрам BASE_ADRESS + REG.ADDR???


К регистрам PHY напрямую через MGMT, а к MGMT через BASE_ADRESS + 8. Вот такая конитель, неужели не понятно...
Примеры я уже выслал, читайте.
Вот еще пример от Ethernut_de.
Go to the top of the page
 
+Quote Post
racot-god
сообщение Jun 11 2009, 05:09
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 28-04-09
Пользователь №: 48 353



Я малый не дурак....да и дурак не малый... smile.gif

Спасибо! буду разбираться)))
Go to the top of the page
 
+Quote Post

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

 


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


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