|
Проблема с запуском PCI9054 |
|
|
|
Sep 13 2006, 14:28
|
Группа: Новичок
Сообщений: 6
Регистрация: 21-04-06
Пользователь №: 16 361

|
Такая заморочка убираю EEPROM, подтягиваю резистор у сигнала EEDI/EEDO на землю, врубаю плату, BIOS чудесно находит плату, на некоторых машинах даже система грузица, на некоторых правда или вкапываеца при загрузке или грузицо, но не работают мышь и клава но вот если шью EEPROM (примером что для кита идет), вставляю ее, резистор теперь делаю на питалово и ни биос ни ОС не видят карты вообще.
из-за чего такое может быть? локальные сигналы (я их вроде как надо посадил внутри ПЛМ)? или все же прошивка не та? пытаюсь завести в режиме J, но пробовал и в С - результат тот же
|
|
|
|
|
Sep 14 2006, 07:23
|
Группа: Новичок
Сообщений: 6
Регистрация: 21-04-06
Пользователь №: 16 361

|
4-х слойная 2 сигльнальных, 2 питалова (один земля, один +3,3В ) что-то я как-то особо не придал значения их разводке, развел как всегда разводил PCI платы но давно делал плату на PCI9052, там все чудесно рабоатет, так же на 4-х слоях
|
|
|
|
|
Mar 27 2008, 09:00
|
Группа: Новичок
Сообщений: 4
Регистрация: 25-03-08
Пользователь №: 36 219

|
Приветствую! У нас такая же проблема, вы смогли решить ее? Если смогли, поделитеся опытом! Буду только благодарен!
|
|
|
|
|
Aug 29 2008, 11:38
|
Группа: Участник
Сообщений: 12
Регистрация: 8-02-08
Из: Минск
Пользователь №: 34 867

|
Подскажите, пожалуйста, что может быть. Есть плата с PCI9054. Контроллер установлен в режим "С". Контакт EEDI/EEDO занулен через резистор 1кОм. LHOLD через Альтеру соединен с LHOLDA. Биос не видит контроллер. В списке обнаруженных устройств он не значится. Если системный диск не подключен, то после соответсвующего сообщения наблюдаем на PCI-шине обращение к контроллеру с завершением транкзакции целью, т.е. PCI9054 вырабатывает сигнал STOP# и происходит завершение транзакции типа "Retry", которая крутится в цикле. Но если обрезать ножку 5 "AD25" PCI9054 и оставить в воздухе, то при старте контроллер обнаруживается и с ним можно работать, читать шину LD и т.д., за исключением того, что в данных записываемых и считываемых с контроллера, бит данных нулевой. Что же это может быть?
|
|
|
|
|
Aug 29 2008, 18:29
|

Частый гость
 
Группа: Свой
Сообщений: 173
Регистрация: 5-11-07
Из: Чернигов, Украина
Пользователь №: 32 078

|
Ух, давно это было, когда я PCI9054 оживлял. Если LHOLD на LHOLDA закоротили, то считается, что локальный процессор разрешает конфигурацию, точнее как бы выполнил ее, т.к. EEPROM отсутствует (pulldown). Есть еще такой сигнал, как CCS# с ним тоже нужно что то было сделать. Вроде посадить его на землю, что б разрешить конфигурировать регистры PLX PnP BIOS. Иначе получалось, что компьютер зависал на цикле конфигурации и не грузился дальше. Возможно сейчас контроллеры PCI на материнских платах стали умнее и просто отключают такое устройство. Я запускал все это на i568. Отрезанный адрес, возможно, являлся сигналом IDSEL, который начинает конфигурационную последовательность для устройств на PCI.
|
|
|
|
|
Aug 30 2008, 17:28
|
Группа: Участник
Сообщений: 12
Регистрация: 8-02-08
Из: Минск
Пользователь №: 34 867

|
Спасибо, chds. В понедельник попробую с CCS# и отпишу.
|
|
|
|
|
Sep 1 2008, 06:42
|
Группа: Участник
Сообщений: 12
Регистрация: 8-02-08
Из: Минск
Пользователь №: 34 867

|
 К сожалению заземление контакта CCS# не помогло, если раньше биос проходил поиск PCI-устройств и выходил на загрузку системы, то теперь на экране проскакивает Detecting IDE drivers и машина виснет, в это время идет конфигурационное чтение контроллера по адресу 08h, которое обрывает контроллер, завершая транзакцию STOP# и это крутится в цикле. Что еще может быть?
