Как стать автором
Обновить

Начинаем опыты с интерфейсом USB 3.0 через контроллер семейства FX3 фирмы Cypress

Время на прочтение14 мин
Количество просмотров11K
Всего голосов 21: ↑20 и ↓1+19
Комментарии4

Комментарии 4

Большое спасибо за статью!
Некоторое время назад пытался запустить примеры Cypress'a с аналогичной задачей: "запустить здесь и сейчас и работать дальше". Результат предсказуем. Надеюсь в будущем шефство Infineon изменит ситуацию с их мануалами.
Не изучали ли вы библиотеку glip
(github)? У меня получилось запустить пример оттуда. Возможно, их опыт может быть полезен в вашей дальнейшей работе или работе, тех, кто читает комментарий.

Огромное спасибо! Погляжу.

Правда, сейчас у меня уже цепочка идей выстроена, всё уже более-менее работает. Даже в столе документов на пять статей блока уже лежит. Самое сложное — выгрузить их на Хабр — возни много. Просто я записываю сразу, пока детали не забылись.

Но идеи лишними не бывают. Не сейчас, так в будущем пригодятся. А остальным — всегда при изучении лучше знать возможные альтернативы.

для тех, кто доберётся с нуля работать с fx3 и нашел эту статью: привожу рабочую осциллограмму, теперь подводные камни, почему не заработает проект из "коробки", то есть из примера:

  1. gpif designer - да, можно взять пример, его настроить и пересохранить как описано в документации, при этом формируемое предупреждение (: Input signal/s 'SLWR,PKEND' is/are used for the identifying the mirror states and corresponding terms have been removed from outgoing transitions from the state 'IDLE'.) приходится игнорировать.

  2. у меня оказалось очень важным указывать flaga как Current_thread_DMA_Ready, в противном случае flaga оказываелся всегда в одном значении.

  3. и самое важно, для проекта SDK - это для чтения со стороны FPGA указывать адрес b'11, а не b'00.

    в целом после этого все работает ожидаемо.

Циклограмма последовательного чтения данных FPGA из FX3
Циклограмма последовательного чтения данных FPGA из FX3

автору спасибо за статью, надеюсь мой комментарий будет кому-то полезен.

Попал мне недавно в руки данный комплект, ибо сказало начальство разобраться, где там лежит прошивка и как её туда заливать. Поставил на ноутбук винду, полез на сайт из QuickStart гайда, лежавшего в коробочке, и оказалось, что как такового Cypress уже, видимо, не существует, т.к., похоже, поглотил его некий Infineon. Однако страничка существует и на ней даже есть ссылки на гайды и на скачивание SDK и т.д.

Но вот незадача - по тем ссылкам нужна регистрация, без впн они вообще не прогружаются, а с Россией Infineon не сотрудничает. В итоге я указал то ли Австралию, то ли что, и регистрация дала какую-то ошибку. Не стал разбираться, ибо не было времени, но спустя какое-то время полез туда снова, дабы попробовать повторить свой опыт с регистрацией. О чудо, после нажатия на кнопку "Register" файлы скачались ещё до появления формы с регистрацией) Уж не знаю, что там эти инфинеоны нашкодили, но мне же лучше, раз головная боль сама прошла))

Пошёл я, в общем, по инструкции дальше - установил скачанное ПО, проверил JTAG, подключил плату к ноутбуку по USB-3.0, пронаблюдал за зелёненьким LED1, сигнализирующем о наличии питания, перешёл к установке драйверов. Сказано, что должны найтись самостоятельно, ну я и ткнул на автоматический поиск... Не нашлись. Читаю заметку: Если сам драйвер не нашёлся, читайте заметку на следующей странице. Читаю заметку на следующей странице: ищите драйвер в папке установки по адресу <Папка установки>\Cypress\SuperSpeed Explorer Kit\1.0\Driver\bin\<Версия ОС>\x<Разрядность>.

Открываю диспетчер устройств, выбираю FX3, нажимаю на обновление драйверов, выбираю вручную по указанному пути. Как оказалось, самые свежие версии драйверов там под винду версий 7, 8, 8.1. Ладно, выбрал 8.1. Результат - ошибка с кодом 48. Удалил устройство, выбрал драйвер для 7 - то же самое.

Вообще говоря, вместе с ошибкой пишется, что данный драйвер не работает под управлением Windows. При этом винда советует обратиться за актуальной версией драйвера к разработчику. И я бы, может, с удовольствием это сделал, да вот только Cypress, как я уже говорил, был, видимо, поглощён этим самым инфинеоном. Ну ладно, рискну - подумал я.

Вылез ещё раз на сайт, нашёл там чат с техподдержкой, и написал что-то вроде "у меня есть эта плата, но драйвер не пашет, дайте новый, пожалуйста". Результат - меня послали по другой ссылке, которая тоже не грузится без впн и требует регистрации, чтобы я обратился туда за помощью. Возиться мне с этим не хотелось, так что начал гуглить другие способы решения этой проблемы.

Буквально так и загуглил - "windows driver error 48". Все сайты в один голос предлагают следующее:

  1. Обновите драйвер или переустановите вручную (ага, спасибо, сам не догадался)

  2. Отключите Hyper-V (Проверил, он даже не был включен)

  3. Отключите изоляцию ядра (Странно, но ладно, посмотрим... Ага, тоже выключена)

  4. Проверьте память устройства через sfc /scannow (У меня, конечно, ноут не вчера куплен, но я не верю, что дело может быть в нём. Ну да, так и есть, никаких проблем не было выявлено)

И тут я вспомнил о существовании DriverBooster и подумал: "Никогда им не пользовался, но вдруг он сможет найти более свежий драйвер..."

И знаете что? Нашёл, зараза. Как я был рад, когда среди 26 доступных мне обновлений драйверов я увидел одну единственную строчку про этот самый FX3 с пометкой "неисправный"

Поставил я его, перезагрузил ноутбук, и вот оно, счастье - наконец замигал столь желанный LED3 своим синим как мои волосы в 2020-м цветом

Для тех, кому читать лень - если придётся работать с этой платой, драйвер ставьте через DriverBooster или какую-нибудь подобную программу

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории