Arduino MKR Vidor 4000 — это первая плата семейства Arduino на базе программируемой логической интегральной схемы (она же ПЛИС, она же FPGA).
Обычные процессоры весьма универсальны, но у них фиксированная архитектура, и для выполнения разных задач мы лишь меняем исполняемый программный код. В определённый момент всё упирается в возможности процессора, и нам уже не удастся заставить программу работать быстрее. В случае с ПЛИС (FPGA) у нас появляется возможность перестраивать архитектуру микросхемы на аппаратном уровне, словно конструктор, чтобы как можно лучше заточить её под определённый алгоритм — примерно как это делается в специализированных GPU и DSP-процессорах. Таким образом, в некоторых задачах ПЛИС в разы обгоняют типовые решения: например, при выполнении цифровой обработки сигнала или эмуляции работы другого устройства.
Arduino MKR Vidor 4000 открывает вашим проектам новые возможности: передавайте изображение с MIPI-камер на сенсоре OV5647 на HDMI-дисплей, накладывайте на него свою графику, прикручивайте распознавание QR-кодов или превратите сборку в инкрементальный энкодер — цифровой датчик угла поворота для оценки скорости вращения. Эти задачи нетривиальны для базовой Arduino MKR, но легко решаются на Vidor 4000 с помощью FPGA и готовых библиотек Arduino IDE.
При этом плата сохранила микроконтроллер ATSAMD21G18 и беспроводной модуль NINA-W102, что делает её подходящим выбором для создания проектов IoT и умного дома, где нужно опрашивать различные датчики и выводить изображение с камер видеонаблюдения.
На борту Arduino MKR Vidor 4000 содержатся следующие блоки:
С двух сторон платы распаяны колодки по 2×14 выводов, из них 22 пина ввода-вывода общего назначения:
Обратите внимание, что к Vidor 4000 подходят только модули с логическим напряжением 3,3 В. Периферия с логическим напряжением 5 В может повредить устройство!
Используйте внутренний ЦАП для аналогового аудиовыхода или отдайте обработку звука внешнему преобразователю через интерфейс I²S.
Управляйте вашим устройством через интернет или запускайте небольшой веб-сервер c помощью библиотеки WiFiNINA. Arduino MKR Vidor 4000 поддерживает шифрование SSL — теперь вам доступны HTTPS-соединения.
На плате доступны аппаратные интерфейсы SPI, I²C, UART/Serial и I²S.
Благодаря ПЛИС у платформы Vidor 4000 появились дополнительные аппаратные интерфейсы, которые не встречаются на других моделях Arduino.
Для программирования контроллера используется среда Arduino IDE, визуальная среда программирования XOD IDE или произвольный инструментарий C/C++. Для прошивки понадобится кабель Micro-USB.
Что касается ПЛИС, то штатными средствами Arduino IDE можно работать с готовыми библиотеками. Например, библиотека VidorPeripherals предназначена для реализации ввода-вывода данных UART, SPI, I²C, квадратурного энкодера, ШИМ-генератора или управления светодиодами NeoPixel. Библиотека VidorGraphics отвечает за графические функции, которые накладываются на HDMI-выход устройства. При использовании таких библиотек не понадобится специфических знаний — программирование ПЛИС происходит автоматически, и её функции вызываются напрямую из скетча.
Кроме того, для самых продвинутых пользователей Vidor 4000 поддерживает среду разработки Intel Quartus. Она позволяет самостоятельно заняться программированием FPGA и создать произвольный аппаратный узел. Например, аппаратных блоков Intel Cyclone достаточно, чтобы воссоздать на ПЛИС целое ядро ARM Cortex-M1. Таким образом, вы сможете превратить Vidor 4000 в кастомизированную двухпроцессорную систему.
Для питания платформы используйте порт Micro-USB, контакт Vin или разъём для аккумуляторной батареи. Источник определится автоматически.
Все цепи питания проходят через линейный регулятор напряжения и приводятся к 3,3 В.