|
|
|
|
|
Sep 2 2008, 07:39
|
Местный
  
Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284

|
Цитата(Cronter @ Sep 1 2008, 10:42)   К сожалению заземление контакта CCS# не помогло, если раньше биос проходил поиск PCI-устройств и выходил на загрузку системы, то теперь на экране проскакивает Detecting IDE drivers и машина виснет, в это время идет конфигурационное чтение контроллера по адресу 08h, которое обрывает контроллер, завершая транзакцию STOP# и это крутится в цикле. Что еще может быть? CCS# к земле подтягивать совершенно не нужно. CCS#=0 означает что начинается цикл обращения от локального устройства к PLX. Проверьте сигнал READY. Его нужно подтянуть к земле и соеденить LHOLDA и LHOLD. В этом случае цикл на локальной шине завершиться нормально. При загрузке компьютера BIOS пытается прочитать область EPROM, если она разрешена в конфигурационной ПЗУ. Это три-четыре обращения. Если нет RDY, то PLX как раз и впадает в вечный цикл c командой RETRY (STOP#=0) У нас была плата, на которой при незапрограммированной ПЛИС была как раз такая ситуация. Так вот, для первого включения заклеивали скотчем PCI разъём в районе управляющих сигналов и программировали ПЛИС. А уже после этого - PLX. Потом стали READY к земле подтягивать - жизнь стала легче :-)
|
|
|
|
|
Sep 2 2008, 12:05
|
Группа: Участник
Сообщений: 12
Регистрация: 8-02-08
Из: Минск
Пользователь №: 34 867

|
Что-то не получается. Поэтому давайте по-порядку. Что есть изначально: 1) MODE0 и MODE1 - заземлены 2) CCS# - в воздухе (внутренняя подтяжка) 3) BREQi - заземлен 4) EEDI/EEDO - заземлен через 1 кОм 5) LEDI - к питанию через 10 кОм 6) LHOLD через Альтеру соединен с LHOLDA и запаздывает на один такт LCLK 7) BTERM#, LSERR#, WAIT#, BIGEND#, DMPAF/EOT# - в воздухе (внутренняя подтяжка) 8) DP[3:0] - в воздухе (внутренняя подтяжка) 9) ADS#, BLAST#, LRESET# - идут на входы Альтеры и подтянуты через 10 кОм к питанию 10) USERi - подтянут через 10 кОм к питанию 11) USERo - в воздухе 12) READY# - идёт на выход Альтеры и подтянут через 10 кОм к питанию 13) TEST - через 1 кОм заземлен 14) LINT# - идёт на выход Альтеры и подтянут через 10 кОм к питанию 15) PME и ENUM - в воздухе 16) LCLK - берется с шины PCI (33МГц) через буфер, стоящий рядом с шиной Теперь что делал. CCS# землил, не помогло. Отрезал READY# от подтяжки к питанию, землил через 1,5 кОм (встречал инфу, что землят через 10 кОм), у Альтеры выход ОК, не помогло. Обе процедуры вместе не делал. Что не так?
|
|
|
|
|
Sep 4 2008, 09:55
|
Местный
  
Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284

|
Цитата(Cronter @ Sep 2 2008, 16:05)  Что-то не получается. Поэтому давайте по-порядку. Что есть изначально: Теперь что делал. CCS# землил, не помогло. Отрезал READY# от подтяжки к питанию, землил через 1,5 кОм (встречал инфу, что землят через 10 кОм), у Альтеры выход ОК, не помогло. Обе процедуры вместе не делал. Что не так? READY# подтягиваем к земле и смотрим осциллографом цикл на локальной шине Должна быть следующая последовательность: (по тактам) 1. LHOLD=1 - запрос на захват шины 2. LHOLDA=1 - разрешение захвата шины 3. ADS=0 - строб адреса 4. ADS=1, BLAST=0 - признак последнего адреса, в это время должен быть READY=0 Если READY=0, то переход к п.6 иначе ждём до бесконечности или таймаута - задаётся в регистрах управления PLX 5. BLAST=1 6. LHODL=1 7. LHOLDA=1 и т.д.
|
|
|
|
|
Sep 4 2008, 13:23
|
Группа: Участник
Сообщений: 12
Регистрация: 8-02-08
Из: Минск
Пользователь №: 34 867

