Pull to refresh

Comments 18

Вы превратили 25-мегагерцовый SPI ЦАПа в килобитный уарт потратив 100$ (хорошо что не 700$) на плату преобразования. Но это фигня — главное процесс ;)
По факту это так, однако, исходя из специфики применения решения (преимущественно отладка), большая плотность потока данных не ожидается, так что уарта на 9,6 кГц должно вполне хватить. И вы правы, тут важнее был процесс :)

Скорее всего, экономически и аппаратно более целесообразно было бы использовать вшивенький микроконтроллер STM32 имеющий SPI шину и UART или USB.
Хотя, если цель была поиграться именно с ПЛИС, то тогда всё ясно.

С другой стороны, если далее сама обработка с этого ЦАП/АЦП будет на этой ПЛИС, то решение вполне оправданное.
Самый простой вариант «на коленке» для связи ПЛИС с ПК это Ethernet 10BASE-T, там если не жалко ПЛИС/сетевухи можно без гальванической развязки напрямую с GPIO(2,5 вольт) в сетевой порт слать 10 Мбит, что для начала должно хватить. Вот годная статья на эту тему: www.fpga4fun.com/10BASE-T.html
При всем уважении, но такую задачу потянул бы любой микроконтроллер, стоимостью в 0.5-1$. Если паять ну совсем не охота — хоть отладки от ST, хоть, прости г… дь мою душу грешную, Ардуино. А поиграться — полный одобрямс (особенно, если отладки контора покупает). И зачем все это с UART, раз есть Ethernet? Даже если нет желания поднимать ARM, можно NIOS + на голом металле либо lwip, либо самому поднять UDP. Лет 10 назад, когда в сетях вообще был ни бум бум (да и сейчас не сильно больше), от чтения док до написания своего микростека ушло пару недель… А «марсоходчики» UDP реализовали на CPLD, правда — совсем примитивный, но для таких задач сгодился бы…
Отвечу здесь, как на самый полный набор замечаний. Полностью согласен насчет использования микроконтроллера — это решение в разы экономичней и не вызывает столько головной боли. Но ситуация была в том, что в наличии имелась ПЛИС (она не была куплена конкретно под эту задачу) и желание разобраться в устройстве интерфейсов, как вы сами и заметили. Так же, по моему мнению, весомым дополнением будет возможная перспектива использования ПЛИС как платы буферной памяти при обработке данных с АЦП и полного замещения решения производителя, что было отмечено в статье. Далее, решение с использованием Ethernet — хорошая альтернатива. Однако в момент проектирования схемы взаимодействия я не рассматривал Ethernet из-за его привязки к hps и до сих пор дремучих для меня тем поднятия ARM или использования NIOS ;) (возможно какое-то решение бы и получилось, но я бы не смог его более-менее компетентно здесь описать)
Спасибо за конструктивный комментарий!

Интересно, кто принимал решение о покупке Cyclone V для такой задачи?

я тоже согласен с сомнениями в выборе Cyclone V для такой простой задачи.

Обычно для таких задач хватает MAX2… MAX10 и главный плюс в том что проекты под них компилируются и разводятся в разы быстрее в квартусе — отладка приятнее.

А на Cyclone V можно например обрабатывать видео в много сотен фпс и вычислять нейросетку с 1000 классами одновременно с субмиллисекундным временем реакции. (как мой последний проект) Т.е. для Cyclone V задачи огромныx вычислений на лету более адекватны.
Да, большая часть потенциала чипа Cyclone V не раскрыта, однако, по моему мнению, ничего не мешает использовать изложенный подход к решению задачи с более простыми чипами. В защиту использования Cyclone V (хоть я уже повторяюсь) — он имелся в наличии + перспектива добавления ресурсоёмкой функциональности
Задача: зацепить АЦП/ЦАП к компу на поиграться.
Проблема: У компа нет spi.
Решение: Взять комп с SPI, а не вот это вот все.

Чем Вас не устроил практически любой из зоопарка микрокомпьютеров? Просто, быстро, дешево, SPI.
Я не рассматривал рынок микрокомпьютеров так как, не имея опыта в их эксплуатации, я изначально собирался использовать отладку в связке с ПК и написать десктопную программу. Хотя идея об использовании микрокомпьютера более чем оправдана
Понимаю. В этом разе, настоятельно рекомендовал бы Вам познакомиться с микрокомпьютерами. Крайне удобная штука для решения широкого спектра задач. Очень удобно изучать разное, прототипировать, да и в продакшене на малых сериях вполне.
зы: Программы на них вполне себе десктопные делаются при желании.
Так как контроллер SPI, реализованный на базе ПЛИС, представляет собой более сложную логическую структуру, чем контроллер UART,

Думаю это не правда, spi даже проще чем UART кмк
Вот тут 4 способа как сделать SPI для АЦП

Если смотреть код для ПЛИС, то очень «здорово», что у Вас все заработало (хотя чему тут ломаться на такой та скорости), но проектировать на ПЛИС так не стоит в будущем. Теорию придется всё-таки почитать, когда нужно будет подключить внешнюю периферию с частотой побольше
Согласен с вами, код для ПЛИС вставлен скорее для ознакомления с логикой работы контроллера. Я указал ссылку на статью, на которую я опирался
Нда-с, сурово. Делать USB-SPI преобразователь для связи ПК и АЦП на DE10-nano это, как уже неоднократно упомянули выше, примерно то-же самое, что забивать гвозди микроскопом. Потому как, DE10-nano — и так практически компьютер, работающий под Linux (причём этот Linux производитель даёт в комплекте с платой на MicroSD-карточке). Вариант использования платы для прямого преобразования USB-SPI (например, от того-же самого FTDI — FT232H) не рассматривали?
Еще есть неплохие по описанию, и весьма дешевые (50$ у производителя) платки от Cypress
ron.terraelectronica.ru/news/4496
Предоставляют мост USB3.0 — fifo с которым может работать FPGA без спец корок и отдельного USB PHY
На компе под usb код сложнее писать чем под eth, а тем более уарт…
Sign up to leave a comment.

Articles