|
подключение lan91c111 для асинхронного режима |
|
|
|
May 19 2009, 06:45
|
Группа: Новичок
Сообщений: 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 Может я упустил какой-то момент в подключении или ошибся?
Эскизы прикрепленных изображений
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 25)
|
May 19 2009, 07:37
|
Знающий
   
Группа: Свой
Сообщений: 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. На аппаратном уровне это не достижимо, может, если только для группы из нескольких гениев....
|
|
|
|
|
May 19 2009, 07:53
|
Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190

|
Stratix первый там стоит.Задача состоит в том чтобы обеспечить обмен данными с ПЛИС через lan91c111.Полная поддержка протоколов TCP/IP думаю не требуется.
Сообщение отредактировал value - May 19 2009, 08:04
|
|
|
|
|
May 19 2009, 08:17
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(value @ May 19 2009, 10:53)  ...Задача состоит в том чтобы обеспечить обмен данными с ПЛИС через lan91c111... Если это получится с lan91c111 на аппаратном уровне и без софт-процессора, то Вы специалист экстра класса. Просто я знаю, как сложно настроить, управлять и обмениваться данными с lan91c111, хотя работает этот чип изумительно, и это так. Удачи.
|
|
|
|
|
May 19 2009, 08:32
|
Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190

|
Возможно вы правы и мои попытки работы с lan91c111 потерпят фиаско, но тем не мение пока задача мне кажется выполнимой. А что касается подключения контроллера, я все правильно сделал?Есть предположения по каким причинам я вижу все FF при чтении регистров?
|
|
|
|
|
May 19 2009, 11:07
|
Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190

|
Да, спасибо, эти доки у меня есть.Подключено все верно (как в доке).Единственное что, нужно ли выполнять какие-либо манипуляции перед подачей адреса и команды чтения?Например записать "1" в 13й разряд POINTER REGISTER (READ = 1) или читать регистры можно без дополнительных манипуляций?
|
|
|
|
|
May 19 2009, 12:08
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
1. Внутри чипа много регистров, которые сгруппированы в 4-х банках. Перед доступом к регистру, нужно предварительной записью задать номер банка, а потом обращаться к регистру внутри этого банка. В общем, все это в доках описано. 2. В состав чипа входят ФИФО выдачи и приема. К ним стандартный способ обращения, прямой или с авто увеличением адреса. Ваш вопрос касался видимо этого. Но здесь тоже нужно обращаться через банки, как описано в пункте 1. 3. Еще в чип входят группа регистров настройки и управления PHY. Обращение к данным регистрам осуществляется последовательным кодом, то есть нужно в один из разрядов регистров банка, последовательно записывать биты и выдавать их в PHY. Там циклы, и их много. Регистров с последовательным доступом тоже много...
Если на все это писать FSM, то это будет такое ФээСэМище, не позавидуешь…
|
|
|
|
|
May 19 2009, 12:29
|
Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190

|
Все это мне известно и понятно.Я не точно выразился: для начала я хочу прочесть содержимое регистра BSR (Bank Select Register) (базовый адрес 300 + смещение E) в старшем байте которого, как я понимаю, всегда лежит 0x33, но при чтении я вижу все FF. Получив правильное значение для этого регистра буду уже двигаться дальше.Для чтения BSR нужны дополнительные манипуляции или же нет?
|
|
|
|
|
May 19 2009, 13: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
|
|
|
|
|
May 19 2009, 13:22
|
Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190

|
Отлично.Думаю в этом зогвоздка.Спасибо большое!
|
|
|
|
|
May 20 2009, 12:07
|
Участник

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

|
Плиз поведуйте мне немного об адресации памяти)))) я не догоняю))) Где именно хранятся регистры? как к ним обращаться? и как если у нас 8 килобайтный буффер мы его адресуем тремя пинами А1,A2,A3 ? это же всего 8 адресов? и ещё немного про эти смещения в регистрах кому не лень расскажите)))
|
|
|
|
|
May 25 2009, 15:00
|
Группа: Новичок
Сообщений: 9
Регистрация: 24-04-09
Пользователь №: 48 190

|
Смещения относительно базового адреса (по умолчанию он 0x300h).
|
|
|
|
|
May 26 2009, 07:21
|
Участник

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

|
А что такое базовый адресс?? и зачем нужна EEPROM??
|
|
|
|
|
May 27 2009, 10:22
|
Участник

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

|
Ладно это я дотумкал)))) но я так и не понял вот что - если мы не ставим EEPROM то куда мы деваем все эти регистры??? и разве MAC адрес не внутри контроллера должен храниться???
|
|
|
|
|
May 27 2009, 10:51
|
Знающий
   