|
У меня на Альтере собрана схема, которая обеспечивает PCI Target цикл, те последовательность описанную вами. Причем, если оторвать один из AD, о чем я писал ранее, плата обнаруживается и можно работать с Альтерой по этому циклу, разрешив 0-space. Т.е., видимо, Альтера вырабатывает READY# верно. Кроме того, READY# вырабатывается при любом обращении к локальной шине, независимо наш адрес или нет. Я подумал, что может надо уточнить то, что плата работает на PCI-шине стандарта PC104+. И последнее, при загрузке во время работы биоса есть обращение к локальной шине, два чтения и Альтера отвечает. Подскажите, если есть какие-то мысли.
Сообщение отредактировал Cronter - Sep 4 2008, 13:24
|
|
|
|
|
Sep 4 2008, 15:52
|
Местный
  
Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284

|
Цитата(Cronter @ Sep 4 2008, 17:23)  Причем, если оторвать один из AD, о чем я писал ранее, плата обнаруживается Старнно это, похоже что считывается неправильная информация из конфигурационных регистров и BIOS дуреет. Эффект проявляется только при этой ножке: AD25 или отрывание других тоже приводит к загрузке ?
|
|
|
|
|
Sep 5 2008, 06:35
|
Группа: Участник
Сообщений: 12
Регистрация: 8-02-08
Из: Минск
Пользователь №: 34 867

|
Обнаружилось это случайно, был дисконтакт в разъеме на контакте AD25, затем обнаружилось, что и при оторванном AD27 плата грузится. Были качественно вымыты разъемы и имеем необнаружение. Я сейчас повторил опыт, оторвав AD25: плата обнаруживается. При отрыве других (AD31,AD28,AD27,AD19) эффект не повторяется. При оторванном AD27, повторить не удалось. Кроме того, в случае обнаружении платы биосом, обращение к локальной шине не происходит. И последнее, обнаружение с отрывом AD25 происходит на двух разных платах.
|
|
|
|
|
Sep 5 2008, 07:45
|
Группа: Участник
Сообщений: 12
Регистрация: 8-02-08
Из: Минск
Пользователь №: 34 867

|
Проблема повернулась еще одной гранью, благо хоть теперь не сдерживает работу. Просматривая поиском форум, обнаружил тему http://electronix.ru/forum/index.php?showt...mode=linearplusв которой человек также имел необнаружение биосом, но винда прекрасно видела устройство и работала с ним. Я загрузил винду и о чудо, при необнаружении биосом винда видит плату и прекрасно с ней работает.
|
|
|
|
|
Sep 5 2008, 08:22
|

Частый гость
 
Группа: Свой
Сообщений: 173
Регистрация: 5-11-07
Из: Чернигов, Украина
Пользователь №: 32 078

|
А вы можете просмотреть информацию по вашей плате. Под Linux есть программа lspci, думаю и под винду такое можно найти. Что она расскажет о плате. Потому что та информация, которую выдает винда не однократная. А биос не видит, а винда видит, это не из разряда чудес. Просто, я думаю, биосу не удалось понять, что за девайс воткнут в слот и он ее внес в список как unknown, а у винды и для таких девайсов есть дрова. Вычитайте информацию о плате и тогда станет понятно, что и как.
|
|
|
|
|
Nov 10 2009, 17:32
|

Группа: Новичок
Сообщений: 2
Регистрация: 2-05-06
Из: Муром
Пользователь №: 16 702

|
Здравствуйте!!! Помогите решить проблему. Есть устройство с PCI9054, ПЛИС Cyclone и ОЗУ 2 МБ. При приеме информации с PCI все ОК, а вот когда надо передавать в PCI необходимо пользоваться mailbox регистрами и никак не получается загрузить в них нужные значения. Я так понял что неправильно запрограммировал EEPROM(неверные адреса). В описании на PCI9054 в таблице упоминается chip select address, а по тексту об этом ничего нет. В связи с этим просьба объяснить как правильно вычислить адреса, что такое chip select address, где он прописывается? В инете нашел что-то вроде инструкции вычисления адресов, но там упоминается все тот же chip select address. Необходимо задать 2 области адресов, для ОЗУ и для конфигурационных регистров на ПЛИС. Заранее благодарен!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|