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

 
 
 
Reply to this topicStart new topic
> Новичковое: FX2 USB, Совсем "заклинило", помогите советом
ReedCat
сообщение Apr 2 2008, 06:14
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 14-01-08
Из: Москва
Пользователь №: 34 069



Краткое описание ситуации: есть макетка с Xilinx и FX2 USB. Нужно вводить/выводить данные по USB для проекта, который делается под Xilinx.

Обмен достаточно тривиальный: по одному FIFO принимается байт команды, по второму - пакет данных.
ПО третьему возвращается статус, по четвертому - обработанный пакет данных.
Сделал уже несколько вариантов ввода-вывода, ни один не работает. sad.gif

Команду - принимает. Данные тоже принимает. А вот с возвратом - глюки. sad.gif То нормально возвращает байт статуса, но при выдаче пакета данных первым идёт ff (Z-состояние?).

Переписал полностью по даташиту на FX2 - стало даже хуже... Теперь данные просто не возвращает (программа на PC "висит" на чтении), а байт статуса иногда возвращается правильный, а иногда - FF.

В симуляторе - всё работает нормально. В post-route simulation сначала глючило ("зависало" в одном из состояний , но после того, как снизил клок с 50МГц до 25 - стало работать так же, как и в behavioral. (клок на платке - 24 Мгц, пробовал и на 12 - ведёт себя так же sad.gif ).

Явно я где-то что-то делаю не так.

Буду очень признателен за дружеский подзатыльник в нужном направлении.

P.S. Он ещё очень нужен потому, что уже поджимают сроки, с неработающим обменом данными показывать просто нечего, а из фазы "заклинивания" можно не выбраться очень долго и не видеть каких-нибудь совершенно очевидных вещей. sad.gif sad.gif sad.gif
Прикрепленный файл  FX2_bidir.v ( 8.91 килобайт ) Кол-во скачиваний: 350
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Apr 2 2008, 09:08
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Уточните пожалуйста в какую сторону идет обмен данными. Из компа в Xilinx или наоборот. Вариантов на самом деле может быть много, сами промучались, в основном были проблемы с прошивкой самого контроллера USB. В ПЛИС проблем было меньше, потому что можно было выдать тривиальные тестовые сигналы, для проверки. Пишите подробнее, думаю разберемся.


--------------------
Go to the top of the page
 
+Quote Post
ReedCat
сообщение Apr 2 2008, 09:41
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 14-01-08
Из: Москва
Пользователь №: 34 069



Цитата(dm.pogrebnoy @ Apr 2 2008, 12:08) *
Уточните пожалуйста в какую сторону идет обмен данными. Из компа в Xilinx или наоборот. Вариантов на самом деле может быть много, сами промучались, в основном были проблемы с прошивкой самого контроллера USB. В ПЛИС проблем было меньше, потому что можно было выдать тривиальные тестовые сигналы, для проверки. Пишите подробнее, думаю разберемся.


В обе... Задействованы все 4 FIFO.
По первому, из PC в ПЛИС идет байт команды - с этим проблем не наблюдается.
По второму, из PC в ПЛИС передаётся пакет данных, которые можно попросить ПЛИС считать (по одной из команд). С этим, вроде бы тоже проблем нет. Читает и записывает в память ПЛИС.

Проблемы начинаются с выводом из ПЛИС.
Если считать статус по третьему FIFO (опять-таки, выдав нужную команду по первому) - получается (хотя, сейчас, похоже, тут тоже свои глюки появились), то прочитать обратно пакет данных по четвертому (выдав нужную команду в ПЛИС) у меня так и не получилось. Самое лучшее, что было - это получался пакет, у которого первым байтом шёл FF, а затем все байты пакета. Сейчас даже этого нет. sad.gif

Причём в симуляторе - всё работает, пакеты принимаются и передаются, без каких-либо проблем.

К сожалению, перепрошивать USB контроллер у меня нет возможности, он, что-то вроде "чёрного ящика" на данном этапе. sad.gif Его нужно как-то удовлетворить... sad.gif
Go to the top of the page
 
+Quote Post
gammanoid
сообщение Apr 2 2008, 18:12
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 1-03-05
Из: г.Ростов-на-Дону
Пользователь №: 2 988



Цитата(ReedCat @ Apr 2 2008, 10:14) *
В симуляторе - всё работает нормально. В post-route simulation сначала глючило ("зависало" в одном из состояний , но после того, как снизил клок с 50МГц до 25 - стало работать так же, как и в behavioral. (клок на платке - 24 Мгц, пробовал и на 12 - ведёт себя так же sad.gif ).


С логикой сильно не разбирался, но IFD, OFD вроде описаны. При использовании внутренней тактовой выхода IFCLK частота может быть 48 МГц или 30 МГц. 24 или 12 это тактовая ядра 8051. Тактовую на выходе IFCLK пробовали инвертировать? И как дела с констрейнами (судя по глюкам при 50 в пост-руте - никак)? Упаковка I/O Registers/Latches into IOBs должна быть both (Inputs and Outputs).
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Apr 2 2008, 19:25
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Полностью согласен с gammanoid.

Но насколько я помню, без начальной кофигурации FX2 работать не желал. У вас флешка стоит прошитая или нет? Вижу что по умолчанию 48 мегагерц внутри крутятся, а наружу не выдаются, а у вас именно с контроллера такт приходит. Так что делаю два вывода, или это вообще не должно работать, так как у вас код для синхронного режима написан, или некоторые этапы конфигурации все-таки сделаны (я IFCONFIG имею ввиду по крайней мере). Нужно уточнить.
Если тактотвая частота на конотроллер подается с ПЛИС, то намного лучше и фифо тактировать с ПЛИС, хотя не принципиально. Предложил бы в любом случае на данном этапе не заморачиваться с флагами, заведите как можно более простые сигналы управления (т.е. константы+пила на шину данных), проверить самое начало. Замечу, что в режиеме внутреннего тактирования никаких других тактов кроме такта с ноги IFCLK брать нельзя, разве что использовать асинхронный режим в этом случае.


--------------------
Go to the top of the page
 
+Quote Post
dinam
сообщение Apr 3 2008, 01:45
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Цитата(ReedCat @ Apr 2 2008, 16:41) *
К сожалению, перепрошивать USB контроллер у меня нет возможности, он, что-то вроде "чёрного ящика" на данном этапе. sad.gif Его нужно как-то удовлетворить... sad.gif
Что-то я не понял, вы пытаетесь наладить связь не правя прошивку FX2 07.gif ??? А откуда вы её вообще взяли? У меня большую часть времени заняло как раз правильно сконфигурировать slave FIFO.
Go to the top of the page
 
+Quote Post
ReedCat
сообщение Apr 3 2008, 06:52
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 109
Регистрация: 14-01-08
Из: Москва
Пользователь №: 34 069



Цитата(gammanoid @ Apr 2 2008, 22:12) *
С логикой сильно не разбирался, но IFD, OFD вроде описаны. При использовании внутренней тактовой выхода IFCLK частота может быть 48 МГц или 30 МГц. 24 или 12 это тактовая ядра 8051. Тактовую на выходе IFCLK пробовали инвертировать? И как дела с констрейнами (судя по глюкам при 50 в пост-руте - никак)? Упаковка I/O Registers/Latches into IOBs должна быть both (Inputs and Outputs).

Та программка, которая инициализирует FX2, предлагает мне в качестве вариантов "USB frequency" 12, 24 или 48МГц.
Про возможную инверсию такта в даташите прочитал, но еще не пробовал.
С констрейнами дела - никак. Единственный заданный констрейн - на клок.
Упаковку - проверю, спасибо.



Цитата(dinam @ Apr 3 2008, 05:45) *
Что-то я не понял, вы пытаетесь наладить связь не правя прошивку FX2 07.gif ??? А откуда вы её вообще взяли? У меня большую часть времени заняло как раз правильно сконфигурировать slave FIFO.

Да, именно так. Есть макетная плата, на которой есть как-то сконфигурированный FX2. Мне она нужна, чтобы продемонстрировать работоспособность проекта, а для этого нужно ввести данные и вывести результаты. Других опций, кроме как по USB через этот контроллер - нет. Точных данных о том, как он сконфигурирован - тоже нет. Приходится догадываться, опираясь, в частности на простейший пример.
Точно ясно, что:
- клок на ПЛИС идет с FX2
- режим синхронный
- флаги FIFO точно НЕ в индексном режиме
- ширина слова - 8 бит

Вот вроде и всё, что удалось определить точно.

Элементарный пример из комплекта макетки (приаттачено) - работает...
Прикрепленный файл  FX2_bidir.v ( 3.12 килобайт ) Кол-во скачиваний: 315
Go to the top of the page
 
+Quote Post
dm.pogrebnoy
сообщение Apr 3 2008, 14:24
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 747
Регистрация: 11-04-07
Пользователь №: 26 933



Цитата(ReedCat @ Apr 3 2008, 10:52) *
...Да, именно так. Есть макетная плата, на которой есть как-то сконфигурированный FX2....

Так дело не пойдет. Может у вас вообще он не в Salve режиме... Могу точно сказать, что без программы для FX2 настроить обмен сложновато.
Так что могу предложить впаять более простой контороллер CY68001 (благо по ногам они совпадают полностью) и/или убедится какие данные зашиты во флешке и по крайней мере ее сконфигурировать. Удачи!


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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