Группа: Свой
Сообщений: 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, попроще…. Это судя по Вашим вопросам.
|
|
|
|
|
May 27 2009, 11:32
|
Участник

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

|
Спасибо))) это я уже более менее понял))) а насчёт EEPROM??? если я её не подвешу то что изменится??? куда эти регистры девать???
А насчёт почему этот контроллер - на работе сказали этот взять. вот я и взял... я человек подневольный))))
|
|
|
|
|
May 27 2009, 11:53
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(racot-god @ May 27 2009, 14:32)  ... а насчёт EEPROM??? если я её не подвешу то что изменится??? куда эти регистры девать??? EEPROM можно не ставить. А регистров внутри много их нужно инициализировать, иначе lan91c111 работать не будет. Текст программ инициализации был выложен в предыдущем посте. Но это только часть необходимых программ, нужно еще пять раз по столько же, других. В Интернете есть примеры программ, надо поискать...
|
|
|
|
|
May 27 2009, 11:55
|
Участник

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

|
Спасибо) покапаюсь))
правдад не нашёл текстов инициализации(((
Сообщение отредактировал racot-god - May 27 2009, 12:01
|
|
|
|
|
Jun 10 2009, 09:28
|
Участник

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

|
не могли бы вы поподробнее рассказать как обращаться к регистрам PHY?? по каким адресам?? я из даташита не понял (LAN91C111.pdf))) и ещё эти регистры просто вначале нужно проинициализировать и потом они меняться не будут??? или они их значение изменяется и нужно писать прогу для управления ими??? (заранее спасибо...очень нужно))
пытаюсь сам разобраться но мне не понятно((( наверно не хватает каких то знаний((((
|
|
|
|
|
Jun 10 2009, 10:42
|
Знающий
   
Группа: Свой
Сообщений: 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
|
|
|
|
|
Jun 10 2009, 11:12
|
Участник

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

|
контроллер который будет работать с 91с111 - TMS320F28335. Подключение будет по асинхронному интерфейсу XINTF (встроенный в TMS для общения с внешней памятью и устройствами ввода- вывода). Регистр MGMT на 67 стр.( вы наверно ошиблись). Я так и не особо понял на счёт адресации... Вот например к основным регистрам я обрщаюсь так - BASE ADDRESS + смещение... а там как??? .zip скачаю только вечером дома... на работе никак))
|
|
|
|
|
Jun 10 2009, 11:44
|
Знающий
   
Группа: Свой
Сообщений: 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, хотя в целом это очень милое существо… Остальное можно понять, изучив smsc_phy.c. Здесь я долго не мудрствовал, а просто взял С-код как есть… Хотя в остальном софте была адаптация. Кстати есть С-коды и для других микроконтроллеров. 2. По поводу TMS320F28335 – приятный чип.
Сообщение отредактировал Serhiy_UA - Jun 10 2009, 11:46
|
|
|
|
|
Jun 10 2009, 12:31
|
Участник

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

|
А smsc_phy.c где взять? и какие нибудь примеры хотелось бы глянуть)))))  А адрес наверно всё таки задаётся в поле REG.Addr а не PHY Addr?? Хотя тогда что подразумевается под PHY ADDR - это когда несколько трансиверов??? И главное куда REG.ADDR записпть (в какой регистр)??? и тогда будет обращение к PHY регистрам BASE_ADRESS + REG.ADDR??? похоже без примеров мне не обойтись... А такие глупые вопросы потому что только год как универ закончил и немного не по этой специальности)) а на работе запрягают))) вот у меня и много не поняток)))
|
|
|
|
|
Jun 10 2009, 13:07
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(racot-god @ Jun 10 2009, 15:31)  А smsc_phy.c где взять? и какие нибудь примеры хотелось бы глянуть)))))  А адрес наверно всё таки задаётся в поле REG.Addr а не PHY Addr?? Хотя тогда что подразумевается под PHY ADDR - это когда несколько трансиверов??? И главное куда REG.ADDR записпть (в какой регистр)??? и тогда будет обращение к PHY регистрам BASE_ADRESS + REG.ADDR??? К регистрам PHY напрямую через MGMT, а к MGMT через BASE_ADRESS + 8. Вот такая конитель, неужели не понятно... Примеры я уже выслал, читайте. Вот еще пример от Ethernut_de.
|
|
|
|
|
Jun 11 2009, 05:09
|
Участник

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

|
Я малый не дурак....да и дурак не малый...  Спасибо! буду разбираться)))
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|