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

 
 
 
Reply to this topicStart new topic
> xapp1052 и chipscopepro
kstk
сообщение Dec 28 2009, 10:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 010



Скачал xapp1052 с примером, поставил драйвер из примера, собрал проект: ядро + dma из примера(как сказано в xapp1052) + chipscopepro, прогрузил кристалл, плата прекрасно опознается, запускаю приложение для обмена паттернами по PCI Express, в chipscopepro на transaction interface(что на trn_rd, что на trn_td) наблюдаю одинаковые пакеты, состоящие из 3 64-битных словофреймов(в соотвествии со всеми управляющими сигналами типа start_of_frame, end_of_frame, сигналами готовности):
730000010000007F
0000808600000080
84000000083AC28F
следующих один за другим. Payload, судя по принятому пакету - 1, хотя программа отсылает/принимает 32. Да и сам тип пакета - Message Request - так и дожно быть или я чего-то не понимаю? Отличие между пакетами только в последнем DWORD-e. Глубина данных в chipscopepro стоит 1024 сэмплов, на картинке в даташите обмен нормальными пакетами виден при меньшей глубине.
Помогите разобраться, что я делаю не так?
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Dec 28 2009, 18:30
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(kstk @ Dec 28 2009, 14:52) *
Скачал xapp1052 с примером, поставил драйвер из примера, собрал проект: ядро + dma из примера(как сказано в xapp1052) + chipscopepro, прогрузил кристалл, плата прекрасно опознается, запускаю приложение для обмена паттернами по PCI Express, в chipscopepro на transaction interface(что на trn_rd, что на trn_td) наблюдаю одинаковые пакеты, состоящие из 3 64-битных словофреймов(в соотвествии со всеми управляющими сигналами типа start_of_frame, end_of_frame, сигналами готовности):
730000010000007F
0000808600000080
84000000083AC28F
следующих один за другим. Payload, судя по принятому пакету - 1, хотя программа отсылает/принимает 32. Да и сам тип пакета - Message Request - так и дожно быть или я чего-то не понимаю? Отличие между пакетами только в последнем DWORD-e. Глубина данных в chipscopepro стоит 1024 сэмплов, на картинке в даташите обмен нормальными пакетами виден при меньшей глубине.
Помогите разобраться, что я делаю не так?

Да скорее всего триггер в чипскопе не на те условия, вот и ловит системные сообщения. А зачем понадобилось смотреть чипскопом пакеты? Что-то не работает?
Go to the top of the page
 
+Quote Post
kstk
сообщение Dec 29 2009, 07:02
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 010



Цитата(dmitry-tomsk @ Dec 28 2009, 21:30) *
Да скорее всего триггер в чипскопе не на те условия, вот и ловит системные сообщения. А зачем понадобилось смотреть чипскопом пакеты? Что-то не работает?

А на какие условия лучше триггер ставить, чтобы ловить то, что нужно?
Чипскоп - можно сказать, первые шаги для отработки самописного драйвера и дальнейшего описания устройства в кристалле. А то у нас тут даже ядра не хотят собираться под 11 Исой, только под 10 отчего-то.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Dec 29 2009, 16:21
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(kstk @ Dec 29 2009, 11:02) *
А на какие условия лучше триггер ставить, чтобы ловить то, что нужно?
Чипскоп - можно сказать, первые шаги для отработки самописного драйвера и дальнейшего описания устройства в кристалле. А то у нас тут даже ядра не хотят собираться под 11 Исой, только под 10 отчего-то.

условия на _sof сигнал и старшие биты данных при sof = 0, старшие биты 1-го слова равны 0 для чтения памяти, 1 - для записи (смотрите сами состав tlp пакета)
Go to the top of the page
 
+Quote Post
kstk
сообщение Dec 30 2009, 12:19
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 24-08-09
Пользователь №: 52 010



Цитата(dmitry-tomsk @ Dec 29 2009, 19:21) *
условия на _sof сигнал и старшие биты данных при sof = 0, старшие биты 1-го слова равны 0 для чтения памяти, 1 - для записи (смотрите сами состав tlp пакета)

Нашел данные, но в виде пакетов CplD, всвязи с этим возник вопрос. Раз есть completion с данными, стало быть должен быть request. Данные CplD присуствуют на шине trn_rd, т.е. передаются от ядра к пользовательскому приложению(в кристалле), стало быть приложение(в чипе) должно высылать ровно такое же количество запросов Mrd, сколько присутствует подтверждений CplD и высылать оно должно их по шине trn_td. Тогда, может, подскажете мне, как такое происходит, если посылку пакетов я инициирую с приложения из под виндовса на компьютере? Т.е. - запускаю приложение из под виндовса(от ксайлинкса из примера), ставлю крыжик Read, давлю кнопку Start и наблюдаю на trn_rd пакеты CplD с отосланными данными.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 16th June 2025 - 12:28
Рейтинг@Mail.ru


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