Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PCI target не распознаётся
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
slonjaka
Бьюсь уже третью неделю.
Самопальное ядро подсоединённое к процессору Vortex никак не распознаётся. При старте, БИОС начинает читать конфигурационные регистры:
00h (Device ID) и 0Ch(Header type) потом читает 04h(Status), после этого пишет 0000h в Command register и всё, приехали.
сравнивал сигналы с ядром от Xilinx, всё вроде бы также выглядит и на осциллоскопе и в Chipscope.
Builder
Цитата(slonjaka @ May 4 2010, 13:07) *
Бьюсь уже третью неделю.
Самопальное ядро подсоединённое к процессору Vortex никак не распознаётся. При старте, БИОС начинает читать конфигурационные регистры:
00h (Device ID) и 0Ch(Header type) потом читает 04h(Status), после этого пишет 0000h в Command register и всё, приехали.
сравнивал сигналы с ядром от Xilinx, всё вроде бы также выглядит и на осциллоскопе и в Chipscope.
Т.е. ядро от Xilinx работает? С времянкой точно всё нормально?
slonjaka
Цитата(Builder @ May 5 2010, 06:16) *
Т.е. ядро от Xilinx работает? С времянкой точно всё нормально?

Ядро от xilinx работает замечательно.
Сравнил сигналы повнимательнее, моё ядро выдаёт ответ на конфигурационный запрос на 2 такта позже чем xilinx. TRDY# и STOP# выдаю соответственно позже. Насколько я понял спецификацию, мастер ждёт TRDY# чтобы принять данные, а получит он их раньше или позже ему всё равно. Или я в этом ошибаюсь? Это мой первый проект.
iosifk
Цитата(slonjaka @ May 5 2010, 12:10) *
Ядро от xilinx работает замечательно.
Сравнил сигналы повнимательнее, моё ядро выдаёт ответ на конфигурационный запрос на 2 такта позже чем xilinx. TRDY# и STOP# выдаю соответственно позже. Насколько я понял спецификацию, мастер ждёт TRDY# чтобы принять данные, а получит он их раньше или позже ему всё равно. Или я в этом ошибаюсь?


Не совсем так...
На 4 такт, кажется так, начинает работать мост... Так что больше, чем на 3 такта не советую. Проверьте это дело...
Koluchiy
Не уверен, что полностью правильно понял спецификацию, но вообще там в разделе 3.5.1 написаны предельные времена задержек...
От выставления FRAME до выставления 1-го TRDY - 16 тактов.

А STOP зачем выдаёте?
slonjaka
Цитата(Koluchiy @ May 15 2010, 11:44) *
Не уверен, что полностью правильно понял спецификацию, но вообще там в разделе 3.5.1 написаны предельные времена задержек...
От выставления FRAME до выставления 1-го TRDY - 16 тактов.

А STOP зачем выдаёте?


Спасибо всем за идеи. Перепроверил и подправил времена, стало немного лучше. Однако главный косяк был у меня в коде. Моё ядро отвечало на мем запросы в любом случае, а не только когда бит 1 в коммандном регистре равен единице. В итоге я отвечал на запросы предназначенные другому и не найдя соответсвующего адреса зависал сам и вешал всю систему. После исправления ядро запустилось. (Спецификацию нужно было читать понимательнее)

to Koluchiy : STOP я выдаю по аналогии с ядром от xilinx . По моему понятию это нужно для того, чтобы во время конфигурации PCI master не делал burst.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.