Comments 93
А зачем загружать по JTAG если можно по родному последовательному протоколу загрузки, по которому и EPCS ее грузит? Там обычный SPI, плюс контроль одного или двух статусных пинов, сейчас точно не помню :)
DE0-Nano-SoC с производства сняли
И объявили конкурс проектов mail.terasic.com.tw/epaper/2017/innovatefpga_en2
Полуфиналисты получат уже эту DE10-nano плату для опытов.
Это же не NAS. Приняли порцию данных, обработали ее, вернули (или передали дальше) результат. Как пример — прием данных от АЦП, цифровая узкополосная фильтрация в несколько ступеней с промежуточной децимацией и выдача результата
Например, я занимался проектом, в котором 4-й циклон являлся прослойкой между хитрым АЦП и микроконтроллером. Он полностью управлял АЦП и по команде контроллера считывал с АЦП порцию данных, прогонял ее последовательно по четырем фильтрам (каждый последующий — с более узкой полосой, последний с полосой то ли единицы, то ли десятые доли Гц, по-моему) и накапливал указанное количество результатов для выдачи контроллеру. Всего во всех фильтрах было несколько тысяч коэффициентов и при каждом новом значении на входе каждый фильтр должен произвести перемножений по количеству коэффициентов в нем, просуммировать результаты и сдвинуть буфер входных данных, а данные с АЦП считывались на 10 МГц. И все это в два параллельных канала :)
Вот Вам и недодрыг уровня 51 контроллера :)
Никто не мешает прицепить к FPGA память SRAM или SDRAM. Ее отсутствие — это проблема реализации устройства, а не Cyclone IV :)
Так-то в недостатки FPGA можно записать еще и отсутствие дисплея, физического уровня Ethernet 1G, АЦП, выхода HDMI и т.п. И несовместимость с Ардуиновскими скетчами :)
Если хочется поизвращаться, то можно и МГТФ. Если не хочется — то платка с разъемами, вставляющимися в разъемы платы из статьи.
Что в этом не так? Это же не специализированное под накопление больших данных устройство, это демонстрационная плата для изучения работы с FPGA. Кому что понадобится — тот то и прицепит дополнительно, к чему повышать стоимость без веских оснований?
Ну значит уровень этой платки уже пройден и пора переходить к более серьезному подходу — делать свою плату со всей нужной периферией под свою задачу.
А зачем Вам столько ног? :)
Для этой задачи в любом случае нужно еще соответствующий АЦП.
А вот, например, гнать в FPGA поток какого-то сигнала и получать от нее спектр этого сигнала — легко.
Во вторых, как уже заметили, отсутствие памяти это не проблема, хотите — просто подключите внешнюю память, многие FPGA это умеют нативно, для других же есть библиотеки работы с памятью
Во-первых можно сжимать, что сильно снизит поток, а во-вторых в статье что-то упоминается об использовании DMA, а это чуть быстрее, чем UART на 9600.
Не хватит для чего? К этому камню можно прицепить два чипа памяти в TSOP44 — каждый с со своими шинами и сигналами.
Или память и штук 20 внешних гпио (для малинки там свои гпио еще остаются). Поэтому и спрашиваю — для чего Вам не хватит гпио?
И АЦП с ЦАП. И Ethernet. И USB. И какой-нибудь радиомодуль. И датчик температуры-влажности.
Не нужно усложнять без необходимости. Возможность подключить любую периферию. в том числе и память, имеется. Кому она понадобится — прицепит без проблем :)
Я с ними вообще нечасто работаю. Но вот Вам практическая и довольно актуальная задача — контроллер движения для станков с ЧПУ. Нужно формировать управляющие сигналы для 4-5 шаговых двигателей на основе задаваемых извне параметров. Например, управляющий контроллер задает новую координату одной из осей и контролер движения должен выдать на ШД необходимые импульсы с учетом кривых разгона и торможения, максимально допустимого ускорения, а так же того, что в данный момент эта ось уже может двигаться с некими скоростью и ускорением. Или чуть сложнее — от управляющего контроллера поступают команды для движения сразу всех осей в определенные координаты и контроллер движения должен рассчитать все это синхронно для всех осей сразу с учетом всего, перечисленного выше. Можно и дальше усложнять задачу контроллера движения, облегчая тем самым жизнь управляющему контроллеру.
Тут памяти нужно совсем немного, и вот этот обсуждаемый чип с такой задачей справится.
Не совсем понял. 2 КГц — это частота выдаваемых на двигатели импульсов?
Да, этот момент я тоже не понял, но может он разъяснится в ответе про 2 КГц :)
То есть вымажете программировать время фронта пинка “step” с резолюцией ~2 мкс но не чаще чем 2000 импульсов в секунду на каждый двигатель
время фронта пинка “step” с резолюцией ~2 мкс
Это много для плавной и тихой работы ШД.
не чаще чем 2000 импульсов в секунду на каждый двигатель
Это очень-очень мало. При микрошаге 1/16 и ШВП 5 мм/оборот скорость перемещения получается всего около 190 мм/мин. Или я до сих пор что-то не понимаю.
Для дешевого станочка можно и ардуину с прошивкой GRBL :) И дешевле и скорость перемещений выше при большем дроблении шага :)
Не особо-то он и нужен таким станкам :)
А для них уже адаптировали какой-нить планировщик? Я кроме небольших частных проектов не встречал такого :)
Мне распи хватило на хексапод(6 axis ), с камерой и прочими наворотами, правда требования по скорости перемещения были низкие, а к точности позиционирования -высокие
по примеру — интерполяция дуг на стороне контоллера или на стороне fpga? если на стороне fpga — память может понадобиться. если на стороне контроллера — можем получить рывки, когда будет необходимость передавать/выполнять малые перемещения в большом количестве. не забываем что контроллер в данной статье не realtime. так что опять же может понадобиться память для буфера. но согласен, тут ее не так много надо
Интерполяция даже 3-мерных дуг не требует мегабитов памяти и прекрасно может быть реализована на этом циклоне :)
Я давно хочу сделать такой контроллер движения, управляемый высокоуровневыми командами (почти уровня G-кода) но все никак не выберу время заняться этим проектом...
Для ЧПУ есть контроллер для Mach на FPGA — Smooth Stepper. После перехода с LPT на него (у меня ethernet-вариант этого контроллера) скорость перемещений получилось поднять в 1.5 раза и двигатели потише стали работать :)
Да, траектория все равно планируется в Mach-е. Честно говоря, не знаю какие именно функции возложены на саму ПЛИС, вроде бы Мач отдает контроллерам сервоциклы с готовыми количествами импульсов по каждой оси, так я понял из отрывочных сведений по его API. Но могу и ошибаться.
WebStorm запускается и даже в режиме пониженной задержки позволяет набирать текст без подтормаживаний, но о какой-либо комфортной работе можно забыть, даже просто синтаксический анализ тормозит нещадно.
Кроме того, работать на RPi 3B с полноценными браузерами не выйдет, очень уж тормознуты. Только что-то специальное вроде links2 (идёт отлично, без тормозов) или kweb.
Также возможно поставить плагины к pidgin, чтобы получить Skype- или Telegram-мессенджер. Причём сборка telegram-purple ещё год назад требовала не только самостоятельной компиляции, но и правки исходников (не знаю как сейчас).
Также RPi можно использовать в качестве простой рисовалки. Мой графический планшет (wacom) увидело после установки пакета xserver-xorg-input-wacom. Комфортно и без подтормаживаний работают простейшие рисовалки вроде MyPaint и mtPaint.
GIMP уже притормаживает, работать некомфортно, но возможно. Krita не запускается вовсе, вываливаясь с сегфолтом.
Из всех способов увеличения производительности максимальный прирост даёт полное отключение журналирования через tune2fs с последующей правкой fstab. На втором месте — разгон SD-ридера (при условии, что карточка нормальная, а не китайский самопал).
Использование в качестве аудиоплеера проблемно, т.к. звук в аналоговом выходе полный отстой, нужно брать звук исключительно от HDMI-выхода, а туда без переходника наушников не воткнуть.
2. Чтобы не грузить каждый раз FPGA логично было бы установить на плату микросхему EPCS.
3. Имхо, сопряжение малинки и DE0-Nano прибавит возможностей гораздо больше, чем просто голая ПЛИСина.
А что Вы подразумеваете под "декодировать радиосигналы"?
Просто слово красивое, или что-то смысловое?
FPGA плата к Raspberry Pi