Comments 7
Большое спасибо за статью!
Некоторое время назад пытался запустить примеры Cypress'a с аналогичной задачей: "запустить здесь и сейчас и работать дальше". Результат предсказуем. Надеюсь в будущем шефство Infineon изменит ситуацию с их мануалами.
Не изучали ли вы библиотеку glip
(github)? У меня получилось запустить пример оттуда. Возможно, их опыт может быть полезен в вашей дальнейшей работе или работе, тех, кто читает комментарий.
Правда, сейчас у меня уже цепочка идей выстроена, всё уже более-менее работает. Даже в столе документов на пять статей блока уже лежит. Самое сложное — выгрузить их на Хабр — возни много. Просто я записываю сразу, пока детали не забылись.
Но идеи лишними не бывают. Не сейчас, так в будущем пригодятся. А остальным — всегда при изучении лучше знать возможные альтернативы.
для тех, кто доберётся с нуля работать с fx3 и нашел эту статью: привожу рабочую осциллограмму, теперь подводные камни, почему не заработает проект из "коробки", то есть из примера:
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'.) приходится игнорировать.
у меня оказалось очень важным указывать flaga как Current_thread_DMA_Ready, в противном случае flaga оказываелся всегда в одном значении.
и самое важно, для проекта SDK - это для чтения со стороны FPGA указывать адрес b'11, а не b'00.
в целом после этого все работает ожидаемо.
автору спасибо за статью, надеюсь мой комментарий будет кому-то полезен.
и самое важно, для проекта SDK - это для чтения со стороны FPGA указывать адрес b'11, а не b'00.
Немного не понимаю, это надо указывать в проекте плис или где-то в коде для ципреса? Просто я сейчас пытаюсь разобраться с этими примерами с шиной на 32 бита из an65974, но stream_in не работает, так что приходится его пересобирать своими руками и пока что я не могу добиться успешной работы. В control center трансфер происходит штатно, а вот в streamer очень быстро всё ломается и тот же control center начинает выдавать ошибку 997 вместо приёма данных
к сожалению, уже забыл тонкости, так как настроил fifo и забыл, посмотрел в проекте, за это сигналы fx_a в ПЛИС настроены на выход и прибиты гвоздями в '11' (для cypress соответственно - это входы). В этом случае поток получается стабильным. К сожалению, у меня поток не максимальный от возможностей шины, может быть по этому не получаю в итоге переполнение буферов и все норм... При этом со стороны приложения уже на компе можно многократно подключаться и отключаться ничего не ломается...
ps: и да, у меня поток от ЭВМ через FX3 в ПЛИС, а не наоборот.
и да, у меня поток от ЭВМ через FX3 в ПЛИС, а не наоборот.
Вот это крайне печально, потому что у меня задача как раз обратная. У меня цель научиться работать с ципресом, чтобы модифицировать потом прошивку rx-888, так что как раз интересует сбор данных на компьютер.
При этом я работаю с 5 циклоном для генерации данных и использую прошивку из Application Note, просто поменял пины в qsf. Пример stream_OUT работает штатно, а вот stream_IN проблемный. Попробую, наверное, собрать stream_OUT из исходников. Если всё будет работать нормально, быть может, беда и вовсе в верилоге...
Попал мне недавно в руки данный комплект, ибо сказало начальство разобраться, где там лежит прошивка и как её туда заливать. Поставил на ноутбук винду, полез на сайт из 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". Все сайты в один голос предлагают следующее:
Обновите драйвер или переустановите вручную (ага, спасибо, сам не догадался)
Отключите Hyper-V (Проверил, он даже не был включен)
Отключите изоляцию ядра (Странно, но ладно, посмотрим... Ага, тоже выключена)
Проверьте память устройства через sfc /scannow (У меня, конечно, ноут не вчера куплен, но я не верю, что дело может быть в нём. Ну да, так и есть, никаких проблем не было выявлено)
И тут я вспомнил о существовании DriverBooster и подумал: "Никогда им не пользовался, но вдруг он сможет найти более свежий драйвер..."
И знаете что? Нашёл, зараза. Как я был рад, когда среди 26 доступных мне обновлений драйверов я увидел одну единственную строчку про этот самый FX3 с пометкой "неисправный"
Поставил я его, перезагрузил ноутбук, и вот оно, счастье - наконец замигал столь желанный LED3 своим синим как мои волосы в 2020-м цветом
Для тех, кому читать лень - если придётся работать с этой платой, драйвер ставьте через DriverBooster или какую-нибудь подобную программу
Начинаем опыты с интерфейсом USB 3.0 через контроллер семейства FX3 фирмы Cypress